Skip to content

Latest commit

 

History

History
66 lines (50 loc) · 1.64 KB

File metadata and controls

66 lines (50 loc) · 1.64 KB

Contributing to crategeist

Thanks for wanting to contribute. Here's how to get started.

Development setup

git clone https://github.com/zaptech-dev/crategeist.git
cd crategeist
cargo build

Running locally

# Quick test (no build, no network)
cargo run -- crategeist --skip-timing --skip-security

# Full run on itself
cargo run -- crategeist

Before submitting a PR

cargo fmt --check
cargo clippy -- -D warnings
cargo build

Make sure there are no warnings.

What to work on

Check the issues for open tasks. If you want to work on something not listed, open an issue first to discuss the approach.

Good first contributions:

  • Improving unused dependency detection accuracy
  • Adding output formats (JSON, markdown)
  • Better timing measurement strategies
  • Documentation improvements

Guidelines

  • Keep it simple. Don't over-engineer.
  • One PR per feature or fix.
  • Write clear commit messages.
  • No async — this is a sequential CLI tool (rayon for parallelism where needed).
  • Stable Rust only, no nightly features.
  • Test your changes by running crategeist on real projects.

Project structure

src/
  main.rs               # CLI entry, orchestration
  metadata.rs           # cargo_metadata wrapper, workspace support
  analyze/
    timing.rs           # cargo build JSON message parsing
    security.rs         # rustsec advisory DB audit
    unused.rs           # regex source scanning
    critical_path.rs    # petgraph DAG longest-path
  report/
    terminal.rs         # comfy-table + colored output
    html.rs             # maud single-file HTML report