Bien souvent, la création d’un logiciel ou d’une application nécessite l’écriture de plusieurs millions de lignes de code. Pour apporter des améliorations ou ajouter de nouvelles fonctionnalités à l’application, les DevOps créent plusieurs versions du même produit avec un nombre important de branches de publication.
Or, lorsqu’il faut corriger une erreur ou un bug, les développeurs doivent apporter des modifications sur un maximum de branches de publication. Il s’agit d’une tâche particulièrement complexe et minutieuse. Heureusement, il existe des solutions pour simplifier le travail des développeurs. Et notamment le cherry picking.
Alors de quoi s’agit-il ? Comment faire du cherry picking avec Azure DevOps ? Nous répondons à toutes vos questions.
Qu’est-ce que le cherry picking ?
Définition
Cherry picking signifie sélection de cerises en français. Mais alors quel est le rapport avec le développement web ?
Pour le comprendre, il convient de revenir aux bases de la gestion de configuration de logiciel. En effet, lorsqu’ils créent des applications, les DevOps conçoivent différentes versions en fonction des modifications et améliorations apportées. Une branche est alors créée, en tant qu’axe d’évolution d’une version.
Ici, l’image de l’arbre est assez parlante, puisqu’une branche a toujours pour origine une branche source, mais elle peut aussi être rattachée à d’autres sous-branches.
Le logiciel se retrouve alors avec une multitude de branches qui peuvent être modifiées ou corrigées en fonction des besoins de l’application. Lorsqu’il apporte des modifications, le DevOps doit créer une nouvelle branche de correctif, apporter les corrections requises et retranscrire ces modifications sur d’autres branches.
Le cherry picking facilite justement cette retranscription. En effet, grâce à cette méthode, le développeur sélectionne les corrections et les copie vers une branche cible.
Le processus du cherry picking
Pour vous aider à mieux comprendre, voici le processus pour la création de logiciels (avec corrections) via le cherry picking.
- Lorsque la première version du logiciel est prête, les DevOps créent une première branche de publication.
- Si les utilisateurs rapportent des bugs ou demandent des améliorations, les développeurs créent une nouvelle branche de correctif avec les modifications requises.
- Ils utilisent ensuite le cherry picking pour sélectionner les correctifs et les transposer dans la branche de publication.
Ce faisant, les bugs sont corrigés dans les différentes versions.
Bon à savoir : le « cherry-picking » se fait sur la branche principale afin d’éviter de déployer une nouvelle version avec le même bug.
Cherry picking, fusion, rebase ; quelles différences ?
Le cherry picking se distingue d’autres méthodes visant à corriger les bugs, telles que :
- La fusion : il s’agit de combiner plusieurs modifications pour créer une nouvelle version du logiciel.
- Le rebase : ici, le développeur intègre les modifications dans la branche cible, sans changer la branche source.
Par rapport à ces deux méthodes, l’avantage incontestable du cherry picking est la possibilité d’appliquer des changements spécifiques.
Comment faire du cherry picking ?
Le cherry picking avec Azure DevOps
Pour simplifier le cherry picking, Azure Devops dispose d’une fonctionnalité intégrée permettant de sélectionner les modifications (pull request) dans une nouvelle branche directement à partir d’un navigateur.
Par principe, cet outil permet d’appliquer les correctifs sur une seule branche.
Si vous devez les appliquer à plusieurs branches, il faudra réitérer l’opération pour toutes les branches. Heureusement, il est possible d’utiliser l’extension d’Azure DevOps pour le multi-cherry picking.
Vous souhaitez en savoir plus sur le fonctionnement du cherry picking avec Azure DevOps ? N’hésitez pas à suivre nos formations.
D’autres outils utiles pour le cherry picking
Pourquoi utiliser le cherry picking avec Azure ?
Afin de fournir un produit optimal à l’utilisateur final, le DevOps crée souvent plusieurs versions. Cela lui permet ainsi d’apporter des améliorations en continu sans perdre la structure de base. Mais pour que ces modifications soient retranscrites sur les versions, il est primordial d’utiliser le cherry picking avec Azure DevOps.
Cela permet aux développeurs de :
- Déployer une fonctionnalité spécifique d’une branche vers une autre ;
- Copier un travail bien fait sur une branche incorrecte vers une autre branche cible ;
- Simplifier le travail de collaboration entre les équipes pour la configuration de logiciel ;
- Apporter des corrections sur plusieurs branches.