First off, thank you for considering contributing to pystatelite! Your help is appreciated.
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open-source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
- Ensure the bug was not already reported by searching on GitHub under Issues.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
- Open a new issue on GitHub under Issues.
- Clearly describe the enhancement and the motivation for it. Explain why this enhancement would be useful.
- Provide code examples if possible to illustrate the use case.
- Fork the repository on GitHub.
- Clone your fork locally (
git clone git@github.com:alti3/stateless-py.git). - Create a new branch for your changes (
git checkout -b feature/my-new-featureorbugfix/fix-that-bug). - Make your changes. Ensure you adhere to the existing code style.
- Add tests for your changes. This is important so we don't break it in a future version unintentionally.
- Run tests locally (
uxv pytest) to ensure everything passes. - Commit your changes. Use clear and descriptive commit messages. Consider using Conventional Commits.
- Push your branch to your fork (
git push origin feature/my-new-feature). - Open a Pull Request on the
stateless-pyrepository. - Clearly describe the problem and solution. Include the relevant issue number if applicable.
- Clone the repository.
- It's recommended to use a virtual environment.
- Install the package in editable mode with test dependencies:
uv pip install -e .[test] # Or install pytest/pytest-asyncio separately - Run tests using
uvx pytest.
- Please follow the existing code style.
- We use
rufffor linting (see CI configuration). Try to ensure your code passes linting checks. - Use type hints where appropriate.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0 that covers the project.