Flux de travail pour créer une nouvelle version¶
Remplir le fichier
CHANGELOG.md
avec la nouvelle versionChanger le numéro de version dans
__init__.py
Création d’un nouveau répertoire dans le dossier
versions
et appliquer les modifications suivantes :Création à minima d’un répertoire
api
avec 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
exceptions
doit é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 (
api
etexceptions
en 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_VERSION
qui doit s’appliquer à la dernière version) 1.Ajoutez une condition à la méthodevalidation_exception_handler
pour importer le fichierexceptions
correspondant à 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.py
Mise à jour du fichier
setup.cfg
sur la sectionpytest
en 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 --tags
La CI gitlab va alors publier une nouvelle image docker avec le tag ci-dessus et le lag
latest
.