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


16.8 Accès en commit

Pour les contributeurs réguliers, il est pratique d’avoir accès en écriture au dépôt. Lorsque vous l’estimez nécessaire, pensez à candidater à l’accès en commit en suivant les étapes suivantes :

  1. Trouvez trois commiteurs qui soutiendront votre candidature. Vous pouvez trouver la liste des commiteurs sur https://savannah.gnu.org/project/memberlist.php?group=guix. Chacun d’entre eux devra envoyer une déclaration à guix-maintainers@gnu.org (un alias privé pour le collectif des mainteneurs), signé de leur clef OpenPGP.

    Les commiteurs devront avoir eu des interactions avec vous en tant que contributeur et pouvoir juger si vous êtes suffisament familier avec les pratiques du projet. Ce n’est pas un jugement sur la valeur de votre travail, donc vous devriez plutôt interpréter un refus comme un « essayons un peu plus tard ».

  2. Envoyez un message à guix-maintainers@gnu.org déclarant votre intention, listant les trois commiteurs qui supportent votre candidature, signez-le avec la clef OpenPGP que vous utiliserez pour signer vos commits et donnez son empreinte (voir plus bas). Voir https://emailselfdefense.fsf.org/fr/, pour une introduction à la cryptopgraphie à clef publique avec GnuPG.

    Configurer GnuPG de manière à ce qu’il n’utilise jamais l’algorithme de hachage SHA1 pour les signatures numériques, dont on sait qu’il est dangereux depuis 2019, par exemple en ajoutant la ligne suivante à ~/.gnupg/gpg.conf (voir GPG Esoteric Options dans The GNU Privacy Guard Manual) :

    digest-algo sha512
    
  3. Les mainteneurs ont le dernier mot sur la décision de vous donner accès et suivent généralement l’avis de vos référents.
  4. Si vous obtenez l’accès, envoyez un message à guix-devel@gnu.org pour le faire savoir, en signant de nouveau avec le clef OpenPGP que vous utiliserez pour signer les commits (faites-le avant votre premier commit). De cette manière, tout le monde peut s’en rendre compte et s’assurer que c’est bien vous qui contrôlez cette clef OpenPGP.

    Important : Avant d’envoyer pour la première fois, les mainteneurs doivent :

    1. ajoutez votre clé OpenPGP à la branche keyring ;
    2. ajoutez votre empreinte OpenPGP au fichier .guix-authorizations de la (des) branche(s) sur laquelle (lesquelles) vous vous engagez.
  5. Assurez-vous de lire le reste de cette section et… profitez !

Remarque : Les mainteneurs sont ravis de donnéer l’accès en commit aux personnes qui ont contribués depuis un certain temps et ont un bon bilan — ne soyez pas timide et ne sous-estimez pas votre travail !

Cependant, remarquez que le projet travail sur un système de revu de correctifs et de fusion plus automatisé, qui, en conséquence, pourra nous faire réduire le nombre de personne ayant accès en commit au dépôt principal. Restez à l’écoute !

Si vous avez accès en commit, assurez-vous de respecter la politique ci-dessous (les discussions à propos de cette politique peuvent avoir lieu sur guix-devel@gnu.org).

Les correctifs non triviaux doivent toujours être postés sur guix-patches@gnu.org (les correctifs triviaux consistent en des correctifs de coquilles, etc). Cette liste de diffusion rempli la base de données de correctifs (voir Suivi des bogues et des correctifs).

Pour les correctifs qui ne font qu’ajouter un nouveau paquet, et un paquet simple, commiter directement est accepté si vous êtes en confiance (ce qui signifie que vous avez réussi à le construire dans un environnement chroot et avez fait un audit suffisant des copyrights et de la licence). Pareil pour les mises à jour de paquets, sauf pour les mises à jour qui occasionnent beaucoup de reconstruction (par exemple mettre à jour GnuTLS ou GLib). Nous avons une liste de diffusion pour les notifications de commit (guix-commits@gnu.org), pour que les gens puissent s’en rendre compte. Avant de pousser vos changements, assurez-vous d’avoir lancé git pull --rebase.

Tous les commits poussés sur le dépôt central sur Savannah doivent être signés avec une clef OpenPGP et la clef publique doit être chargée sur votre compte utilisateur dans Savannah et les serveurs de clef publique, comme keys.opengpg.org. Pour configurer Git pour signer automatiquement vos commits, lancez :

git config commit.gpgsign true
git config user.signingkey CABBA6EA1DC0FF33

Vous pouvez éviter de pousser accidentellement des commits non signés vers Savannah et utilisant le crochet Git de pré-envoi situé dans etc/git/pre-push :

cp etc/git/pre-push .git/hooks/pre-push

Lorsque vous poussez un commit pour le compte de quelqu’un d’autre, ajoutez une ligne Signed-off-by à la fin du message de commit — p. ex. avec git am --signoff. Cela amélior le suivi que qui fait quoi.

Quand vous ajoutez de nouvelles entrées au canal (voir Writing Channel News), assurez-vous qu’elles sont bien formées en exécutant la commande suivante juste avant d’envoyer :

make check-channel-news

Pour tout autre chose, envoyez un correctif à guix-patches@gnu.org et laissez un peu de temps pour la revue, sans rien commiter (voir Envoyer des correctifs). Si vous ne recevez pas de réponse dans les deux semaines et que vous avez confiance, vous pouvez commiter.

La dernière partie est sujète à ajustement, pour permettre à certains de commiter directement des changements non controversés sur des parties qui leurs sont familières.

Pour réduire la probabilité de faire une erreur, celles et ceux qui peuvent commiter seront retiré·e·s du projet Guix sur Savannah et leur clé supprimée de .guix-authorizations après 12 mois d’inactivité ; ils et elles pourront retrouver leur accès en envoyant un courriel aux mainteneurs, sans avoir à passer par le processus de cooptation.

Une dernière chose : le projet continue à avancer non seulement parce que les commiteurs poussent leurs propres changements, mais aussi parce qu’ils offrent de leur temps pour revoir et pousser les changements des autres personnes. En tant que commiteur, vous pouvez utiliser votre expertise et vos droits en commit pour aider d’autres contributeaurs aussi !


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