Utilisation de Git pour travailler sur le site web de Debian
Travailler sur le dépôt Git
Entrons dans le vif du sujet — dans cette partie, vous apprendrez comment créer une copie locale du dépôt principal, comment garder votre dépôt local à jour et comment soumettre votre travail. Nous vous expliquerons aussi comment travailler sur les traductions.
Obtenir une copie locale
D'abord, installez Git. Ensuite, configurez Git et entrez votre nom et votre adresse courriel. Si vous êtes un nouvel utilisateur de Git, c'est sans doute une bonne idée de lire la documentation générale de Git en premier.
La prochaine étape est de cloner le dépôt (autrement dit, créer une copie locale du dépôt). Il y a deux manières de le faire :
- ouvrir un compte sur https://salsa.debian.org et autoriser un
accès SSH à git en envoyant une clé publique SSH dans votre compte salsa.
Voir les pages d'aide
de Salsa pour obtenir plus de détails. Vous pouvez ensuite cloner le
dépôt
webwml
avec la commande suivante :git clone [email protected]:webmaster-team/webwml.git
- autrement, vous pouvez cloner le dépôt avec le protocole HTTPS. Gardez à
l'esprit que cela créera le dépôt local, mais que vous ne serez pas capable
d'envoyer directement vos modifications de cette manière :
git clone https://salsa.debian.org/webmaster-team/webwml.git
Astuce : Cloner la totalité du dépôt webwml
demandera le téléchargement d'environ 1,3 Go de données, ce qui pourrait être
trop si vous avez une liaison Internet lente ou instable. Donc, il est possible
de définir une profondeur minimale pour un téléchargement initial plus court :
git clone [email protected]:webmaster-team/webwml.git --depth 1
Une fois que vous avez obtenu un dépôt (superficiel) utilisable, vous pouvez approfondir la copie locale et, finalement, la convertir en un dépôt local complet :
git fetch --deepen=1000 # approfondit le dépôt de 1000 commits supplémentaires git fetch --unshallow # obtient tous les commits manquants, convertit le dépôt en dépôt completVous pouvez procéder à la récupération de seulement un sous-ensemble des pages ainsi :
git clone --no-checkout [email protected]:webmaster-team/webwml.git
cd webwml
git config core.sparseCheckout true
- Créez le fichier
.git/info/sparse-checkout
dans le répertoirewebwml
pour définir le contenu que vous voulez récupérer. Par exemple, si vous ne voulez que les fichiers de base, l'anglais et les traductions en français et en espagnol, le ficher devra ressembler à cela :/* !/[a-z]*/ /english/ /french/ /spanish/
- Enfin, vous pouvez récupérer le dépôt :
git checkout --
Soumettre des modifications locales
Garder à jour le dépôt local
De temps en temps (et sans aucun doute avant de débuter un travail d'édition !) il faudra lancer la commande
git pull
pour récupérer tous les fichiers du dépôt qui ont changé.
Il est fortement recommandé de garder propre son répertoire local de travail de
Git avant d'exécuter la commande git pull
et de poursuivre le
travail d'édition. Si vous avez des modifications qui n'ont pas fait l'objet de
commits ou des commits locaux qui ne sont pas dans le dépôt distant dans la
branche courante, exécuter git pull
créera immédiatement des
demandes de fusion ou même échouera dû à des conflits. Vous devriez envisager
de garder votre travail inachevé dans une autre branche ou d'utiliser des
commandes telles que git stash
.
Attention : Git est un système de contrôle de versions distribué (non centralisé). Cela signifie que quand vous préparez l'envoi de vos modifications, elles seront seulement stockées dans votre dépôt local. Pour les partager avec d'autres, vous devrez aussi envoyer vos modifications vers le dépôt central de Salsa.
Exemple de modifications de fichiers anglais
Regardons un exemple pratique et une session de travail typique. Considérons
que vous avez obtenu une copie locale du
dépôt avec la commande git clone
. Les étapes suivantes sont :
git pull
- Maintenant vous pouvez commencer à éditer et modifier les fichiers.
- Quand c'est fait, préparez l'envoi de vos modifications dans votre dépôt
local avec les commandes :
git add chemin/vers/fichier(s) git commit -m "Votre message d'envoi"
- Si vous avez un accès en écriture illimité au
dépôt
webwml
distant, vous pouvez maintenant envoyer directement vos modifications dans le dépôt de Salsa :git push
- Si vous n'avez pas un accès en écriture direct au dépôt
webwml
, soumettez vos modifications en utilisant la fonction merge request ou sollicitez l'aide d'autres développeurs.
Fermer des bogues de Debian dans les envois de Git
En incluant Closes: #
nnnnnn dans votre entrée de
journal d'envoi, le bogue nº
nnnnnn sera
fermé automatiquement quand vous enverrez vos modifications. La forme exacte
est la même que celle décrite dans
la Charte Debian.
Connexion en utilisant HTTP/HTTPS
Beaucoup de sites web de Debian prennent en charge SSL/TLS, veuillez donc utiliser des liens en HTTPS lorsque c'est possible et pertinent. Néanmoins, certains sites web de Debian, DebConf, SPI, etc., ne prennent pas en charge HTTPS ou n'ont leur certificat SSL signé que par SPI, (et pas par une autorité SSL considérée de confiance par tous les navigateurs). Veuillez éviter les liens en HTTPS vers ces sites web pour que les utilisateurs en dehors de Debian ne reçoivent pas de messages d'erreur.
Le dépôt Git rejettera les envois contenant des liens en HTTP pur vers les sites web Debian qui prennent en charge HTTPS, ou contenant des liens en HTTPS vers les sites web Debian, DebConf et SPI qui sont connus pour ne pas prendre en charge HTTPS ou avoir un certificat signé uniquement par SPI.
Travailler sur des traductions
Les traductions doivent être toujours tenues à jour avec les fichiers anglais
correspondants. L'en-tête translation-check
des fichiers traduits
est utilisé pour suivre la version des fichiers anglais sur laquelle elles
reposent. Si vous modifiez des fichiers traduits, il est nécessaire de mettre à
jour l'en-tête translation-check
pour qu'il corresponde à l'empreinte de
la modification correspondante du fichier anglais. Vous pouvez trouver
cette empreinte avec la commande suivante :
git log chemin/vers/fichier/en_anglais/
Si vous faites une nouvelle traduction de fichier, veuillez utiliser le
script copypage.pl
et il créera un modèle pour votre langue, y
compris l'en-tête de traduction correct.
Modifications de traductions avec smart_change.pl
smart_change.pl
est un script conçu pour faciliter la mise à
jour à la fois des fichiers originaux et de leurs traductions. Il y a deux
façons de l'utiliser, selon les modifications que vous faites.
Voici comment utiliser smart_change.pl
et comment mettre à jour
seulement les en-têtes translation-check
quand vous travaillez
manuellement sur les fichiers :
- modifiez le ou les fichiers originaux et envoyez les modifications ;
- mettez à jour les traductions ;
- exécutez
smart_change.pl -c COMMIT_HASH
(utiliser l'empreinte des modifications dans les fichiers originaux). Le script récupérera les modifications et mettra à jour les en-têtes dans les fichiers de traduction ; - vérifiez les modifications (par exemple avec
git diff
) ; - envoyez les modifications de traduction.
Autrement, vous pouvez travailler avec une expression rationnelle pour faire plusieurs modifications dans plusieurs fichiers en une seule passe :
- exécutez
smart_change.pl -s s/toto/titi/ fichier_origine1 fichier_origine2 ...
; - vérifiez les modifications (par exemple avec « git diff ») ;
- envoyez les fichiers originaux ;
- exécutez
smart_change.pl fichier_origine1 fichier_origine2
(c'est-à-dire sans l'expression rationnelle cette fois-ci) ; cela mettra à jour uniquement les en-têtes dans les fichiers traduits ; - finalement, envoyez les modifications de traduction.
Il faut reconnaître que c'est plus compliqué qu'avec le premier exemple (deux envois sont nécessaires), mais inévitable vue la manière dont fonctionnent les empreintes d'envoi de Git.
Accès en écriture au dépôt Git
Le code source du site web de Debian est géré avec Git et situé à l'adresse https://salsa.debian.org/webmaster-team/webwml. Par défaut, les invités (guest) ne sont pas autorisés à envoyer de « commits » sur le dépôt du code source. Si vous souhaitez contribuer au site web de Debian, vous aurez besoin de certaines permissions pour obtenir un accès en écriture au dépôt.
Accès en écriture illimité
Si vous avez besoin d'un accès en écriture illimité au dépôt (par exemple, vous êtes sur le point de devenir un contributeur régulier), veuillez en faire la demande à l'aide de l'interface web https://salsa.debian.org/webmaster-team/webwml après vous être connecté à la plateforme Salsa de Debian.
Si vous débutez dans le développement du site web de Debian et si vous n'avez pas d'expérience antérieure, veuillez aussi envoyer un courriel à [email protected] en vous présentant avant de demander l'accès en écriture illimité. Pourriez-vous avoir la gentillesse d'en dire plus sur vous comme la partie du site web à laquelle vous voudriez contribuer ou quelles langues vous parlez, et aussi s'il y a un autre membre de l'équipe Debian qui pourrait se porter garant de vous.
Demandes de fusion
Il n'est pas indispensable d'obtenir un accès en écriture illimité au dépôt — vous pouvez toujours soumettre une demande de fusion (« merge request ») et laisser d'autres développeurs revoir et accepter votre travail. Veuillez soumettre les « merge requests » en utilisant la procédure standard fournie par la plateforme GitLab de Salsa à travers son interface web et consulter les deux documents suivants :
Veuillez noter que les demandes de fusion ne sont pas suivies par tous les développeurs du site web. Il se pourrait donc que cela prenne quelque temps avant que vous receviez un commentaire. Si vous n'êtes pas sûr que votre contribution sera acceptée, envoyez un message à la liste de diffusion debian-www et demandez une relecture.
Recevoir des notifications
Si vous travaillez sur le site web de Debian, vous voulez sans doute savoir ce
qui se passe dans le dépôt webwml
. Il y a deux manières de se
tenir au courant : les notifications de modification et les notifications de
requête de fusion.
Recevoir des notifications de modification
Nous avons configuré le projet webwml dans Salsa, de telle manière que les modifications apparaissent sur le canal IRC #debian-www.
Si vous voulez recevoir des notifications par courriel lorsqu'il y a des
modifications dans le dépôt webwml
, veuillez vous abonner au
pseudo-paquet www.debian.org
au moyen de
tracker.debian.org et activez-y
le mot clé vcs
, en suivant ces étapes (une seule fois) :
- ouvrez un navigateur web et allez à l'adresse https://tracker.debian.org/pkg/www.debian.org ;
- abonnez-vous au pseudo-paquet
www.debian.org
(vous pouvez vous authentifier par SSO ou enregistrer une adresse courriel et un mot de passe, si vous n'utilisez pas déjà tracker.debian.org avec un autre objectif) ; - allez à la page https://tracker.debian.org/accounts/subscriptions,
puis à
modify keywords
, cochezvcs
(si ce n'est pas déjà fait) et sauvegardez ; - à partir de ce moment, vous recevrez des courriels lorsque quelqu'un
enverra une modification dans le dépôt
webwml
.
Recevoir des notifications de requête de fusion
Si vous voulez recevoir des notifications par courriel lorsqu'il y a de
nouvelles requêtes de fusion soumises sur le dépôt webwml
dans
Salsa, vous pouvez configurer les réglages de notification du dépôt webwml sur
l'interface web, en suivant ces étapes :
- connectez-vous à votre compte Salsa et allez sur la page du projet ;
- cliquez sur l'icône cloche en haut de la page d'accueil du projet ;
- choisissez le niveau de notification que vous préférez.