Effectief bijdragen aan Open Source-projecten Webmaker

Wat je gaat creëren

Bijdragen aan open source projecten heeft veel voordelen. Terwijl je aan een dergelijk project bijdraagt, krijg je de professionele manier van ontwikkelen te leren die wordt ingezet door grote organisaties. Dergelijke vaardigheden blijken zeer nuttig te zijn voor de loopbaan van mensen en hen te helpen dingen te leren die ze misschien niet kunnen leren tijdens hun opleiding / werk.

Dit artikel is bedoeld voor beginners en gevorderde ontwikkelaars die willen bijdragen aan open source projecten. Ik zal aantonen dat ik een bijdrage lever aan het Webmaker Project van Mozilla Foundation, om uit te leggen hoe je effectief kunt bijdragen aan open source-projecten.

Case study: Mozilla Webmaker

We zullen het hele proces van betrokkenheid bij een project doorlopen, van het begrijpen van de richtlijnen van bijdragen, een GitHub-account gebruiken en Git gebruiken om Bugzilla efficiënt te gebruiken. Deze tutorial laat zien hoe je je patches kunt samenvoegen met de belangrijkste codebase van een project. Ik zal het voorbeeld van een oude en eenvoudige bug gebruiken die ik heb opgelost, toen ik net een open source-bijdrage had gestart.

Allereerst moet je de repository van het project vinden. We zullen bijvoorbeeld aan de. Werken Profiel onderdeel van Webmaker.

https://github.com/mozilla/webmaker-profile-2

Log in op uw GitHub-account, en Vork het project. Nadat je dit gedaan hebt, zul je de gevorkte repository onder je gebruikersnaam vinden.

Ik had bijvoorbeeld het volgende:

https://github.com/tanay1337/webmaker-profile-2

U moet Git op uw systeem geïnstalleerd hebben. U kunt de richtlijnen lezen over hoe u dat moet doen.

Rechtsonder zie je een doos als deze:

U kunt die URL kopiëren om de repository in uw systeem te klonen. Voer nu Git uit in de opdrachtregelmodus en voer de volgende opdracht in.

git clone https://github.com/tanay1337/webmaker-profile-2.git

Hiermee wordt alle code in uw systeem geïmporteerd onder een map met de naam WebMaker-profile-2. Bijdragende richtlijnen zijn meestal aanwezig in een bestand met de naam CONTRIBUTING.md en installatie-instructies zijn in README.md. Lees deze twee documenten zorgvuldig door. Ze bevatten belangrijke informatie voor ontwikkelaars.

Doe mee met Bugzilla!

Nu zul je enkele relevante en eenvoudige bugs moeten vinden om mee te beginnen. Voor alle Mozilla-gerelateerde projecten kun je Bugs Ahoy gebruiken voor het vinden van goede eerste bugs en specifieke bugs specifiek voor je vaardigheden. Mozilla gebruikt Bugzilla voor het archiveren en beheren van fouten en het afhandelen van functieverzoeken. U kunt inloggen op Bugzilla met behulp van Persona. Zodra u een relevante bug vindt, moet u reageren op die bug waarin uw interesse getoond wordt om de bug te repareren.

Je kunt ook hulp vragen bij het vinden van een specifiek bestand in de broncode waar de bug aanwezig is van de ontwikkelaars op het IRC van Mozilla. Ze zijn een erg vriendelijke groep mensen die je graag helpen je eerste bug op te lossen. Als er niemand online is, probeer dan een needinfovlag voor de mentor vermeld in de bug en hij zal terugkomen om je te helpen!

Wijzigingen in de lokale repository opslaan

Nu, ervan uitgaande dat je de bug hebt opgelost en de respectieve wijzigingen in de bestanden lokaal hebt aangebracht, moet je de bestanden zien die lokaal zijn aangepast met behulp van het versiecontrolesysteem. Typ gewoon de volgende opdracht in de WebMaker-profile-2 directory.

git status

Dit geeft de details van de gewijzigde bestanden evenals nieuwe bestanden die zijn toegevoegd aan de lokale repository. Als u tevreden bent met de bestanden die zijn gewijzigd, voegt u de gewijzigde / nieuwe bestanden toe aan het verzamelgebied.

git add names_of_files

Als alles goed gaat, kun je de bestanden veilig vastleggen.

git commit -m "Jouw bericht hier"

Het Commit-logboek schoonmaken en wijzigingen doorvoeren

Zorg ervoor dat uw commit geen onnodige witte spaties of nieuwe regels bevat. Het wordt als een goede gewoonte beschouwd om het bericht zoiets als "Fixing Bug 1040556" te noemen, om redenen die ik later in dit artikel aan u zal uitleggen. De beheerders van de repository geven de voorkeur als je één commit hebt per pull-aanvraag. Dus, als je meer dan één commit lokaal hebt, moet je ze rebasen.

git rebase -i HEAD ~ 2

Het bovenstaande commando gaat ervan uit dat je twee commits hebt, en -ik is de vlag voor interactieve rebasing. Het toont de twee commits samen met hun berichten, die het woord zullen hebben plukken voorafgegaan. Vervang gewoon plukken met squash bij een van de commits en je bent klaar om te gaan. Het volgende scherm pompt de commit-berichten samen. 

Gefeliciteerd, je hebt de commits met succes opnieuw gemaakt. Nu hoef je alleen maar de wijzigingen in je GitHub-repository te pushen.

git push

Of probeer de volgende opdracht als je al de eerste commit hebt gepusht en daarna bent gereboot.

git push -f

Een Pull-verzoek openen

Open nu uw online repository en klik op de knop voor Pull-verzoeken en open een nieuw pull-verzoek.

Het vult automatisch de titel van het pull-verzoek van het commit-bericht en toont het verschil (onderstaande figuur toont het verschil voor mijn pull-aanvraag).

Gefeliciteerd, je hebt je eerste verzoek tot pull gedaan. Maar je moet nog een paar dingen doen. Kopieer de URL van uw pull-aanvraag en open uw bug op Bugzilla. kiezen Voeg een bijlage toe en plak daar de URL van het pull-verzoek. Vink het selectievakje met de patch aan en voeg een beoordelingsvlag toe voor uw mentor.

Ervan uitgaande dat uw patch correct was, zal uw mentor uw pull-aanvraag samenvoegen in de hoofdrepository en de bug automatisch worden opgelost door de github-robot op Bugzilla (dit gebeurt alleen als de naam van de commit en Pull-aanvraag het bugnummer bevat).

Niets zo vreugdevol als wanneer je ziet dat je code wordt samengevoegd met de hoofdcodebasis en wordt ingezet op de hoofdwebsite die door miljoenen gebruikers wordt gebruikt!

Ik hoop dat je de stappen hebt gevolgd om je eerste bug bij Webmaker of een ander vergelijkbaar opensourceproject op te lossen.