2.3 KiB
0012. Use Stadium-Themed Semantic Versioning
Date: 2026-04-02
Status
Accepted
Context
The project follows Semantic Versioning (MAJOR.MINOR.PATCH) for release numbers. Purely numeric version strings are accurate but forgettable — contributors and users rarely remember whether "2.1.0" came before or after "2.0.3" without consulting the changelog.
The project is football-themed (it manages football player data), and is part of a cross-language comparison set. A naming convention that reflects the project's domain makes releases memorable and reinforces the project's identity.
Several well-known projects use codename conventions: Ubuntu (alphabetical adjective-animal pairs), Android (alphabetical desserts until Android 10), macOS (California landmarks). The pattern is established and understood.
Decision
We will append a football stadium codename to every release tag, following the format vMAJOR.MINOR.PATCH-stadium (e.g., v2.1.0-dusseldorf). Stadium names are drawn from a fixed, alphabetically ordered list of venues that hosted FIFA World Cup matches, documented in CHANGELOG.md. Names are assigned sequentially A→Z; the next release always uses the next unused letter. The tag format is enforced by the CD pipeline, which validates the stadium name before publishing.
Consequences
Positive
- Release names are memorable: "the dusseldorf release" is easier to recall and discuss than "2.1.0".
- Alphabetical ordering provides an implicit sequence — contributors can determine release order from the name alone without consulting version numbers.
- The convention is consistent and deterministic: there is no ambiguity about which name comes next.
- Reinforces the football domain theme throughout the project's lifecycle.
Negative
- The convention is non-standard and may confuse first-time contributors who expect plain semantic version tags.
- The stadium list is finite (26 letters). If the project ever reaches 26 major releases, the list must be extended or the convention revisited.
- The CD pipeline validation adds a small amount of CI complexity to enforce the format.
Neutral
- The stadium list is published in
CHANGELOG.mdunder "Stadium Release Names" for reference. The current position in the sequence is always the last released tag — the next unused letter determines the next stadium name.