Skip to content

Latest commit

 

History

History
68 lines (44 loc) · 1.65 KB

File metadata and controls

68 lines (44 loc) · 1.65 KB

Contributing

Thank you for your interest in contributing to pycu!

Prerequisites

  • Rust 1.85 or later (stable toolchain - edition 2024)

  • rustfmt and clippy components:

    rustup component add rustfmt clippy

Build

cargo build

Test

cargo test --all-features

Tests are fully offline - no network calls are made. Fixtures live in tests/fixtures/.

To run a single test module:

cargo test parsers
cargo test version

Code quality

CI enforces formatting, linting, and tests. Run these before pushing:

cargo fmt
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-features

All warnings are treated as errors. Fix them before opening a PR.

Adding a new dependency file format

  1. Create src/parsers/<format>.rs implementing the DependencyParser trait.
  2. Register it in src/parsers/mod.rs - add detection logic to detect_parser.
  3. Add a fixture file under tests/fixtures/ and tests in your new parser module.

Submitting a pull request

  1. Fork the repository and create a branch off main.
  2. Make your changes, add tests, ensure all checks above pass.
  3. Open a pull request with a clear description of what changes and why.

For large changes, open an issue first to discuss the approach before investing time in an implementation.

Reporting bugs

Use the bug report template.

Security vulnerabilities

Please do not open a public issue for security vulnerabilities. See SECURITY.md for responsible disclosure instructions.