fbpx

Le Versioning : l’indispensable pour tout développeur

Le versioning (versionnage en français) est une méthode de gestion des versions d’un même produit (logiciel, base de données…).

Il consiste à travailler directement sur le code source du projet, en gardant toutes les versions précédentes. Les outils du versioning aident les développeurs à travailler parallèlement sur différentes parties du projet et à revenir facilement aux étapes précédentes de leur travail en cas de besoin. L’utilisation d’un logiciel de versioning est devenue quasi-indispensable pour tout développeur, même s’il travaille seul.

  •  Idées multiples, projet unique

Le versioning permet, grâce à un système de clone (copie du projet sur un réseau local ou sur le cloud), d’avancer simultanément sur différentes tâches. Il permet également d’archiver un ensemble de fichiers en conservant la chronologie de toutes les modifications qui ont été effectuées dessus. De cette façon, il n’y a aucun risque d’altérer ou de perdre les données déjà enregistrées sur le dépôt commun (ou repository).

Les développeurs peuvent avoir accès à tout ou partie du projet commun, en fonction de la sensibilité des données qui y sont traitées.

Certains logiciels anticipent même les conflits : ils avertissent l’utilisateur qu’un autre développeur travaille en même temps que lui sur la même ligne de code et évitent ainsi que les deux travaux se parasitent.

Le versioning est utilisé tout au long du cycle de vie d’un logiciel, le long des grandes étapes que sont la maquette, le prototype, la version alpha, la version bêta, la release candidate et la version finale.

  • Le versioning sémantique, une méthode très utilisée pour l’attribution des numéros de version

Les modifications apportées au logiciel sont communément rassemblées et désignées par des numéros de version sous la forme “x.y.z”. On formule ainsi des degrés d’importance de ces changements de gauche à droite, du plus significatif au moindre correctif :

X – Majeur : changements non rétro-compatibles, suppression d’une fonctionnalité obsolète, modification d’interfaces, renommages…

Y – Mineur : changements rétro-compatibles, introduction de nouvelles fonctionnalités, fonctionnalité marquée comme obsolète…

Z – Correctif : corrections d’anomalies rétro-compatibles, modification/correction d’un comportement interne, failles de sécurité…

 

Illustration 1 : Méthode de nomenclature du versioning sémantique (SemVer) (c)

 

D’autres nomenclatures sont utilisées pour la gestion de version. Certaines entreprises optent pour une nomenclature qui cible le grand public, séparant les aspects marketing et technique.

La sortie d’une nouvelle version est dans ce cas souvent utilisée comme un argument commercial. Cependant, la mise sur le marché d’une nouvelle version d’un logiciel n’est pas toujours synonyme de changements majeurs sur le logiciel.

Par exemple, le logiciel Windows 8 de Microsoft correspondrait en version sémantique à la version 6.2.9200.

Certains éditeurs de logiciel entrent dans une course à la mise à jour afin de répondre aux exigences du consommateur.

  • Microsoft fait son entrée sur le marché des logiciels de versioning

Git, logiciel développé par Linus Thorvald, est l’un des principaux leaders du marché. Créé en 2008 pour le versioning des systèmes UNIX, il est très apprécié par les développeurs qui travaillent sur des logiciels open-source.

De nombreux logiciels se basent aujourd’hui sur le système de gestion des versions Git.

GitHub et l’un des plus utilisés à l’heure actuelle. Il offre à tous les utilisateurs une base de données (de code) gratuite et de taille illimitée pour y héberger leur code. Par défaut, tout nouveau projet est en open-source, libre d’accès. Il est nécessaire de souscrire à un abonnement mensuel pour créer des référentiels de données privés.

GitHub, vient récemment d’être acheté par Microsoft, en septembre 2018 pour 7,5 milliards de dollars. Il est trop tôt pour se prononcer sur les effets de ce rachat dans le monde du développement, mais l’on sait déjà qu’il ne manque pas de faire couler beaucoup d’encre.

D’autres logiciels de versioning concurrents existent tels que GitLab, Bitbucket ou encore Source Forge.

Il conviendrait également de citer, Apache Subversion (SVN) sorti en 2004 est apprécié par les informaticiens travaillant sur des projets nécessitant plus de confidentialité. En effet, il permet de travailler sur une partie précise d’un projet en limitant les accès à l’intégralité du code source.

 

Si vous souhaitez en savoir plus sur les caractéristiques des logiciels de versioning, un comparatif des logiciels GitLab, Bitbucket ou Source Forge à récemment été écrit par l’informaticien.com.

D’autres articles qui pourraient vous intéresser