Appliquer le développement basé sur les jonctions
Avec vos scripts d’entraînement et définitions de travail dans le contrôle de code source, le prochain défi est de les protéger. Deux scientifiques des données qui modifient le même fichier sur la main branche en même temps peuvent créer des conflits et, plus important encore, des ruptures accidentelles dans le code dont dépendent d’autres personnes. Le développement basé sur les jonctions offre à votre équipe un moyen structuré d’évoluer le modèle tout en conservant le code de production stable.
Maintenir la branche partagée stable
Dans le développement basé sur les jonctions, les contributeurs intègrent des modifications dans une branche partagée, généralement main. Les équipes maintiennent cette branche en bon état afin qu’elle reste un point de départ fiable pour de nouveaux développements.
Pour le projet Proseware, l’équipe doit soumettre les modifications à main via des requêtes de tirage (pull). Cette stratégie permet aux réviseurs et aux vérifications automatisées d’évaluer chaque modification avant l’intégration.
Branches de fonctionnalité à courte durée de vie
Lorsqu’un scientifique des données souhaite expérimenter une nouvelle fonctionnalité ( par exemple, ajouter une variable BMI au modèle de diabète) ils créent une branche de courte durée à partir de main. Le travail s’effectue là, à l’écart du code des autres. Lorsque l’expérience est prête à être examinée, le data scientist ouvre une pull request.
Les branches de courte durée réduisent le risque de trop s’éloigner de main, ce qui facilite la fusion et réduit l’ampleur des conflits.
Demandes de tirage, révisions et vérifications requises
Une pull request a deux fonctions : elle montre aux relecteurs exactement ce qui a changé et sert de point de déclenchement pour les vérifications automatisées. Les réviseurs peuvent poser des questions, demander des modifications ou approuver le travail. L’automatisation s’exécute en parallèle avec la révision.
Les règles ou ensembles de règles de protection des branches peuvent appliquer ce processus. Selon les paramètres du dépôt, une règle sur main peut :
- Restreindre les envois directs
- Exiger un nombre minimal d’approbations avant la fusion
- Exiger des vérifications d’état spécifiques à passer avant la fusion
GitHub Actions flux de travail peuvent produire les vérifications requises par une règle. Vous explorez ces vérifications dans l’unité suivante.
Remarque
Les règles et ensembles de règles de protection des branches sont des paramètres de référentiel GitHub, et non GitHub Actions. Le flux de travail définit ce qui s’exécute. La règle de protection détermine si une fusion est autorisée en fonction du résultat.
Tip
Considérez un changement de modèle qui a besoin de plusieurs semaines de travail. Comment faire pour le fractionner en modifications plus petites à fusionner dans main sans conserver de branche de longue durée ?