Thank you for your interest in contributing to purecode! We want to make this tool the standard for semantic diff analysis.
- Rust: You will need a stable Rust toolchain installed. We recommend using rustup.
- Git: For version control.
-
Clone the repository:
git clone https://github.com/yourusername/purecode.git cd purecode -
Build the project:
cargo build
-
Run tests:
cargo test -
Run the tool locally: You can run the CLI against the repo itself to test changes:
cargo run -- --base HEAD~1 --head HEAD
- Idiomatic Rust: We strive for clean, idiomatic Rust code (Edition 2021).
- Formatting: Please run
cargo fmtbefore submitting. - Linting: We use
clippyto catch common mistakes. Please runcargo clippyand address warnings.cargo clippy -- -D warnings
- Documentation: Public structs and functions should have documentation comments (
///).
- Create a new branch for your feature or fix. We recommend naming it
feature/your-feature-nameorfix/issue-description. - Make your changes.
- Add tests for any new logic (especially new classifiers).
- Ensure all tests pass.
- Push your branch and open a Pull Request against
main.
Our GitHub Actions workflow automatically:
- Builds the project on Linux, macOS, and Windows.
- Runs the test suite.
- (On PRs) Generates binary artifacts that you can download to verify behavior on different OSes.
If you find a bug or have a feature request, please open an issue in the GitHub repository describing the problem and how to reproduce it.