Comment collaborer sur GitHub

Si vous ne le savez pas déjà, GitHub est un moyen incroyablement efficace de collaborer à des projets de développement. Fournir un lieu pour toute personne disposant d’une connexion Internet et disposer d’un moyen de partager gratuitement le code avec le monde entier (sans oublier les outils de support robustes pour l’inspection à la source et la consultation aisée des historiques de validation). GitHub a été adopté par de nombreux grands projets open source comme principal lieu de collaboration et de contribution..

Mais comment participez-vous et contribuez-vous à un projet? Bien sûr, vous savez comment utiliser Git pour suivre les modifications apportées aux fichiers et les transférer sur un serveur. Cependant, la participation à de grands projets open source présente des avantages majeurs, et GitHub est sans doute le meilleur endroit pour commencer. Aujourd'hui, nous allons discuter de quelques règles de la route pour collaborer sur des projets open source et vous donner les connaissances et l'intuition dont vous aurez besoin pour vous impliquer..


Commencer petit

N'ayez pas peur de commencer petit

L'une des choses les plus importantes à comprendre lorsque vous démarrez une collaboration sur des projets open-source est de reconnaître votre rôle. Souvent, en tant que développeur, vous pouvez faire beaucoup de choses sans être un programmeur extrêmement intelligent. En fait, la peur d’être un programmeur inadéquat est souvent la raison pour laquelle les gens ne s’impliquent pas dans des projets open source. N'ayez pas peur de commencer petit: au lieu d'essayer de corriger un bogue majeur ou de réécrire un module entier, essayez de trouver des problèmes tels que des problèmes de documentation, des tests et des correctifs inter-appareils, voire des erreurs de syntaxe simples Utilisateur GitHub mzgol).

Ce type de tâche est un bon moyen de mettre les pieds dans la porte en tant que contributeur au projet sans chercher à en prendre plus que ce que vous pouvez gérer. Inscrivez-vous à CodeTriage pour recevoir les problèmes GitHub automatisés dans votre boîte de réception. Si vous avez confiance dans votre boîte de réception, travaillez dessus et envoyez une demande de tirage. (Nous verrons comment faire un peu plus loin dans le post.)


Apprenez l'écosystème du projet

Avec tout effort de collaboration, un ensemble de conventions a probablement été adopté. Cela peut inclure un ensemble de vocabulaire, un moyen de contribuer et de formater des messages de validation, un certain rythme de collaboration auquel les contributeurs ont donné leur accord, ou même des normes syntaxiques établies. Avant d'essayer de vous impliquer dans un projet, lire tous les documents liés à ces choses. Par exemple, GitHub a standardisé un CONTRIBUTING.md fichier (consultez les instructions pour vous impliquer avec jQuery pour un exemple complet). Ces guides sont mis à jour par les personnes qui gèrent également la base de code et les branche maîtresse.

Une autre façon de comprendre l’écosystème d’un projet consiste simplement à examiner la base de code existante et la journal git. En parcourant les messages de validation et en parcourant le style de code, vous en apprendrez beaucoup sur un projet. Parcourez la documentation du projet et adoptez le vocabulaire utilisé pour que vos contributions conservent leur continuité et présentent une voix similaire..

Une fois que vous faites partie de l'écosystème culturel du projet, comment allez-vous réellement contribuer code?


Le flux de travail de demande de retrait pour la contribution de code

Le flux de travail pour contribuer au code peut sembler décourageant au premier abord.

Le flux de travail pour contribuer au code peut sembler décourageant au premier abord. La chose la plus importante à retenir est de suivre les schémas et les normes décrits dans le projet sur lequel vous travaillez (comme nous en avons déjà discuté). Le flux de travail général supporté par GitHub est assez simple.

  1. Ajoutez le repo cible à votre propre compte.
  2. Cloner le repo sur votre machine locale.
  3. Découvrez une nouvelle "branche thématique" et apportez des modifications.
  4. Poussez votre branche de sujet à votre fourchette.
  5. Utilisez le visualiseur de diff sur GitHub pour créer une demande d'extraction via une discussion.
  6. Apportez les modifications demandées.
  7. La demande d'extraction est ensuite fusionnée (généralement dans la branche principale) et la branche de sujet est supprimée du rapport amont (cible)..

Au sein de ce flux de travail, vous pouvez voir de nombreuses variantes pour un projet donné. Par exemple, les conventions de dénomination des branches de sujet varient. Certains projets utilisent des conventions comme bug_345, où 345 est le numéro d'identification d'un problème GitHub qui a été classé. Certains projets préfèrent des messages de validation plus courts que d'autres. Voici une série de commandes qui compléteraient le flux de travail ci-dessus..

Étape 1: fourchette

Fork le repo sur GitHub.com



Étape 2: clonage

Clonez le référentiel à l'aide de l'URL dans la barre latérale droite:

git clone [email protected]: jcutrell / jquery.git

Étape 3: Ajout de la télécommande en amont

Basculez dans le répertoire cloné puis, à ce stade, vous pouvez ajouter la télécommande en amont:

cd jquery git remote ajouter en amont [email protected]: jquery / jquery.git

Cela vous permettra maintenant d'extraire localement les modifications de la source et de les fusionner, comme suit:

 git chercher en amont git fusionner en amont / maître

