|
| 1 | +# ADR-0011: Use Coach-Themed Semantic Versioning |
| 2 | + |
| 3 | +Date: 2026-06-10 |
| 4 | + |
| 5 | +## Status |
| 6 | + |
| 7 | +Accepted |
| 8 | + |
| 9 | +## Context |
| 10 | + |
| 11 | +The project uses Semantic Versioning (MAJOR.MINOR.PATCH). Purely numeric tags |
| 12 | +are accurate but forgettable. The project is football-themed and part of a |
| 13 | +cross-language comparison set where each repo adopts a different |
| 14 | +football-domain naming convention. Several well-known projects use alphabetical |
| 15 | +codename conventions (Ubuntu, Android). |
| 16 | + |
| 17 | +This repo uses famous football managers/coaches as codenames. Release tags |
| 18 | +follow the format `v{MAJOR}.{MINOR}.{PATCH}-{coach}`, where the coach name is |
| 19 | +drawn from the fixed list below, assigned A→Z sequentially: |
| 20 | + |
| 21 | +| Letter | Coach Name | Country/Notable Era | Tag Name | |
| 22 | +| ------ | ---------- | ------------------- | -------- | |
| 23 | +| A | Ancelotti (Carlo) | Italy | `ancelotti` | |
| 24 | +| B | Bielsa (Marcelo) | Argentina | `bielsa` | |
| 25 | +| C | Capello (Fabio) | Italy | `capello` | |
| 26 | +| D | Del Bosque (Vicente) | Spain | `delbosque` | |
| 27 | +| E | Eriksson (Sven-Göran) | Sweden | `eriksson` | |
| 28 | +| F | Ferguson (Alex) | Scotland | `ferguson` | |
| 29 | +| G | Guardiola (Pep) | Spain | `guardiola` | |
| 30 | +| H | Heynckes (Jupp) | Germany | `heynckes` | |
| 31 | +| I | Inzaghi (Simone) | Italy | `inzaghi` | |
| 32 | +| J | Klopp (Jürgen) | Germany | `klopp` | |
| 33 | +| K | Kovač (Niko) | Croatia | `kovac` | |
| 34 | +| L | Löw (Joachim) | Germany | `low` | |
| 35 | +| M | Mourinho (José) | Portugal | `mourinho` | |
| 36 | +| N | Nagelsmann (Julian) | Germany | `nagelsmann` | |
| 37 | +| O | Ottmar Hitzfeld | Germany/Switzerland | `ottmar` | |
| 38 | +| P | Pochettino (Mauricio) | Argentina | `pochettino` | |
| 39 | +| Q | Queiroz (Carlos) | Portugal | `queiroz` | |
| 40 | +| R | Ranieri (Claudio) | Italy | `ranieri` | |
| 41 | +| S | Simeone (Diego) | Argentina | `simeone` | |
| 42 | +| T | Tuchel (Thomas) | Germany | `tuchel` | |
| 43 | +| U | Unai Emery | Spain | `unai` | |
| 44 | +| V | Van Gaal (Louis) | Netherlands | `vangaal` | |
| 45 | +| W | Wenger (Arsène) | France | `wenger` | |
| 46 | +| X | Xavi Hernández | Spain | `xavi` | |
| 47 | +| Y | Yozhef Sabo | Ukraine | `yozhef` | |
| 48 | +| Z | Zeman (Zdeněk) | Czech Republic | `zeman` | |
| 49 | + |
| 50 | +## Decision |
| 51 | + |
| 52 | +Every release tag appends an alphabetically ordered football coach surname to |
| 53 | +the Semantic Version. Format: `v{MAJOR}.{MINOR}.{PATCH}-{coach}`. Names are |
| 54 | +drawn from the fixed list above, assigned A→Z sequentially. The CD pipeline |
| 55 | +validates the coach name against this list before publishing. |
| 56 | + |
| 57 | +## Consequences |
| 58 | + |
| 59 | +**Positive:** |
| 60 | + |
| 61 | +- Release names are memorable and human-friendly. |
| 62 | +- Alphabetical ordering provides an implicit sequence visible in `git tag`. |
| 63 | +- The naming scheme is deterministic — the next name is always the next letter. |
| 64 | +- Reinforces the football theme across the cross-language comparison set. |
| 65 | + |
| 66 | +**Negative:** |
| 67 | + |
| 68 | +- Non-standard tag format; may confuse new contributors unfamiliar with the |
| 69 | + convention. |
| 70 | +- The list is finite — 26 slots before the sequence must restart or be |
| 71 | + extended. |
| 72 | +- CD validation adds a small amount of pipeline complexity. |
| 73 | + |
| 74 | +**Neutral:** |
| 75 | + |
| 76 | +- The full list is documented in `CLAUDE.md` and `CHANGELOG.md`; the current |
| 77 | + position is always the last released tag. |
0 commit comments