Why it is shaped this way
Releases are frequent and named for bread
Status: accepted, 2026-10-07. Reopen if adopters ask for fewer releases than master's pace gives them, or if the list below runs out and no bread is left that the rule admits.
Status: accepted, 2026-10-07. Reopen if adopters ask for fewer releases than master's pace gives them, or if the list below runs out and no bread is left that the rule admits.
Context#
Eight releases from 0.1.0 to 0.8.0 were each cut when a planned step was done, and named by the owner on a relay theme, one at a time. After 0.7.0 the owner dropped formal release cycles for commits and iteration, and 0.8.0 then gathered everything since 0.7.0 in one release. An adopter depends on Baton by its tag, so a change that is on master and not in a tag does not reach them; each release also had to wait for someone to pick its name.
Decision#
- Releases are frequent: days apart, not weeks. A release is cut when the changelog's Unreleased section holds something an adopter can use and the local checks pass. It waits for no step, theme or batch of work.
- The name is chosen automatically, not asked for: whoever cuts the
release takes the first name in the list below that no release has used
and writes it into the changelog's heading. The same commit moves the
version the Gradle recipe quotes,
docs/recipes/gradle.md, to the release, since the workflow's commit touches the manifests alone. The release workflow takes no input: it reads the version and the name from that heading, and refuses a version already tagged or a name an earlier release used. - The names are breads of Russian, Ukrainian and Belarusian baking, and their variants, transliterated into ASCII as one capitalized word, as English most often spells them.
- Baton, the loaf the project is named for, is kept for 1.0.
The names, in order, from 0.9.0:
- Krendel
- Vatrushka
- Karavai
- Palianytsia
- Bublik
- Kalach
- Sushka
- Pampushka
- Kulich
- Knysh
- Baranka
- Borodinsky
- Pyshka
- Perepichka
- Bukhanka
- Rasstegai
- Pletinka
- Kulebyaka
- Shanga
- Zhavoronok
- Paska
- Lepyoshka
- Sloika
- Darnitsky
When the list runs out, names that follow the same rule are appended to it before the next release; a name already used is never used again.
Evidence#
- The repository: tags
v0.1.0tov0.8.0; 0.8.0's changelog section covers the whole spine and the lanes, a month of planned steps in one release. - The release workflow (
.github/workflows/release.yml) took the version and the name as inputs and checked that the changelog had the section## <version> (<name>); the heading already held both, and nothing else in a release needed a person.
Not chosen#
- A release per planned step: the steps are done, and work since lands as single commits that would wait for a step that is not coming.
- Names chosen by the owner each time: a release would wait on a question with no technical content.
- Keeping the relay theme: its words ran out with the race, and Photo Finish, which it promised to the last release before 1.0, is retired with it.
Baton