# Versions de logiciels # Episode 1 : les dépendances obsolètes --- ## Qu'est-ce qu'une version --- ## Semver - [Gestion sémantique de version](https://semver.org/lang/zh-CN/) : un standard : - [maven](http://maven.apache.org/pom.html#dependency-version-requirement-specification) - github --- ## Semver : principes - n° version = `MAJEUR.MINEUR.CORRECTION-préversion` : - MAJEUR : entier incrémenté quand modif **non** rétrocompatible - MINEUR : entier incrémenté quand modif rétrocompatible - CORRECTION : entier incrémenté quand correction bogue - préversion : chaîne alphanumérique (info sur la version) --- ## Semver : principes - Ordre lexicographique entre les versions - Quand on incrémente `MAJEUR`, raz `MINEUR` et `CORRECTION` ... - Définir une API publique précise - Ne jamais modifier une version publiée - Modifications non rétro-compatibles (suppression...) : 1. Publier une version mineure avec `@Deprecated` 2. Publier la version majeure avec la modif --- ## Versions des dépendances dans **Maven** : bonnes pratiques - Les n° de versions sont des properties - Toutes les properties sont centralisées dans le pom parent du projet - **Supprimer les dépendances inutiles** --- ## Spring boot dependencies Hériter de : ``` <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.6.RELEASE</version> ``` --- ## La nécessité des montés de version --- ## La galère des montés de version : ~~dependaboat~~ -> dependabot - Qu'est-ce que c'est : - Automate de vérification des dépendances obsolètes - compatible maven, yarn, npm... - Signale les vulnérabilités ? - Possibilité d'automatiser la mise à jour des pom - [Page DAAP](http://architecture-applicative.gitlab-pages.insee.fr/documentation/services_ingenierie/developpement/dependabot/) - [Documentation](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/keeping-your-dependencies-updated-automatically) --- ## Comment le mettre en oeuvre sur gitlab.insee.fr - De manière autonome : - Cloner [le projet du DOT](https://gitlab.insee.fr/outils-transverses/services-dev/dependabot) - Paramétrer un pipeline sur ce projet pour vérifier le projet cible : - Chemin du projet cible - Token pour merge requests - Token pour scanner repo github - Merge request - Mode de notification - planification --- ## Lire les résultats - Fichier - Merge request ## Avertissement --- ## Aller plus loin - Sécurité - Dépendances en fin de vie --- ## Après Gérer la version de votre application : - afficher la version - incrémenter automatiquement la version
{"metaMigratedAt":"2023-06-15T16:14:27.169Z","metaMigratedFrom":"Content","title":"Versions de logiciels","breaks":true,"contributors":"[{\"id\":\"97bffc1a-181f-4ccb-956c-fb0fdc5fa2b9\",\"add\":3548,\"del\":868}]"}
    145 views