Files
winnow/CONTRIBUTING.md

1.6 KiB

Contributing to winnow

Bug reports, feature requests, and pull requests are all welcome.

Before You Start

  • Check existing issues to avoid duplicates.
  • For large changes, open an issue first to discuss the approach.
  • All PRs target the dev branch — never main directly.

Development Setup

Requires Python 3.13+ and uv.

git clone https://github.com/sudolulo/winnow.git
cd winnow
git checkout dev
uv sync
git config core.hooksPath .githooks

The last line activates the project's git hooks. The pre-commit hook automatically runs uv lock and stages the result whenever pyproject.toml is part of a commit, keeping the lockfile in sync without any extra steps.

Running Tests and Lint

uv run pytest          # run the test suite
uv run ruff check      # lint
uv run ruff check --fix  # auto-fix lint issues

CI runs both on every push and PR to main and dev. PRs must pass before merging.

Pull Request Guidelines

  • One logical change per PR.
  • If you add behaviour, add a test for it.
  • Keep the CHANGELOG.md entry in the [Unreleased] section updated.
  • Commit messages should be plain English describing what changed and why.

Development Tooling

Development uses Claude Code (Anthropic) for implementation assistance. All code is reviewed and the final call on design, behavior, and what ships is made by the maintainer. Contributions from humans are equally welcome.

License

By submitting a contribution you agree that your work will be released under the project's AGPLv3+ license.