Étape 4: extraction d'une branche de sujet

Cependant, avant de faire vos propres modifications, vérifiez une branche de sujet:

git checkout -b enhancement_345

Étape 5: S'engager

Maintenant, vous pouvez apporter vos modifications et créer un commit qui suit juste ces changements.

git commit -am "ajout d'un smileyface à la documentation."

Étape 6: pousser

Ensuite, vous allez pousser cette branche de sujet sur votre propre fork du projet.

Origine de Git Push Enhancment_345

Étape 7: Création d'une demande d'extraction

Enfin, vous allez créer une demande d'extraction. D'abord, allez à votre fourche du repo. Vous pourriez voir un "tes branches récemment poussées", et si oui, vous pouvez choisir "Comparer et tirer demande". Sinon, vous pouvez sélectionner votre branche dans la liste déroulante, puis cliquer sur "Demande Pull" ou "Comparer" en haut à droite de la section repo.


Création d'une demande d'extraction via le Comparer et tirer demande bouton.

Création d'une demande d'extraction via le menu déroulant de branche.

L'un ou l'autre vous mènera à une page où vous pouvez créer une demande de tirage et commenter la demande. Cette page comprend également une visualisation des modifications apportées. Cela permet à l'administrateur de projet de voir facilement ce que vous avez fait et de décider plus facilement s'il est approprié de fusionner votre commit. S'ils ont des questions, ils peuvent les poser dans les commentaires. ils peuvent également vous demander de nettoyer votre demande d'extraction et de la soumettre à nouveau, puis de fermer la demande d'extraction..

Notez qu'il est extrêmement important que vous montriez le respect total aux administrateurs d'un projet. après tout, vous pouvez toujours utiliser votre version forkée du code, et s’ils ont choisi de ne pas intégrer vos modifications, c’est parce qu’ils sont en mesure de le faire. Rappelez-vous, selon le commentaire de Zith Holman, employé de Github, dans "Comment GitHub utilise GitHub pour construire GitHub", les demandes d'extraction sont des conversations. C'est comme ça qu'ils devraient être traités; au lieu de vous attendre à ce que votre engagement soit accepté, attendez-vous seulement à ce qu'il ouvre la conversation sur le code que vous avez écrit.


Problèmes GitHub + demandes d'extraction = Gestion de projet Zen

GitHub propose GitHub Issues, un moyen efficace de créer des conversations documentées, interactives et automatisées sur les bogues ou les fonctionnalités d'un projet donné. Bien que les problèmes puissent être désactivés, ils sont activés par défaut. Problèmes intègre de nombreuses fonctionnalités impressionnantes, mais l'une des fonctionnalités les plus importantes est son intégration aux demandes d'extraction. Un utilisateur peut référencer un problème dans son message de validation en incluant simplement son ID numérique dans le message de validation. Par exemple:

git commit -am "Ajout d'un en-tête; corrige # 3"

Ce message de validation marquerait automatiquement le problème n ° 3 comme étant fermé lorsque sa demande d'extraction associée serait acceptée. Ce type d’automatisation fait de GitHub un formidable outil de gestion de projet de développement..


Recherche de voies de collaboration secondaires

Souvent, les grands projets open source bénéficient de nombreux types de travail collaboratif.

Ne vous laissez pas prendre à penser que la seule façon de contribuer est de faire des demandes de retrait. Souvent, les grands projets open source tirent parti de nombreux types de travail collaboratif. Par exemple, un projet comme Ruby on Rails était connu pour sa communauté; cette communauté répondrait aux questions sur les forums et dans les salles de discussion IRC pour aider à acquérir des connaissances sur le cadre, et aiderait également à orienter la direction future du cadre en parlant d'idées et en découvrant des bugs..

Ces canaux de collaboration s’ouvrent généralement comme environnements de support, comme mentionné précédemment, tels que les forums et les salles de discussion. Il se peut également que des chaînes de courrier électronique, des rencontres ou des conférences téléphoniques aident à définir la direction du projet et à créer une communauté vivante et productive autour du projet. Sans ce type de communauté, les demandes d'extraction sont beaucoup moins efficaces.


Surtout, il s'agit de votre attitude

N'oubliez pas que l'open source est animé par des personnes convaincues que le partage des connaissances et la création d'une intelligence collaborative sont des efforts louables. Votre implication dans ces projets sera d'autant plus efficace que vous abordez un projet avec l'attitude inquisitrice qui demande "comment puis-je aider?" plutôt qu'une attitude fermée qui dit "je vais aider comme je veux." Les gens du monde de l'open source veulent travailler avec des gens qui sont vraiment motivés à aider les autres.


Conclusion

Si vous êtes intéressé par un projet open source, c'est parfait! N'oubliez pas que si vous abordez le projet avec la bonne attitude et commencez petit, vous pouvez voir votre nom sur les demandes d'extraction fusionné dans un code qui est distribué à des utilisateurs du monde entier et utilisé quotidiennement. Prenez le temps de vous renseigner sur le projet et sur les personnes qui y participent. Développer un réel intérêt à aider le projet à devenir meilleur. La puissance de GitHub et du monde des logiciels libres continue de croître chaque jour. commencez à collaborer avec d'autres développeurs et vous pourrez faire partie de ce monde!