3.1 KiB
3.1 KiB
Guide de Release
Versioning
Le projet utilise le Semantic Versioning (SemVer) : MAJOR.MINOR.PATCH
- MAJOR : Changements incompatibles avec les versions précédentes
- MINOR : Nouvelles fonctionnalités rétrocompatibles
- PATCH : Corrections de bugs rétrocompatibles
La version est centralisée dans le fichier VERSION à la racine du projet.
Créer une release
Prérequis
- Tous les changements doivent être commités
- Les tests doivent passer
- Être sur la branche à releaser (ex:
main,develop)
Utilisation du script
# Afficher l'aide et la version actuelle
./scripts/release.sh
# Bump patch : 1.0.0 → 1.0.1
./scripts/release.sh patch
# Bump minor : 1.0.0 → 1.1.0
./scripts/release.sh minor
# Bump major : 1.0.0 → 2.0.0
./scripts/release.sh major
# Version spécifique
./scripts/release.sh 2.0.0
Le script :
- Met à jour le fichier
VERSION - Met à jour
config/packages/api_platform.yaml - Crée un commit
chore(release): vX.Y.Z - Crée le tag
vX.Y.Z
Pousser la release
git push && git push --tags
Créer la release sur Gitea
- Aller sur le dépôt Gitea
- Releases > New Release
- Sélectionner le tag
vX.Y.Z - Titre :
v1.0.0(ou avec un nom descriptif) - Description : résumé des changements (voir section Notes de release)
Notes de release
Template pour les notes de release :
## Nouveautés
- Feature A
- Feature B
## Corrections
- Fix du bug X
- Fix du bug Y
## Changements
- Refactoring de Z
- Mise à jour des dépendances
Fichiers impactés par le versioning
| Fichier | Usage |
|---|---|
VERSION |
Source unique de vérité |
config/packages/api_platform.yaml |
Version affichée dans l'API |
Inventory_frontend/nuxt.config.ts |
Lit VERSION au build |
| Footer de l'app | Affiche v{{ appVersion }} |
Déploiement en production
1. Base de données
Dump de la base locale :
pg_dump -h localhost -p 5433 -U root -d inventory > backup_v1.0.0.sql
Import en production :
psql -h <PROD_HOST> -U <PROD_USER> -d inventory < backup_v1.0.0.sql
2. Variables d'environnement production
Créer un fichier .env.local en production avec :
APP_ENV=prod
APP_SECRET=<générer avec: openssl rand -hex 32>
DATABASE_URL="postgresql://user:password@host:5432/inventory?serverVersion=16"
CORS_ALLOW_ORIGIN='^https://votre-domaine\.com$'
JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem
JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
JWT_PASSPHRASE=<votre-passphrase>
3. Build production
Backend :
composer install --no-dev --optimize-autoloader
php bin/console cache:clear --env=prod
php bin/console doctrine:migrations:migrate --no-interaction
Frontend :
cd Inventory_frontend
NUXT_PUBLIC_API_BASE_URL=https://api.votre-domaine.com yarn build
4. Checklist avant mise en prod
- Tests passent
- Migrations DB testées
- Variables d'environnement configurées
- Clés JWT générées
- CORS configuré
- SSL/HTTPS actif
- Backup de la DB prod existante (si upgrade)