Thank you for your interest in contributing to PyStormTracker! We welcome contributions from the community to help improve this cyclone tracking framework.
If you find a bug, please open an issue on GitHub. Include:
- A clear description of the issue.
- Steps to reproduce the bug.
- Any relevant logs or error messages.
- Information about your environment (OS, Python version, PyStormTracker version).
We welcome ideas for new features or improvements. Please open an issue to discuss your proposal before starting implementation.
-
Fork the repository and create your branch from
main. -
Install development dependencies:
uv sync
-
Make your changes:
- Ensure your code follows the project's style (use
rufffor formatting and linting). - Add or update tests for your changes.
- Ensure all tests pass.
- Ensure your code follows the project's style (use
-
Run the local quality checks:
uv run prek run --all-files uv run mypy uv run pytest uv run pytest tests/integration -m "not slow and not data" uv run pytest tests/parity -m "not slow and not data" uv run python scripts/generate_trackjson_schema.py --check
uv run pytestis the fast unit suite because the default test paths aretests/unit. See the testing guide for external-data and expensive validation. -
Submit the Pull Request:
- Provide a clear description of the changes.
- Reference any related issues.
- Code Style: We use
rufffor linting and formatting. - Type Safety: All new code should be type-hinted and pass
mypystrict checks. - Testing: We use
pytest. Unit tests run withuv run pytest; select integration or parity explicitly with their directory and use-m slowfor expensive cases. Seedocs/development/testing.mdfor the standard commands. - Documentation: Update the documentation in
docs/if you introduce new features or change existing behavior.
This project is currently maintained by Albert M. W. Yau. Decisions regarding pull requests and the project's roadmap are made by the maintainer in consultation with the community.
For usage questions, configuration help, or unexpected scientific behavior, open a GitHub issue with the PyStormTracker version, platform, and a minimal example where possible.
Please be respectful and professional in all interactions within the PyStormTracker community.