Skip to content

Latest commit

 

History

History
67 lines (46 loc) · 1.65 KB

CONTRIBUTING.md

File metadata and controls

67 lines (46 loc) · 1.65 KB

Contributing to mako

Thanks for your interest in contributing! mako is intentionally small — a thin CLI wrapper around the sort engine from fgumi. Most correctness and performance work happens upstream in fgumi.

Where to file what

  • Sort engine bugs (records out of order, sort crashes, performance regressions, header tag handling): file against fulcrumgenomics/fgumi.
  • mako-specific issues (CLI flags, help text, packaging, install instructions, release tarballs, version banner): file here.

If you're not sure, file it here and we'll route it.

Development setup

Prerequisites

  • Rust toolchain (pinned via rust-toolchain.toml)

Install git hooks

We use a pre-commit hook to enforce formatting and lint cleanliness:

./scripts/install-hooks.sh

The hook runs cargo ci-fmt and cargo ci-lint before each commit.

Running checks manually

# Format check (fails if formatting differs)
cargo ci-fmt

# Lint check (fails on any warnings)
cargo ci-lint

# Run all tests
cargo ci-test

Bypass hooks (use sparingly)

git commit --no-verify -m "message"

Code style

  • Run cargo fmt before committing.
  • Fix all clippy warnings.
  • Follow Conventional Commits for commit messages — the changelog is generated from them.

Pull requests

  1. Ensure all CI checks pass (cargo ci-fmt, cargo ci-lint, cargo ci-test).
  2. Keep PRs focused.
  3. Include tests for new behavior.
  4. Update CHANGELOG.md (or rely on release-plz to generate it from conventional commits).