This repository uses a two-branch development model based on java-tron's release workflow.
developis the default development and integration branch. Start normal work fromdevelopand merge it back through a pull request.maincontains stable, released code. Do not send feature, fix, documentation, or upstream-sync pull requests directly tomain.
Protect both branches from direct pushes, force pushes, and deletion. Require pull requests, successful checks, review approval, and resolved conversations before merging.
Create day-to-day branches from develop. Supported prefixes are:
feature/*orfeat/*for featuresfix/*for non-release fixesdocs/*,chore/*,refactor/*,test/*,perf/*, orci/*for their corresponding worksync/*for upstream synchronization
Open these pull requests against develop.
When develop is ready for release:
- Create
release_vX.Y.Zfromdevelop. - Apply version changes, consume Changesets, update release notes, and complete regression testing on the release branch.
- If regression identifies a bug, merge its fix directly into the release branch and repeat the regression test.
- Open
release_vX.Y.Zintomainand merge it with a merge commit. - Tag and publish from the resulting
maincommit. - Merge the release branch back into
developafter the release passes regression. - Retain the release branch permanently as the release snapshot.
Release branches must use the release_* pattern. Never open develop directly into main.
For an urgent production fix:
- Create
hotfix/<description>frommain. - Open it into
main, complete review and CI, and merge it with a merge commit. - Merge the same hotfix branch into
develop.
Retain the hotfix branch until both merges are complete.
| Source | Target | Purpose |
|---|---|---|
| Development branch | develop |
Normal development |
release_* |
main |
Stable release |
release_* |
develop |
Mandatory release back-merge |
hotfix/* |
main |
Production hotfix |
hotfix/* |
develop |
Hotfix back-merge |
The source-and-target workflow enforces these routes.
Automatic pull-request Audit is disabled by default while the self-hosted
runner is unavailable. Leave the repository variable AUDIT_AUTO_ENABLED
unset, or set it to a value other than true, to keep the Audit check as a
successful no-op on GitHub-hosted infrastructure.
Set AUDIT_AUTO_ENABLED=true only after the runner is healthy. Automatic Audit
then runs only for branches in this repository; fork pull requests remain on
the no-op path. Authorized users listed in AUDIT_ALLOWED_USERS can continue
to request the existing self-hosted workflow with /audit-pr.