Flux de release (standard TinyCorn Studio)
À appliquer lorsque l'utilisateur dit : « release », « publier vX.Y.Z », « pousser une nouvelle version sur git », « build du fichier d'installation + release ». Exécute l'intégralité du flux, ne pas redemander chaque étape sauf si une anomalie est détectée.
Prérequis
- Le dépôt contient un
CHANGELOG.md(Keep a Changelog) avec une section## [<version>] - <date>pour la version à publier. - Le dépôt contient un script de build du fichier d'installation (généralement
make-app.shavec la variableVERSION). ghest connecté avec les droitsrepo.- L'arbre de travail est propre (toutes les fonctionnalités sont commitées).
Étapes
1. Incrémenter la version (source unique)
sed -i '' -E 's/^(VERSION=).*/\1"0.5.0"/' make-app.sh
2. Build du fichier d'installation
./make-app.sh
ls -lh dist/
3. Mettre à jour CHANGELOG.md
Ajouter une nouvelle section en haut (selon Keep a Changelog) :
## [0.5.0] - 2026-10-18
### Added
- ...
### Fixed
- ...
4. Commit
git add -A
git commit -m "Release v0.5.0"
5. Fusionner vers main (si sur une branche de fonctionnalité)
git checkout main && git merge --ff-only <feature-branch>
6. Tag annoté + push
git tag -a v0.5.0 -m "v0.5.0"
git push origin main --tags
7. Créer une GitHub Release avec le fichier d'installation
Rédiger les notes de release en français (résumé + section « Quoi de neuf » + « Installation »), sauvegarder dans un fichier temporaire, puis :
gh release create v0.5.0 dist/<App>-0.5.0.dmg \
--title "v0.5.0 — <résumé>" \
--notes-file /tmp/release_notes_v0.5.0.md
8. Vérifier
gh release view v0.5.0
Vérifier : le tag pointe vers le bon commit, le fichier joint est bien uploadé, les notes s'affichent correctement.
Script d'automatisation
Ce dépôt contient un script scripts/release.sh qui effectue les étapes 1→7 pour les outils macOS utilisant make-app.sh :
./scripts/release.sh 0.5.0
Règles
- NE PAS commiter les fichiers d'installation (DMG, ZIP) dans le dépôt — les attacher uniquement aux GitHub Releases.
dist/doit être dans.gitignore. - Le CHANGELOG et le README doivent être mis à jour dans la même release.
- Le tag est toujours un tag annoté, au format
vX.Y.Z(SemVer). - Les notes de release sont rédigées en français, avec une section indiquant comment ouvrir l'application si elle n'est pas signée (clic droit → Ouvrir).
- En cas d'erreur 403 lors du push : vérifier
gh auth status, exécutergh auth setup-git, confirmer que le token dispose des droits sur l'organisation.