- Rust (stable toolchain, see
rust-toolchain.toml) - CMake (for building the vendored ncbi-vdb C library)
git clone --recurse-submodules https://github.com/fg-labs/fg-sra
cd fg-sra
cargo build --releaseWe use pre-commit hooks to ensure code quality. Install them after cloning:
./scripts/install-hooks.shThis installs hooks (via symlink, so updates propagate automatically) that run before each commit:
cargo ci-fmt- Check code formattingcargo ci-lint- Run clippy lints (pedantic)
# Format check (fails if formatting differs)
cargo ci-fmt
# Lint check (fails on any warnings, pedantic enabled)
cargo ci-lint
# Run all tests (uses nextest)
cargo ci-test- Run
cargo fmtbefore committing - Fix all clippy warnings (including pedantic)
- Add backticks around identifiers in doc comments (e.g.,
`read_name`)
All new features should include tests. Run the full test suite with:
cargo ci-testIntegration tests that require network access to resolve SRA accessions are
marked #[ignore] and can be run with:
cargo test -- --ignored- Ensure all CI checks pass (
cargo ci-fmt,cargo ci-lint,cargo ci-test) - Keep PRs focused and reasonably sized
- Include tests for new functionality