aayudha docs Built from de79988 (2026-10-26)

dev, rolling, main

Every change climbs the same three-rung ladder before it reaches everyone. Each rung is a branch, and each step up runs a bigger gate. That way, new work reaches early adopters fast, and stable releases stay stable.

A story's pull request squash-merges into dev when its gate is green; dev is promoted to rolling when the rolling gate passes, tagged rolling and the date; rolling is promoted to main when the stable gate passes, tagged with a version.

Three rungs. A gate at every step.

The three rungs

Branch What it is Who uses it
dev Where every merged pull request lands. Always builds, but not a release The team, every day
rolling A snapshot of dev promoted on a schedule, tagged rolling-<date> Early adopters who want the latest
main A stable release, promoted from rolling on a deliberate decision, tagged vX.Y.Z Everyone else

The gates

If a gate fails, nothing moves. The fix goes into dev and climbs again.

Your product does not have to use all three rungs. If your repository has only main, init maps it and renames nothing; add dev and rolling when you want them.

Why a ladder helps you

In the story: benefits-qa reached rolling as rolling-2026-10-12.4. Three days later, on 15 October 2026, main got the first stable release, v0.1.0, which is what your first hour installs.

The procedure, step by step, is in Contributing. Terms are defined in the glossary.

Under the hood: the gates, signatures, and provenance of each step are in releases and the supply chain.

What's next

You have the ideas. Now see them in motion: the journey at a glance.