Versioning and releases¶
DiagramaHub follows Semantic Versioning 2.0.0: MAJOR.MINOR.PATCH. The full policy is in VERSIONING.md (Spanish).
| Bump | When |
|---|---|
| PATCH | Fixes, polish, performance improvements, prompt tweaks, internal refactors: no new capability |
| MINOR | A new backwards-compatible feature or capability |
| MAJOR | Breaking changes to the API, data structures, import/export or frontend/backend contracts |
When in doubt: if it only fixes or polishes, it's PATCH; if it adds a capability, MINOR.
Beta
While the version is 0.x, APIs and data structures may change between versions. From 1.0.0 on, every breaking change will require a MAJOR bump.
Branches and tags¶
- Each version is prepared on a
release/<V>branch (e.g.release/0.8.4) and merged intomainthrough a PR. - Git tags have no
vprefix:0.8.3, notv0.8.3.
Files that carry the version¶
| File | Value |
|---|---|
frontend/package.json |
"version": "<V>" |
backend/pyproject.toml |
version = "<V>" |
frontend/.env.template |
VITE_APP_VERSION=<V> |
backend/app/core/config.py |
VERSION: str = "<V>" (reported by GET /, Swagger and Sentry) |
AGENTS.md |
current version, versioning section and environment example |
VERSIONING.md |
Versión actual: **<V>**. |
Release checklist¶
- Decide the bump (MAJOR, MINOR or PATCH).
- Update the version in every file in the table above.
- Write the notes
docs/es/release-notes/<V>.mdanddocs/en/release-notes/<V>.md, split by change type (💥 Breaking Changes, ✨ Features, 🐛 Fixes, ♻️ Refactors, ⬆️ Upgrades, 📝 Docs, 🌐 Translations, 🔧 Internal; only those with entries). - Add the
[<V>](<V>.md)row todocs/{es,en}/release-notes/index.md. - Add the pages to the
navinmkdocs.yml("Notas de Versión" / "Release Notes" section, inside its minor-version group). - Add
## [<V>] - <date>toCHANGELOG.md(in English, Keep a Changelog format). - Update the coverage badge in
README.mdwith the total of the full run. - Create the
<V>tag. -
Mandatory check:
The script fails closed against every file that must carry the version (code, configuration, docs, release notes, MkDocs
navand CHANGELOG). If anything reportsFAIL, the release is not merged.
Note
Lockfiles (backend/poetry.lock, frontend/pnpm-lock.yaml) are never edited by hand and the script ignores them. If a new file starts carrying the version, add it to the checklist in VERSIONING.md and to the script.
Documentation site¶
This site is built with MkDocs Material and published to GitHub Pages by the .github/workflows/docs.yml workflow whenever docs/, overrides/ or mkdocs.yml change on main (pull requests only build it). To preview it locally: