Thank you for helping improve OxyRoute. This document covers how to build, test, and propose changes.
- Documentation — RSGI, routing, handlers, JWT, OpenAPI, ASGI, development.
- Issue backlog (batch templates) — 20 planned issues and PRIORITIES.md (P0 / P1).
- A code of conduct may be linked from the repository home page (Community Standards) if the maintainers add one.
- Python 3.10+ (see pyproject.toml).
- Rust stable toolchain and maturin to build the
oxyroute._oxyrouteextension. - A virtual environment is strongly recommended (especially on “externally managed” Linux distributions, PEP 668).
python -m venv .venv
source .venv/bin/activate
pip install -U pip maturin
maturin develop
pip install -e ".[dev]" # optional: granian, pytest, httpx, oxyjwtAvoid importing the unbuilt source tree when pytest picks up oxyroute/ without a matching native module. The CI job runs from a temporary directory and imports the installed wheel. Locally you can either:
cdoutside the repo and run:
python -m pytest /path/to/OxyRoute/tests -v
afterpip install/maturin developin the same environment, orpip installthe built wheel in a clean directory.
See docs/development.md for more detail.
cargo build
cargo clippy- Integration branch is
dev: alwaysgit fetch origin,git checkout dev,git pull origin devbefore creating a branch. Open PRs with base =dev; maintainers promote tomainfor releases as needed. - One issue, one PR (when possible): name the branch with the issue number, e.g.
issue-2-query-decodeorfeat/2-query-decode. Read the GitHub issue (and backlog body if linked) before coding. - After implementation, run the same tests and linters as CI (Ruff,
cargo fmt/clippy, pytest) — see.github/workflows/ci.yml. - Use atomic commits (one logical change per commit). Do not put
.github/ISSUE_BACKLOG/changes in the same commit as product code—backlog/templating updates should be a separatedocs:(orchore:) commit, or a separate PR. - Prefer conventional commits:
feat:,fix:,docs:,ci:,chore:,test:. - Full checklist: docs/development-workflow.md.
If you maintain the repo and want to file the planned roadmap in one go:
gh auth login- From the repo root:
chmod +x scripts/create-github-issues.sh(first time) then./scripts/create-github-issues.sh
Warning: the script is not idempotent; a second run will create duplicate issues.
To open a single issue: see .github/ISSUE_BACKLOG/README.md.
By contributing, you agree that your contributions are licensed under the same terms as the project (LICENSE, MIT).