First off, thank you for considering contributing. It's people like you that make django-vrt such a great tool.
To get started with development, you'll need to set up your local environment.
-
Clone the repository:
git clone https://github.com/William-Blackie/django-vrt.git cd django-vrt -
Install dependencies: This project uses
uvfor dependency management. Install the development dependencies, includingplaywright.uv sync --extra dev uv run playwright install chromium
Before submitting a pull request, please ensure that all tests and linting checks pass.
-
Run tests:
uv run pytest
-
Run linter:
uv run ruff check . -
Check test coverage:
make coverage
The documentation is built using MkDocs. To preview your changes locally:
-
Install documentation dependencies:
uv pip install -r docs/requirements.txt
-
Serve the documentation:
mkdocs serve
You can now view the documentation at
http://localhost:8000.
django-vrt is automatically published to PyPI via GitHub Actions. There are three ways to trigger a release:
Create a new release through the GitHub UI:
- Go to Releases → "Create a new release"
- Set tag (e.g.,
v0.2.0) and title - Click "Publish release"
- The workflow automatically builds and publishes to PyPI
Push a version tag directly:
git tag v0.2.0
git push origin v0.2.0This triggers the build and publish automatically.
Run the publish workflow manually from GitHub:
- Go to Actions → "publish" workflow
- Click "Run workflow" → "Run workflow"
- The current
mainbranch code is built and published
Before releasing:
- Create or verify the release tag (
vX.Y.Z) forhatch-vcsversioning - Update
CHANGELOG.mdor release notes (if applicable) - Ensure all tests pass:
uv sync --extra dev && uv run pytest - Verify linting:
uv run ruff check . - Verify coverage gate:
make coverage(fails below configured threshold) - Commit and push changes to
main