9 points par GN⁺ 16 일 전 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Nouvelle fonctionnalité de GitHub permettant de diviser de gros changements de code en petites PR empilées et faciles à relire, puis de les gérer de manière séquentielle
  • Chaque PR est relue indépendamment, et l’ensemble de la pile peut être fusionné en un clic
  • Via l’interface GitHub et la CLI gh stack, prise en charge de la création, navigation, rebase et fusion des piles, avec une stack map pour visualiser la hiérarchie
  • Grâce à l’intégration d’agents de codage IA, il est possible de découper automatiquement un gros diff en unités empilées ou de développer directement selon une approche basée sur les piles
  • L’objectif est de réduire la complexité et le risque de conflits liés aux grosses PR, tout en améliorant l’efficacité de la revue et la vitesse de développement des équipes

Fonctionnalités principales

  • Gestion des PR empilées

    • Plusieurs PR peuvent être organisées sous forme de pile ordonnée (stack), chaque PR étant basée sur la branche de la PR située juste en dessous
    • Cela forme au final une structure en chaîne qui aboutit à la branche principale
    • GitHub reconnaît l’ensemble de la pile et affiche une stack map dans l’interface, ce qui permet aux reviewers de naviguer facilement entre les niveaux
    • Les règles de protection de branche s’appliquent à la branche cible finale, et les tests CI s’exécutent sur toutes les PR de la pile
  • Gestion simplifiée des piles

    • Depuis l’interface GitHub, il est possible de naviguer entre les PR d’une pile, de vérifier l’état de chaque niveau et d’exécuter un cascading rebase sur l’ensemble de la pile
    • Toute la pile peut être fusionnée en un clic, ou seulement une partie
    • Après la fusion, les PR restantes sont automatiquement rebasées, de sorte que la PR non fusionnée la plus basse soit réajustée pour cibler la branche par défaut
  • Prise en charge CLI avancée

    • Avec la CLI gh stack, il est possible d’effectuer dans le terminal la création de piles, le rebase, le push des branches, la création de PR et la navigation entre les niveaux
    • Exemples de commandes CLI
      • gh extension install github/gh-stack : installer l’extension
      • gh stack alias : configurer une commande abrégée
      • gs init <branch> : créer la première branche
      • gs add <branch> : ajouter un nouveau niveau
      • gs push : pousser toutes les branches
      • gs submit : créer les PR de toute la pile
  • Intégration des agents IA

    • La commande npx skills add github/gh-stack permet à un agent de codage IA d’être configuré pour effectuer des opérations sur les piles
    • Il peut automatiquement découper un gros diff en unités empilées, ou mener un développement basé sur des piles dès le départ

Pourquoi les PR empilées sont nécessaires

  • Les grosses PR entraînent une hausse de la difficulté de revue, des retards de fusion et un risque accru de conflits
    • Les reviewers perdent le contexte, la qualité des retours baisse et le rythme de toute l’équipe ralentit
  • Les Stacked PRs répondent à ce problème en fractionnant les changements en une chaîne de PR petites et ciblées
    • Chaque PR peut être relue indépendamment, tandis que l’ensemble des changements s’accumule de façon séquentielle

Pour commencer

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.