Contributions are welcome! Whether you're fixing a bug, improving documentation, or adding new features — thank you for taking the time to contribute.
- Code of Conduct
- Opening Issues
- Pull Requests
- Local Setup
- Running Tests
- Running Static Analysis
- Deployment and Publishing
Please be respectful and considerate in all interactions. Constructive feedback is welcome; harassment or hostile behavior is not.
We appreciate bug reports, feature requests, and general feedback.
- Bug reports: Please include a minimal reproducible example and the Python version you're using.
- Feature requests or larger changes: Please open an issue before starting implementation work. This allows us to discuss the scope and approach, and avoids wasted effort if the direction needs to change.
- Questions and discussions: Issues are a good place for these too.
Pull requests are welcome! Please keep the following in mind:
- Scope: Each pull request should be focused on one thing only — one bug fix, one feature, one refactor. Mixed-purpose PRs are harder to review and will likely be asked to be split up.
- Discuss first: For any larger refactoring or significant code changes, please open an issue to discuss the matter before submitting a PR.
- Tests: Please ensure your changes are covered by tests. Existing tests must continue to pass.
- Style: Follow the conventions already established in the codebase.
Prerequisites: Python 3.9 or newer.
-
Clone the repository:
git clone https://github.com/python-jsonschema/rfc3987-syntax2.git cd rfc3987-syntax2 -
Install the package in editable mode together with the development dependencies:
pip install -e ".[testing]"
Tests are written with pytest.
python -m pytest testsType checking is done with mypy.
python -m mypy -vThe mypy configuration is in .mypy.ini.
Releases are managed by the maintainers. The process is:
- A maintainer creates a GitHub Release (including a version tag).
- This triggers the
python-publishGitHub Actions workflow, which builds the package and publishes it to PyPI automatically.
Contributors do not need to do anything special for releases.