Branch strategy
This page describes which branches are active, what each is for, and how the CI workflows are wired to them.
Today
There are two branches a contributor needs to know about:
| Branch | Purpose |
|---|---|
v1.0 | Active maintenance branch for the 1.x.x line. All bug fixes that need to ship to users in v1.x.x land here. |
main | Work-in-progress port to Kotlin Multiplatform for iOS and Android. |
Where to send pull requests
- Bug fixes for the shipped 1.0.x app — open the PR against
v1.0. - KMP work — open the PR against
mainfor now.
What CI runs where
The workflow file that GitHub uses to decide whether to trigger is the one on the target branch of the event, so each branch’s copy of a workflow controls its own triggers.
run-tests.yaml— triggered by PRs targetingmainorv1.0. Each branch’s own copy of the workflow lists its own name, so a PR is gated by the tests defined on the branch it’s merging into. This is the gate for both 1.0 maintenance contributions and ongoing work onmain.jekyll-gh-pages.yml— triggered by pushes tov1.0. The published docs site is built fromv1.0while it is the active release branch. Auto-deploy frommainis intentionally disabled (workflow_dispatchonly) so that a push tomaincannot clobber the v1.0 docs.nightly.yaml— scheduled triggers on GitHub only fire from the repository’s default branch (main), so the nightly lives onmainand uses astrategy.matrixover[main, v1.0]to produce a nightly build per branch.build-app.yamlandrun-maestro-tests.yaml— manual (workflow_dispatch) only. Pick the branch when you run them.
See GitHub actions for the per-workflow detail.