Contributing
Thank you for being interested in contributing to open source software! There are lots of ways to contribute to the project:
- Try it out, and report any bugs or issues that you find
- Implement new features
- Review other contributor's pull requests
- Write documentation
- Participate in discussions
Development
To set up for development:
- Fork the repository on GitHub by clicking the "Fork" button on the project's GitHub page
-
Clone your fork (replace
YOUR-USERNAME
with your GitHub username):git clone https://github.com/YOUR-USERNAME/httpx-retries.git cd httpx-retries
-
Add the original repository as a remote to sync latest changes:
git remote add upstream https://github.com/will-ockmore/httpx-retries.git
-
Install dependencies:
uv sync
Running Tests
Run the test suite:
./scripts/test
This will run the tests with coverage reporting.
Code Quality
We use several tools to maintain code quality. Run all checks with:
./scripts/check
This runs:
Documentation
Documentation is built using MkDocs. To preview locally:
mkdocs serve
Then visit http://127.0.0.1:8000
in your browser.
Pull Requests
To submit changes:
- Fork the repository
- Create a new branch for your changes
- Make your changes
- Run tests and code quality checks
- Submit a pull request
We aim to review pull requests promptly and provide constructive feedback if needed.
Releasing
This section is for maintainers only.
To release a new version:
- Update version in
pyproject.toml
following Semantic versioning (for example:0.2.4
) - Update
CHANGELOG.md
, following Keep a Changelog - Create a new release on GitHub:
- Tag version like
0.2.4
- Title
0.2.4
- Description copied from the changelog
- The GitHub release will automatically trigger a PyPI publish
If the PyPI publish fails, you can manually publish using:
./scripts/publish