We love your input! We want to make contributing to snowforge-py as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
- Fork the repo and create your branch from
main
- If you've added code that should be tested, add tests
- If you've changed APIs, update the documentation
- Ensure the test suite passes
- Make sure your code lints
- Issue that pull request!
- Clone your fork:
git clone https://github.com/your-username/snowforge-py.git
cd snowforge-py
- Install poetry
pip install poetry
- Install dependencies
poetry install
- Create a new branch
git checkout -b feature/your-feature-name
- We use black for Python code formatting
- We use isort for import sorting
- We use flake8 for style guide enforcement
- We use mypy for static type checking
- Write tests for all new features
- Ensure all tests pass before submitting a PR
- Use pytest for testing
- Update the README.md if needed
- Add docstrings to all public methods and classes
- Update the examples if you add new features
- Keep the CHANGELOG.md up to date
- Update the README.md with details of changes to the interface
- Update the CHANGELOG.md with notes on your changes
- The PR will be merged once you have the sign-off of at least one maintainer
By contributing, you agree that your contributions will be licensed under its GPL-3.0 License.
To run tests locally using Act (GitHub Actions locally):