Publication

Pour publier une nouvelle version :

S’assurer que main est à jour

Être sur la branche production

La branche de référence pour les releases est production. C’est ici qu’on retrouve les différentes versions installées sur les instances. À ces releases correspondent des tags git.

git branch
# La liste des branches sera affichée avec une * avant la branche actuelle.

Si la branche actuelle n’est pas production :

git switch production

Récupérer les dernières modifications

Faire un merge de main dans production pour récupérer les dernières modifications prêtes à être publiées.

git merge main

main devrait être dans une version de dev et supérieure à production. Ce merge devrait créer deux conflits sur pyproject.toml et web/b3desk/__init__.py.

Résoudre ces conflits

Résoudre les conflit en mettant à jour le numéro de version dans pyproject.toml et dans web/b3desk/__init__.py simplement en enlevant dev de la version.

Lancer les tests avec tox

tox -p

Résoudre les erreurs éventuelles avant de recommencer la procédure.

Nommer ce commit

Pour simplifier l’historique du versionnement on nomme ce merge « Merge branch “main” W.X.Ydev into production »

git add <fichiers modifiés>
# exemple : git add pyproject.toml web/b3desk/__init__.py
git commit -m "Merge branch 'main' W.X.Ydev into production"
# exemple : git commit -m "Merge branch 'main' 1.2.20dev into production"

Ajouter un tag

Mettre un tag sur ce commit, portant le numéro de la version

git tag -a vW.X.Y -m "Bump to W.X.Y version"
# exemple : git tag -a v1.2.20 -m "Bump to 1.2.20 version"

Le pousser avec le commit, sur upstream si l’on travaille depuis un fork.

git push upstream production --follow-tags

Publier la nouvelle version

La release est publiée automatiquement par GitHub Actions à la réception du tag. Il suffit de se rendre sur la page des releases pour contrôler le message généré, et éventuellement le compléter (tickets fermés par la release, nouvelles migrations avec le revision ID délivré par alembic, configuration à ajouter, etc.).

Mettre main à jour

Repasser sur main

git switch main

Passer cette branche sur la prochaine version dev W.X.Zdev dans les fichiers pyproject.toml et web/b3desk/__init__.py.

Nommer ce commit « Update main to W.X.Zdev version ».

git add pyproject.toml web/b3desk/__init__.py
git commit -m "Update main to W.X.Zdev version"
# exemple : git commit -m "Update main to 1.2.21dev version"

Pousser ce commit sur upstream

git push upstream main

⚠️ Attention, pour que le numéro de version s’affiche correctement sur la version déployée, il est nécessaire que le projet soit déployé avec git (c.à.d. qu’il y ait un dépôt git qui soit déployé), et aussi que le commit qui soit déployé soit directement marqué par un tag git. Dans les autres cas, c’est le numéro de commit qui sera affiché.