Suivant: , Précédent: , Monter: Envoyer des correctifs   [Table des matières][Index]


22.6.2 Envoyer une série de correctifs

Correctifs isolés

La commande git send-email est la meilleure manière d’envoyer aussi bien des correctifs isolés que des séries de correctifs (voir Plusieurs correctifs) à la liste de diffusion de Guix. Envoyer des correctifs en pièce-jointe peut les rendre plus difficile à revoir dans certains clients de courriel et git diff ne stocke pas les métadonnées des commits.

Remarque : La commande git send-email est fournie par la sortie send-email du paquet git, c.-à-d. git:send-email.

La commande suivante créera un courriel de correctif à partir du dernier commit, l’ouvrira dans EDITOR ou VISUAL pour que vous puissiez le modifier et l’enverra à la liste de diffusion de Guix pour qu’il soit revu et fusionné :

$ git send-email -1 -a --base=auto --to=guix-patches@gnu.org

Astuce : Pour ajouter un préfixe à l’objet de votre correctif, vous pouvez utiliser l’option --subject-prefix. Le projet Guix utilise cela pour spécifier si un correctif est prévu pour une autre branche ou un autre dépôt que la branche master de https://git.savannah.gnu.org/cgit/guix.git.

git send-email -1 -a --base=auto \
    --subject-prefix='PATCH core-updates' \
    --to=guix-patches@gnu.org

Le courriel de correctif contient une ligne de séparation à trois tirets après le message de commit. Vous pouvez « annoter » le correctif avec un texte explicatif en l’ajoutant sous cette ligne. Si vous ne voulez pas annoter le courriel, vous pouvez enlever le drapeau -a (qui est le raccourci pour --annotate).

Le drapeau --base=auto ajoute automatiquement une note à la fin du correctif indiquant le commit sur lequel il est basé, ce qui facilite le rebasage et la fusion de votre correctif pour les mainteneurs.

Si vous voulez envoyer un correctif modifié, ne le renvoyez pas de cette manière et n’envoyez pas un correctif de « correction » à appliquer sur l’ancien ; à la place, utilisez git commit -a ou git rebase pour modifier le commit, et utilisez l’adresse NUMÉRO_PROBLÈME@debbugs.gnu.org et le drapeau -v avec git send-email.

$ git commit -a
$ git send-email -1 -a --base=auto -vREVISION \
      --to=ISSUE_NUMBER@debbugs.gnu.org

Remarque : Due to an apparent bug in git send-email, -v REVISION (with the space) will not work; you must use -vREVISION.

Vous pouvez trouver NUMÉRO_PROBLÈME soit en cherchant sur l’interface mumi sur issues.guix.gnu.org le nom de votre correctif ou en lisant l’accusé de réception envoyé automatiquement par Debbugs en réponse aux bogues et correctifs entrants, qui contient le numéro de suivi.

Notifier les équipes

Le script etc/teams.scm peut être utilisé pour notifier toutes les personnes qui sont intéressées par votre correctif (voir Équipes). Utilisez etc/teams.scm list-teams pour afficher toutes les équipes, pour décider quelles équipes votre correctif intéressera et utilisez etc/teams.scm cc pour afficher les drapeaux git send-email qui notifieront les membres des équipes appropriées ou utilisez etc/teams.scm cc-members pour automatiquement détecter les équipes appropriées.

Plusieurs correctifs

Alors que git send-email seul suffira pour un unique correctif, un problème malheureux de Debbugs fait que vous devrez faire plus attention pour envoyer plusieurs correctifs : si vous les envoyez tous à l’adresse guix-patches@gnu.org, un nouveau ticket sera créé pour chaque correctif !

Lorsque vous envoyez une série de correctifs, il vaut mieux envoyer d’abord un « résumé » Git pour donner un aperçu de votre série de correctifs aux relecteur·ices. Vous pouvez créer un répertoire nommé sortant contenant à la fois votre série de correctifs et un résumé appelé 0000-cover-letter.patch avec git format-patch.

$ git format-patch -NOMBRE_COMMITS -o sortant \
      --cover-letter --base=auto

Vous pouvez maintenant envoyer seulement le résumé à l’adresse guix-patches@gnu.org ce qui créera un ticket auquel vous pourrez envoyer le reste des correctifs.

$ git send-email outgoing/0000-cover-letter.patch -a \
      --to=guix-patches@gnu.org \
      $(etc/teams.scm cc-members ...)
$ rm sortant/0000-cover-letter.patch # on ne veut pas le renvoyer !

Assurez-vous de modifier le courriel pour ajouter une ligne d’objet appropriée et un petit texte avant de l’envoyer. Remarquez le journal court et les statistiques de changements générés automatiquement sous votre texte.

Une fois que le logiciel de Debbugs a répondu à votre courriel de résumé, vous pouvez envoyer les correctifs à l’adresse de suivi nouvellement créée.

$ git send-email sortant/*.patch \
      --to=NUMÉRO_PROBLÈME@debbugs.gnu.org \
      $(etc/teams.scm cc-members ...)
$ rm -rf sortant # on n'en a plus besoin

Heureusement, cette danse avec git format-patch n’est pas nécessaire pour envoyer une série modifiée car un ticket existe déjà pour la suite de correctifs.

$ git send-email -NOMBRE_COMMITS \
      -vRÉVISION --base=auto \
      --to NUMÉRO_PROBLÈME@debbugs.gnu.org

Si besoin, vous pouvez utiliser --cover-letter -a pour envoyer un autre résumé, p. ex. pour expliquer ce qui a changé par rapport à l’ancienne révision et que ces changements sont nécessaires.


Suivant: , Précédent: , Monter: Envoyer des correctifs   [Table des matières][Index]