Releases: rootCircle/cpast_mono
ccode_runner v0.3.4
New Features
- make 'utoipa' optional and add 'api' feature to ccode_runner; update LanguageName enum to conditionally derive ToSchema
Commit Statistics
- 1 commit contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Make 'utoipa' optional and add 'api' feature to ccode_runner; update LanguageName enum to conditionally derive ToSchema (02cb1ce)
ccode_runner v0.3.3
New Features
-
expose default codegen language type
feat(cpast): --problem_url args in ai and test routesfeat(cscrapper): new ProgramStore api new_from_language
chore(cpast_api): updated schema to store language name in cache and use language from clex_llm instead of c++ as default
-
add sample programs and tests for multiple languages including Java, C, C++, Python, Ruby, JavaScript, and Rust
-
enhance new_from_custom_dest to support Java file naming rules and improve error handling
-
add new error types for invalid file names and empty temporary directories
-
expose from_text from_custom_dest api to public
-
code compilation to temp dir
Commit Statistics
- 7 commits contributed to the release over the course of 1 calendar day.
- 13 days passed between releases.
- 6 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Expose default codegen language type (d1f3bcf)
- Add sample programs and tests for multiple languages including Java, C, C++, Python, Ruby, JavaScript, and Rust (1f866fc)
- Enhance new_from_custom_dest to support Java file naming rules and improve error handling (976089b)
- Feat(java_classname): add utility to extract public class name from Java source text feat(ccode_runner): enhance source file naming for Java and random languages feat(cpast): add tests for Java public class extraction and code evaluation (35c6c11)
- Add new error types for invalid file names and empty temporary directories (626c3ce)
- Expose from_text from_custom_dest api to public (6a2a02c)
- Code compilation to temp dir (3488984)
cpast-v0.9.2
Release Notes for v0.9.2 (2025-03-01)
clex_gen:
- Changed default range values to
i32_min
andi32_max
for ranges, andu32_min
andu32_max
for positive ranges. - Reduced mutations by segregating states, making the
generate_testcase
method functional, and removing the need for cloning in the case ofcpast_cli
, resulting in improved efficiency and performance.
cpast_cli:
- Improved support for completions.
- Introduced the
--clipboard
flag to copy clex output to the clipboard. - Enhanced the output of
cpast ai
.
General Improvements
- Enhanced crate documentation for better clarity and usability.
Full Changelog: View on GitHub
cpast-v0.8.0
0.8.0 (2025-02-23)
Breaking
- String modifier syntax now accepts three arguments, instead of two. New format:
S[min,max,charset]
(e.g.,S[1,10,'cpast is awesome']
)
clex_gen
- Now, string modifier accepts escape characters as well like
\n
,\t
,\r
,\\
,\'
,\"
,\0
\a
,\b
,\f
and\v
etc! - Breaking: Modified string modifier syntax to support minimum and maximum length constraints:
- New format:
S[min,max,charset]
(e.g.,S[10,10,@CH_UPPER@]
) - Old format:
S[length,charset]
is now deprecated - This change enables more precise string length control in pattern generation
- New format:
clex_llm
- Switched to
Gemini2_0Flash
model fromGemini1_0
cpast_cli
- Support AI based clex generation using input format and constraints through
cpast ai ...
.GEMINI_API_KEY="<gemini-api-key>" cpast ai --input-format="The first line contains an integer T (number of test cases). Each of the next T lines contains two integers N and M." --constraints="1 ≤ T ≤ 10\n1 ≤ N, M ≤ 10^5"
Full Changelog: cpast-v0.7.1...cpast-v0.8.0
cpast-v0.7.1
Release Notes - Version 0.7.1 (2025-02-22)
Overview
Version 0.7.1 marks a significant step forward as cpast transition to a monorepo structure. Building upon the foundation of cpast_cli
, I'm excited to introduce several new tools to enhance the user experience.
Breaking Changes
- Removed the
clipboard
feature fromcpast_cli
. (builds might be broken for android[low priority]) - Replaced the
CPAST_DEBUG=1
environment variable with the--debug
flag incpast_cli
.
Crates
- ccode_runner: https://crates.io/crates/ccode_runner v0.2.0 (new)
- clex_gen: https://crates.io/crates/clex_gen v0.2.1 (new)
- cpast: https://crates.io/crates/cpast v0.7.1 (updated)
Key Updates
Monorepo Migration
- The codebase has been moved to a monorepo, making it easier to manage and allowing for smoother growth in the future.
New Tools
cpast_api
: A Work In Progress (WIP) backend service, currently under development, to facilitate API interactions.cscrapper
: A tool for gathering competitive programming questions from CodeChef and Codeforces.cpastord
: A service that connects cpast features with Discord.ccode_runner
: A flexible engine for running and testing code snippets for various languages. Optimized for repeated runs, robustness, and speed.clex_gen
: The core of cpast, this tool generates random test cases using the Clex language. Renamed fromclex
to avoid potential naming conflicts.clex_llm
: An AI-powered tool leveraging Google Gemini to generate Clex expressions from natural language.
CLI Improvements
- Verbose Output: The
cpast_cli
now supports a--debug
flag for detailed output, replacing theCPAST_DEBUG
environment variable (See issue #5). - Piping in generate: Improved piping capabilities within the
cpast generate
command.
Performance and Security
- Enhanced Storage Performance: Optimized the
file_store
component ofccode_runner
for improved efficiency. - Security Audit: Implemented a security audit workflow using
cargo deny
to scan dependencies for vulnerabilities, ensuring a more secure codebase.
Development and Infrastructure
- Rust 2024 Upgrade: Updated the codebase to Rust 2024, enabling the use of the latest language features and improvements.
- Refined Code Structure: Restructured
cpast_cli
intoccode_runner
andclex_gen
for better code organization and maintainability. - MSRV: Set the Minimum Supported Rust Version (MSRV) to 1.85.0.
General Improvements
- Improved error propagation across the project.
- Enhanced code quality, documentation, and performance.
- Fixed various bugs, including race conditions and panics.
- Updated dependencies to their latest versions.
For a full list of changes, check out the Full Changelog.
v0.6.0
Changes since v0.4.0
Clex
Introducing custom character types in String, breaking syntax!
Now, for custom character sets use @CH_ALL@
, @CH_UPPER@
etc(as found in Clex Language Specs) or literal string like 'abc' it will generate either of abc!
We also dropped Character Type as it use was not profound! For using Character Type simply replace it with S[1,]
Critical Bug Fix:
[Critical High] Due to race condition, cpast test ...
might leave a orphan child process in non --no-stop
cases! This will eventually eat all your system memory and potentially crash it as well! This has been fixed as well!
Breaking Changes
- Introduced improved error propagation, (don't exit before error) and improved error types
- Modify public and private function signature to accommodate error propagation
Misc
-
Introduce
CPAST_DEBUG
env, to reduce verbosity of Success Testcase message! It's now disabled by default! To enable useCPAST_DEBUG=1 cpast test ...
-
Shell completion support! Generate using
- zsh:
cpast --completions=zsh | sudo tee /usr/local/share/zsh/site-functions/_cpast
- fish:
cpast --completions=fish > ~/.local/share/fish/generated_completions/cpast.fish
- bash:
cpast --completions=bash | sudo tee /etc/bash_completion.d/cpast.bash
- zsh:
Full Changelog: rootCircle/cpast@v0.4.0...v0.6.0
v0.4.0 stable
Release Notes
announcement
start on work on llm based clex suggestion, check progess at cpast_llm.
lib
- Breaking changes
- AST is reformatted to support new specifications found at clex.specs.md
- Error Handling done neater
- Bugfix: Fix panic if length of string in StringModifier is negative
- Refactored clex_language
- Support for newline using String using S[1,'n'].
cli
- Colorized output for nicer bifurcations and beauty.
docs
- Documented AST and other component sematics
- FAQs to know more about the language. (Available in docs/)
- More examples
performance
- Runner is now faster than ever.
- Multithread
test
checking support, allowing user to test hundreds of thousands of seconds in seconds.
Full Changelog: rootCircle/cpast@v0.3.3...v0.4.0
v0.3.3 stable
v0.3.x stable release
CLI
- Breaking CLI changes, introduction of two subcommands,
test
andgenerate
.test
for running and comparing two files and finding missing edge cases, whilegenerate
is just to generate the testcase and print it to generate
now supports copying testcases over clipboard using-c
flag, using which you can use testcases in other platforms as welltest
subcommand now supports an optional--no-stop
flag, that can be used to never stop after only one failing testcase is found
Library Changes
- Strong support for length based checks and charset(string modifiers). Sample usage
cpast generate "S[10,'U']"
- 'U' for uppercase, 'L' for lowercase, '0'..'9' for digit, 'N' for Alphanumeric, 'D' for All (including symbols), 'A' for alphabets only!
- Introduction of support for character literal in cpast, currently being used for string modifier expressions only.
- compile_and_test method now requires an boolean argument at last to accord to changes in CLI. This argument as addressed earlier too is to whether or not to stop after one failing testcase is found.
- Minimum Value for Integer in capturing group now automatically conforms to 0, if negative.
- Dependencies update
- Fixed & Updated Docs
Ops
- This release also address compilation issues of users using android, by using
--no-default-features
flag during compilation. - Dependencies update of clap to 4.4.18
Performance Fixes
- remake implementation to reduce repeated compilation based on remake implementation in GNU make
- Significant improvement in benchmark performance for
test
with files of compiled programming language.
Full Changelog: rootCircle/cpast@v0.2.9...v0.3.3
v0.2.9-alpha
Full Changelog: https://github.com/rootCircle/cpast/commits/v0.2.9
First Release
v0.2.0-alpha Added README file