From 18ef99409a7a84dab8fe1d27127b679aec877572 Mon Sep 17 00:00:00 2001 From: jhaas Date: Sat, 25 Jul 2026 14:59:21 +0000 Subject: [PATCH] Add versioning convention --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1c7a141 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# jhaas + +Home lab / personal projects. This repo has no code — Forgejo renders its +`README.md` on the profile page, so it's used to hold conventions that +apply across every repo below, instead of duplicating them in each one. + +## Versioning: `YY.MAJOR.MINOR-BUILD` + +All projects version releases (git tags, changelog entries, artifact +filenames) as: + +``` +YY.MAJOR.MINOR-BUILD +``` + +Example: **`26.0.0-1`** + +| Field | Meaning | Effect when bumped | +|---------|------------------------------------------------------|------------------------------| +| `YY` | Two-digit calendar year of the release | — | +| `MAJOR` | Breaking / incompatible change | resets `MINOR` → 0, `BUILD` → 1 | +| `MINOR` | New feature, non-breaking addition | resets `BUILD` → 1 | +| `BUILD` | Anything else on the same `YY.MAJOR.MINOR` (fix, rebuild, tweak) | +1 | + +`YY` simply tracks the calendar year the release happened in — it does not +by itself force a `MAJOR`/`MINOR`/`BUILD` reset. A project can go from +`25.2.1-4` straight to `26.2.1-5` if nothing breaking or new landed around +New Year's. + +### Example progression + +``` +26.0.0-1 first release of the year, MAJOR 0 / MINOR 0 +26.0.0-2 bugfix rebuild, same MAJOR.MINOR +26.1.0-1 new feature added -> MINOR bumped, BUILD reset +26.1.0-2 another small fix +27.0.0-1 breaking redesign, new year -> MAJOR bumped, MINOR/BUILD reset +``` + +### Git tags + +Tag releases as `vYY.MAJOR.MINOR-BUILD`, e.g. `v26.0.0-1`. + +### Where this shows up + +- Git tags on the release commit +- `CHANGELOG.md` (if the project has one) +- Optionally, a small version string in a project's `docs/index.html` + footer (see [projects-hub](https://git.joha.mywire.org/jhaas/projects-hub) + for the hub convention those pages follow)