Flux de travail pour créer une nouvelle version¶
Remplir le fichier
CHANGELOG.mdavec la nouvelle versionChanger le numéro de version dans
__init__.pyCréation d’un nouveau répertoire dans le dossier
versionset appliquer les modifications suivantes :Création à minima d’un répertoire
apiavec le fichier__init__.py. Vous pouvez copier le contenu d’une version précédente. Changez le chemin vers les endpoints en fonction des changements opérés (Si pas de changement côté endpoints, alors vous pouvez importer les endpoints de la version précédente, à condition de ne pas supprimer le dossier de la version précédente).Le fichier
exceptionsdoit également être ajouté à la racine de ce nouveau dossier. Pensez à mettre à jour le chemin des imports.En supplément des 2 fichiers précédents, ajoutez dans ce dossier tous les fichiers qui diffèrent par rapport à la version précédente
Des modifications doivent être effectués dans le fichier
main.py:Ajoutez les imports de la nouvelle version (
apietexceptionsen y ajoutant des alias)Créez une variable sur le modèle des précédentes (Ex.
VERSION_3_0), ajoutez le router de la dernière version et mettre à jour les préfixes des routes des précédents routeurs (notamment le préfixeNO_VERSIONqui doit s’appliquer à la dernière version) 1.Ajoutez une condition à la méthodevalidation_exception_handlerpour importer le fichierexceptionscorrespondant à la version
Les chemins des imports doivent être mis à jour dans le dossier
tests. Ils doivent utiliser la dernière version. Des chemins sont à modifier dans les fichiers suivants :conftest.py,test_alti.py,test_resources.pyMise à jour du fichier
setup.cfgsur la sectionpytesten ajoutant éventuellement les versions à ignorer (Ex:--ignore=alti_api/versions/v1_0/*et dans la section coverage par ex:alti_api/versions/v1_0/exceptions.py)
En fonction du cycle de vie de l’application, vous pouvez passer en deprecated certains versions et donc retirer les codes correspondants dans le fichier
main.py.Appliquer un tag git avec la version correspondante :
git tag -a 0.3.0 {git commit hash} -m "New awesome feature"Pousser le tag sur la branche principale :
git push origin --tagsLa CI gitlab va alors publier une nouvelle image docker avec le tag ci-dessus et le lag
latest.