Il progetto Heimdall utilizza un workflow GitHub Actions completamente automatizzato per gestire le release. Il processo è semplice e richiede solo il tagging delle versioni su develop.
developModificare il CHANGELOG.md e spostare i vostri cambiamenti dalla sezione [Unreleased] a una nuova sezione [VERSION]:
## [Unreleased]
### Added
- Nothing yet
### Fixed
- Nothing yet
---
## [0.3.0] - 2025-10-30
### Added
- **Feature Name**
- Descrizione della feature
- Dettagli implementativi
In locale, aggiornare:
pyproject.toml: version = "0.3.0"frontend/package.json: "version": "0.3.0"CHANGELOG.md: Creare sezione [0.3.0] con data odierna# Committare i cambiamenti
git add pyproject.toml frontend/package.json CHANGELOG.md
git commit -m "Release v0.3.0 - Feature description"
# Creare il tag (FORMATO IMPORTANTE: vX.Y.Z)
git tag -a v0.3.0 -m "Release 0.3.0 - Feature description"
# Pushare a origin
git push origin develop v0.3.0
Una volta che il tag viene pushato:
v0.3.0Release v0.3.0[0.3.0] del CHANGELOGmaindevelop in mainmainpyproject.tomlfrontend/package.jsonCHANGELOG.md con nuova sezione [Unreleased]developI tag devono seguire il formato Semantic Versioning:
v0.3.0 ✅ (CORRETTO)v1.2.3 ✅ (CORRETTO)0.3.0 ❌ (SBAGLIATO - manca la ‘v’)release-0.3.0 ❌ (SBAGLIATO - formato non riconosciuto)┌─────────────────────────────────────────────────────────────┐
│ git tag -a v0.3.0 │
│ git push origin develop v0.3.0 │
└────────────────────────┬────────────────────────────────────┘
│
▼
┌────────────────────────────────┐
│ GitHub Actions Triggered │
└────────────┬───────────────────┘
│
┌───────────┴───────────┐
│ │
▼ ▼
┌─────────┐ ┌──────────┐
│ Job 1 │ │ Job 1 │
│ Create │─────>wait │ Push to │
│Release │ │ GitHub │
└─────────┘ └──────────┘
│
▼ (needs: create-release)
┌─────────────┐
│ Job 2 │
│ Merge to │
│ main │
└──────┬──────┘
│
▼ (needs: merge-to-main)
┌──────────────────┐
│ Job 3 │
│ Update Version │
│ in develop │
└──────────────────┘
│
▼
✅ Release Complete!
- GitHub Release created
- main synced with develop
- Next development version ready
v0.3.0 dovrebbe essere visibile con il changelog# Verificare che main sia sincronizzato
git checkout main
git log --oneline -3
# Dovrebbe mostrare il merge commit
# Commit Release v0.3.0
# Verificare il tag su main
git tag --points-at HEAD
Possibili cause:
v*-a (non è annotato)developSoluzione:
# Eliminare il tag locale
git tag -d v0.3.0
# Eliminare dal remote
git push origin :v0.3.0
# Ricreare il tag correttamente
git tag -a v0.3.0 -m "Release 0.3.0"
git push origin v0.3.0
Verificare i logs:
Errori comuni:
pyproject.toml e package.json abbiano la sintassi correttaGITHUB_TOKEN abbia i permessi di write su contents e pull-requestsgit tag -a v0.3.0 -m "Release 0.3.0 - Phase 7 complete with automated release workflow"