7.6 KiB
Comment ouvrir une Pull Request (PR)
Une pull request vous permet d'envoyer des changements depuis votre fork sur GitHub vers le dépôt principal de freeCodeCamp.org. Une fois que vous avez fait des modifications au code, ou des défis de codage, vous devriez suivre ces directives pour envoyer une PR.
Préparer un bon titre PR
Nous recommandons d'utiliser titre et messages conventionnels pour les commits et les pull requests. La convention a le format suivant :
<type>([téles(s) optionnelle(s)) : <description>Par exemple :
fix(learn): tests pour le défi de boucle...while
Lorsque vous ouvrez une Pull Request(PR), vous pouvez utiliser ce qui suit pour déterminer le type, la portée (optionnelle) et la description.
Type :
| Type de texte | Quand sélectionner |
|---|---|
| réparer | Modifié ou mis à jour/amélioré la fonctionnalité, les tests, le verbiage d'une leçon, etc. |
| don | Seulement si vous ajoutez une nouvelle fonctionnalité, des tests, etc. |
| corniche | Les changements qui ne sont pas liés au code, aux tests ou au verbiage d'une leçon. |
| docs | Modifie le répertoire /docs ou les lignes directrices de contribution, etc. |
Portée :
Vous pouvez sélectionner une portée dans cette liste d'étiquettes.
Description :
Gardez-le court (moins de 30 caractères) et simple, vous pouvez ajouter plus d'informations dans la zone de description des relations publiques et les commentaires.
Quelques exemples de bons titres de PRs seraient :
fix(a11y): contraste amélioré de la barre de recherchefeat: ajouter plus de tests aux défis html et cssfix(api,client): Empêcher les erreurs CORS lors de l'envoi du formulairedocs(i18n): Traduction en chinois de la configuration locale
Proposer une demande d'ajout
-
Une fois les modifications validées, vous serez invité à créer une pull request sur la page GitHub de votre fork.
-
Par défaut, toutes les demandes de fusion devraient être contre le dépôt principal de freeCodeCamp, la branche
master.Assurez-vous que votre fork de base est réglé sur freeCodeCamp/freeCodeCamp lors de l'ascension d'une Pull Request.
-
Soumettez la demande d'ajout de votre branche à la branche
masterde freeCodeCamp. -
Dans le corps de votre RP, incluez un résumé plus détaillé des modifications que vous avez apportées et pourquoi.
-
Un modèle de pull request vous sera présenté. Il s'agit d'une liste de contrôle que vous devriez avoir suivie avant d'ouvrir la demande de tirage au sort.
-
Remplissez les détails comme bon vous semble. Ces renseignements seront examinés et les examinateurs décideront si votre demande d'ajout est acceptée ou non.
-
Si la PR est destinée à traiter un problème GitHub existant, alors, à la fin de le corps de description de votre PR, utiliser le mot clé Ferme avec le numéro de la fiche à fermer automatiquement ce problème si la PR est acceptée et fusionnée.
Exemple:
Fermeture #123fermera le ticket 123
-
-
Indiquez si vous avez testé ou non sur une copie locale du site.
Ceci est très important lorsque vous effectuez des modifications qui ne sont pas seulement des modifications de contenu texte comme la documentation ou une description de défi. Des exemples de changements nécessitant des tests locaux incluent JavaScript, CSS, ou HTML qui pourraient modifier la fonctionnalité ou la disposition d'une page.
Commentaires sur les demandes de Pull
Félicitations ! 🎉 pour avoir fait une PR et merci beaucoup d'avoir pris le temps de contribuer.
Nos modérateurs vont maintenant jeter un coup d'œil et vous laisser des commentaires. S'il vous plaît, soyez patient avec les autres modérateurs et respectez leur temps. Toutes les demandes d'ajout sont examinées en temps voulu.
Si vous avez besoin d'aide, veuillez discuter dans le salon de discussion contributeurs, nous sommes ravis de vous aider.
[!TIP] Si vous voulez contribuer plus de pull requests, nous vous recommandons de lire les directives en faisant des modifications et en synchronisant pour éviter d'avoir à supprimer votre fork.
Conflit sur une pull request
Des conflits peuvent survenir parce que de nombreux contributeurs travaillent sur le référentiel, et les changements peuvent casser votre PR qui est en attente de révision et de fusion.
Le plus souvent vous n'aurez peut-être pas besoin d'une rebase, car nous écrasons tous les engagements, Cependant, si une rebase est demandée ici, c'est ce que vous devriez faire.
Pour les corrections de bugs et les fonctionnalités habituelles
Lorsque vous travaillez sur des bugs et des fonctionnalités réguliers sur notre branche de développement master, vous êtes en mesure de faire une simple rebase :
-
Rebaser votre copie locale:
git checkout <pr-branch> git pull --rebase amont master -
Résoudre les conflits et ajouter/modifier les commits
# Soit git add . git commit -m "chore: resolve conflicts" # Ou git add . Git commit --amende --no-edit -
Repousser vos modifications à la PR
git push --force origine <pr-branch>
Pour le programme et les fonctionnalités à venir
Lorsque vous travaillez sur les fonctionnalités de notre prochain programme next-* succursales, vous avez fait une sélection de cerises:
-
Assurez-vous que votre amont est synchronisé avec votre local:
git checkout master git fetch --all --prune git checkout next-python-projects git reset --hard upstream/next-python-projects -
Prendre une sauvegarde
a. Supprimez votre branche locale après avoir pris une sauvegarde (si vous l'avez toujours localement) :
git checkout <pr-branch-name> # exemple : # git checkout feat/add-numpy-video-question git checkout -b <backup-branch-name> # exemple : # git checkout -b backup-feat/add-numpy-video-question git branch -D <pr-branch-name>b. Ou juste une sauvegarde de votre branche pr (si vous ne l'avez pas localement) :
git checkout -b <backup-branch-name> origin/<pr-branch-name> # exemple : # git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question -
Commencez par un ardoise propre :
git checkout -b <pr-branch-name> next-python-projects git cherry-pick <commit-hash> -
Résoudre tous les conflits, et nettoyer, installer les tests d'exécution
npm run clean npm ci npm exécuter test:curriculum --superblock=<superblock-name> # exemple : # npm exécuter test:curriculum --superblock=python-for-everyone -
Si tout semble bien repoussé vers la PR
git push --force origine <pr-branch-name>

