Thanks for your interest in improving the Siren Python SDK. This guide covers how to get set up and what we look for in a contribution.
Clone the repository and create a virtual environment:
git clone https://github.com/Novatorius/siren-python.git
cd siren-python
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"This installs the SDK in editable mode along with the development dependencies
(pytest, respx, build).
pytestThe suite is fully offline — HTTP is mocked with respx, so no network access
or live Siren account is required. Please keep it that way: add mocked tests
for new behavior rather than reaching for a real API.
- Create a branch off
main. - Write or update tests that cover your change. New functionality requires new tests; bug fixes should include a regression test.
- Run
pytestand make sure everything is green. - Keep the public surface typed — the package ships
py.typed. - Update
README.mdandCHANGELOG.md(under[Unreleased]) when your change is user-facing.
- Keep PRs focused on a single change and give them a clear description of what and why.
- Reference any related issue.
- CI runs the test suite across Python 3.9–3.13; it must pass before review.
By contributing, you agree that your contributions are licensed under the project's MIT License and that you will follow the Code of Conduct.