OxyRoute uses dev as the integration branch. main (or the default production branch) is updated from dev when maintainers cut a release or merge a stable snapshot—follow what your team documents for release tagging.
- Sync
devfirst (alwaysfetch+pullbefore branching):git fetch origin git checkout dev git pull origin dev
- Create a branch for one GitHub issue:
git checkout -b issue-<N>-<short-slug>. - Read the issue (and
.github/ISSUE_BACKLOG/bodies/or linked spec if you use it). - Implement on that branch.
- Run tests and linters (same as CI, see
.github/workflows/ci.yml):uv run ruff check oxyroute tests examplesanduv run ruff format --check oxyroute tests examplescargo fmt --all -- --checkandcargo clippy --all-targets -- -D warningsuv run pytest(or the isolated pattern in development.md)
- Commit atomically (one logical change per commit:
feat:,fix:,test:,docs:, …). - Push and open a PR to
dev(base =dev), withCloses #Nwhen the issue is done.
- Prefer
issue-<N>-<kebab-slug>orfeat/<N>-<kebab>so the PR links to the issue (e.g. #12).
- Do not mix product code and
.github/ISSUE_BACKLOG/in the same commit. If you update templates, use a separatedocs:orchore:commit (or a separate PR).
git push -u origin issue-12-rsgi-e2eOn GitHub: New pull request → base: dev, compare: your branch. Use Closes #N (or Fixes #N) to auto-close the issue on merge.
Delete the remote branch (GitHub can do this on merge) and locally: git branch -d issue-12-rsgi-e2e. For the next issue, repeat from fetch + pull dev.
- Do not run
scripts/create-github-issues.shagain unless you want duplicate issues on GitHub. - Do not open a feature PR with base
mainunless the maintainers explicitly ask for a hotfix.
gh pr create --base dev --head YOUR_BRANCH --title "..." --body "Closes #12"
gh pr list --base dev