Contributing to TinyRetriever#
Thank you for your interest in contributing!
Development Setup#
-
Fork and clone the repository:
-
Set up the development environments:
-
Install pre-commit hooks:
Commit Messages#
This project uses Conventional Commits. All commit messages must follow this format:
Types#
| Type | When to use | Changelog section |
|---|---|---|
feat |
A new feature | Added |
fix |
A bug fix | Fixed |
perf |
A performance improvement | Changed |
refactor |
Code restructuring, no behavior change | Changed |
revert |
Reverting a previous commit | Fixed |
docs |
Documentation only | (skipped) |
test |
Adding or updating tests | (skipped) |
chore |
Maintenance, dependencies, tooling | (skipped) |
ci |
CI/CD changes | (skipped) |
build |
Build system or external dependencies | (skipped) |
Breaking Changes#
Append ! after the type, or add BREAKING CHANGE: in the footer:
Examples#
feat: add retry with exponential backoff for transient errors
fix: handle missing Content-Length in download validation
chore: bump ruff to v0.15.8
docs: add example notebook for hydrology data
Running Tests#
Linting#
Type Checking#
Documentation#
pixi r -e docs docs-serve # live preview at http://localhost:8000
pixi r -e docs docs-build # build static site
Managing the Changelog#
The changelog is maintained by git-cliff and generated
automatically from conventional commit messages. You do not need to edit CHANGELOG.md
manually.
pixi r -e dev changelog # preview unreleased changes
pixi r -e dev changelog-update # write them to CHANGELOG.md
Submitting Changes#
-
Create a feature branch from
main: -
Make your changes with tests. If you are making breaking changes, update the documentation and
README.mdas well. -
Fetch the latest upstream and resolve any merge conflicts:
-
Ensure all checks pass:
-
Commit using conventional commits and push:
-
Submit a pull request through the GitHub website.
Reporting Bugs#
Before submitting a bug report, search existing issues to avoid duplicates. When filing a new issue:
- Provide a clear and descriptive title.
- Describe the expected behavior vs. the actual behavior.
- Include a minimal reproducible example.
- Include your Python version, OS, and relevant package versions.
Security-related issues must be reported by email to cheginit@gmail.com, not through the public issue tracker.
Suggesting Enhancements#
Enhancement suggestions are tracked as GitHub issues. Please check for existing suggestions before opening a new one, and explain why the enhancement would be useful to the broader user base.