1. Een stap-voor stap bijdrage
Notitie
Hoewel de QGIS-Documentation wordt gebruikt om het proces te demonstreren, zijn alle hieronder staande opdrachten en stappen ook van toepassing op QGIS-Website.
Als u deze regels leest is dat zeker omdat u bereid bent om bij te dragen aan het schrijven van documentatie voor QGIS en zoekt naar een manier waarop. U bent op de juiste plaats! Het huidige document zal u door de verschillende manieren leiden om dit doel te bereiken, u de belangrijkste te volgen stappen laten zien, de trucs die u kunt gebruiken en de valkuilen die u zou moeten kennen.
Aarzel niet om hulp te krijgen daarom te vragen in een opmerking voor het probleem dat u probeert te repareren of schrijf naar de lijst van het QGIS-community-team. Meer details op Documentatie schrijven.
Laten we nu in het proces duiken.
Bronnen voor documentatie worden opgeslagen met het versie-controlesysteem git en zijn beschikbaar in GitHub op https://github.com/qgis/QGIS-Documentation. Een lijst van te repareren problemen en uit te leggen mogelijkheden is te vinden op https://github.com/qgis/QGIS-Documentation/issues.
Tip
Als u voor de eerste keer bijdraagt en niet precies weet waar u zou moeten beginnen, bent u misschien geïnteresseerd in het bekijken van onze welcoming reports.
Er zijn twee belangrijke manieren, niet onderling exclusief, om de bestanden aan te passen:
1.1. De GitHub webinterface gebruiken
De webinterface van GitHub stelt u in staat het volgende te doen:
bestanden bewerken
uw wijzigingen bekijken en indienen
een pull request maken om uw wijzigingen te laten invoegen in de hoofdopslagplaats
branches maken, bijwerken of verwijderen
Als u nog niet bekend bent met de vocabulaire voor git en GitHub, wilt u misschien het GitHub-project Hello-world lezen om enige basis vocabulaire en acties te leren die hieronder zullen worden gebruikt.
Notitie
Als u een gerapporteerd probleem repareert
Als u wijzigingen maakt om een probleem te repareren, voeg dan een opmerking aan het rapport van het probleem toe om het aan uzelf toe te wijzen. Dit voorkomt dat meer dan één persoon werken aan hetzelfde probleem.
1.1.1. QGIS-Documentation forken
Er van uitgaande dat u al een GitHub account heeft, dient u eerst de bronbestanden van de documentatie te kopiëren (fork).
Navigeer naar de pagina opslagplaats voor QGIS-Documentation en klik op de knop aan de rechter bovenkant.
In uw GitHub account zult u een opslagplaats QGIS-Documentation (https://github.com/<YourName>/QGIS-Documentation
) vinden. Deze opslagplaats is een kopie van de officiële opslagplaats van QGIS-Documentation waar u volledige schrijftoegang toe hebt en u kunt wijzigingen maken zonder de officiële documentatie te beïnvloeden.
1.1.2. Wijzigingen maken
Er zijn verschillende manieren om bij te dragen aan de documentatie voor QGIS. We geven ze hieronder afzonderlijk weer, maar u kunt zonder problemen overstappen van het ene proces naar een ander.
Alternatief 1: Gebruik de sneltoets Bewerken op Github
Pagina’s op de website voor documentatie van QGIS kunnen snel en eenvoudig worden bewerkt door te klikken op de link Edit on GitHub
aan de rechterbovenkant van elke pagina.
Dit zal het bestand openen in de branch
qgis:master
met een bericht aan de bovenzijde dat u mededeelt dat u geen rechten voor schrijven heeft voor deze opslagplaats en dat uw wijzigingen zullen worden toegepast in een nieuwe branch van uw opslagplaats.Maak uw wijzigingen. Omdat de documentatie is geschreven met de syntaxis voor reStructureText, afhankelijk van uw wijzigingen, wilt u misschien steun zoeken bij de richtlijnen voor schrijven van documentatie.
Als u gereed bent kunt u aan de onderzijde van de pagina een opmerking plaatsen over welke wijzigingen u gemaakt heeft en klik daarna op Propose changes. Dit zal een nieuwe branch <https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches>`_ (
patch-xxx
) in uw opslagplaats maken.Nadat u heeft geklikt op Propose changes zal GitHub navigeren naar de pagina Comparing changes.
Als u klaar bent met het maken van wijzigingen, ga dan door met Wijzigingen vergelijken in het gedeelte Wijzigingen delen via Pull Request hieronder.
Als er aanvullende wijzigingen zijn die u wilt maken vóór u ze bij QGIS indient, volg dan deze stappen:
Navigeer naar uw fork van QGIS-Documentation (
https://github.com/<YourName>/QGIS-Documentation
)Klik op en zoek naar de branch
patch-xxx
. Selecteer deze patch branch. De knop zal nu laten zien Branch: patch-xxxSpring verder naar Bestanden aanpassen hieronder.
Notitie
De sneltoets Bewerken op GitHub
is ook beschikbaar in het keuzemenu aan de onderzijde van de linkerzijbalk.
Alternatief 2: Maak een ad hoc branch in uw opslagplaats voor Documentation
U kunt bestanden direct bewerken in uw fork van de QGIS Documentation.
Zorg er eerst voor dat uw branch master
is bijgewerkt met de branch qgis:master
Om dat te doen:
Ga naar de hoofdpagina van uw opslagplaats, d.i.
https://github.com/<YourName>/QGIS-Documentation
. De branchmaster
zou actief moeten zijn met een vermelding dat hij up to date is metqgis/QGIS-Documentation:master
of niet.Als het commits heeft die ahead zijn van de branch upstream zou u beter de eerder genoemde alternatieve sneltoets-knop gebruiken voordat u uw branch
master
uitlijntAls het alleen commits behind heeft:
Vergroot het keuzemenu Fetch Upstream aan de rechterkant. U kunt
Compare de branches en nieuwe wijzigingen zien in de hoofd-opslagplaats
Fetch and merge: brengt wijzigingen vanuit de branch upstream naar die van u.
Laten we klikken op Fetch and merge: na dit proces zal uw branch vermeld zijn als up to date met
qgis/QGIS-Documentation:master
.
Klik op in de linkerbovenhoek van uw fork van de opslagplaats QGIS-Documentation en voer een unieke naam in in het tekstveld om een nieuwe branch te maken. De naam van de nieuwe branch zou gerelateerd moeten zijn aan het probleem dat van plan bent te repareren. De knop zou nu Branch: branch_naam moeten laten zien
U bent nu klaar om er nieuwe wijzigingen in te maken.
Let op
Maak uw wijzigingen in een ad hoc branch, nooit in de branch master
Als conventie, probeer het maken van wijzigingen in uw branch master
zoveel mogelijk te vermijden, met uitzondering van het samenvoegen van de aanpassingen vanuit de branch master
van qgis/QGIS-Documentation
naar uw kopie van de opslagplaats QGIS Documentation. Afzonderlijke branches stellen u in staat aan verschillende problemen tegelijkertijd te werken zonder last te hebben van andere branches. Als u een fout maakt kunt u altijd een branch verwijderen en opnieuw beginnen door een nieuwe te maken vanuit de master branch.
1.1.3. Bestanden aanpassen
Blader door de bronbestanden van uw fork van QGIS-Documentation naar het bestand dat moet worden gewijzigd
Maak uw aanpassingen, rekening houdende met de richtlijnen voor het schrijven van documentatie
Als u klaar bent, navigeer naar het frame Commit Changes onder op de pagina, maak een korte opmerking over uw wijzigingen en klik op Commit Changes om de wijzigingen direct op te nemen in uw branch. Zorg er voor dat Commit directly to the branch_naam branch. is geselecteerd.
Herhaal de vorige stappen voor elk ander bestand dat moet worden bijgewerkt om het probleem op te lossen.
1.1.5. Uw samengevoegde branch verwijderen
U kunt de branch verwijderen nadat uw wijzigingen zijn samengevoegd. Verwijderen van oude branches helpt u bij het voorkomen van ongebruikte en gedateerde branches in uw opslagplaats.
1.2. Gereedschappen voor de opdrachtregel van Git gebruiken
De webinterface GitHub is een gemakkelijke manier om de opslagplaats van de QGIS-documentation bij te werken met uw bijdragen, maar het biedt geen gereedschappen om:
uw commits te groeperen en de geschiedenis van uw wijzigingen op te schonen
mogelijke conflicten met de hoofdopslagplaats op te lossen
de documentatie te bouwen om uw wijzigingen te testen
U dient git te installeren op uw harde schijf om toegang te verkrijgen tot meer geavanceerde en krachtige programma’s en een lokale kopie van de opslagplaats te krijgen. Sommige basisbeginselen die u vaak nodig heeft worden hieronder besproken. U vindt daar ook regels die u in acht zou moeten nemen, zelfs als u slechts opteert voor de webinterface.
In de voorbeelden van code hieronder, geven lijnen die beginnen met $
opdrachten weer die u zou moeten typen, terwijl #
opmerkingen zijn.
1.2.1. Lokale opslagplaats
Nu bent u klaar om een lokale kloon van uw opslagplaats QGIS-Documentation op te halen.
U kunt uw opslagplaats voor QGIS met de URL van het web als volgt klonen:
# move to the folder in which you intend to store the local repository
$ cd ~/Documents/Development/QGIS/
$ git clone https://github.com/<YourName>/QGIS-Documentation.git
De eerdere opdrachtregel is slechts een voorbeeld. U zou zowel het pad als de URL voor de opslagplaats moeten aanpassen, waarbij <YourName>
wordt vervangen door uw gebruikersnaam.
Controleer het volgende:
# Enter the local repository
$ cd ./QGIS-Documentation
$ git remote -v
origin https://github.com/<YourName>/QGIS-Documentation.git (fetch)
origin https://github.com/<YourName>/QGIS-Documentation.git (push)
$ git branch
* master
origin is de naam van de opslagplaats op afstand van uw opslagplaats voor QGIS-Documentation.
master is de standaard hoofdbranch. U zou die nooit moeten gebruiken om iets in te dienen! Nooit!
Als alternatief kunt u uw opslagplaats voor QGIS klonen met het protocol voor SSH:
# move to the folder in which you intend to store the local repository
$ cd ~/Documents/Development/QGIS/
$ git clone [email protected]:<YourName>/QGIS-Documentation.git
Tip
Permission denied (publickey) error?
Indien u een fout Permission denied (publickey) error krijgt met de eerdere opdracht, zou er een probleem kunnen zijn met uw sleutel voor SSH. Bekijk GitHub help voor de details.
Controleer het volgende als u het protocol voor SSH gebruikte:
# Enter the local repository
$ cd ./QGIS-Documentation
$ git remote -v
origin [email protected]:<YourName>/QGIS-Documentation.git (fetch)
origin [email protected]:<YourName>/QGIS-Documentation.git (push)
$ git branch
* master
U zou hier kunnen beginnen te werken, maar op de lange termijn zou u veel problemen krijgen wanneer u uw bijdragen (Pull Request genaamd in het proces in Github) wilt indienen omdat de hoofdbranch van de opslagplaats van qgis/QGIS-Documentation af zal wijken van uw lokale opslagplaats of uw opslagplaats op afstand. U dient dan de hoofdopslag op afstand in de gaten te houden en te werken met branches.
1.2.2. Een andere opslagplaats op afstand toevoegen
Voeg een nieuwe opslagplaats op afstand toe aan uw lokale opslagplaats om in staat te zijn het werk in het hoofdproject te volgen. Deze nieuwe opslagplaats op afstand is de opslagplaats QGIS-Documentation van het project QGIS:
$ git remote add upstream https://github.com/qgis/QGIS-Documentation.git
$ git remote -v
origin https://github.com/<YourName>/QGIS-Documentation.git (fetch)
origin https://github.com/<YourName>/QGIS-Documentation.git (push)
upstream https://github.com/qgis/QGIS-Documentation.git (fetch)
upstream https://github.com/qgis/QGIS-Documentation.git (push)
U kunt op soortgelijke wijze het protocol voor SSH gebruiken om een opslagplaats op afstand toe te voegen aan uw lokale opslagplaats:
$ git remote add upstream [email protected]:qgis/QGIS-Documentation.git
$ git remote -v
origin [email protected]:<YourName>/QGIS-Documentation.git (fetch)
origin [email protected]:<YourName>/QGIS-Documentation.git (push)
upstream [email protected]:qgis/QGIS-Documentation.git (fetch)
upstream [email protected]:qgis/QGIS-Documentation.git (push)
U heeft nu dus de keuze tussen twee opslagplaatsen op afstand:
origin om uw lokale branch door te voeren in uw opslagplaats op afstand
upstream om uw bijdragen samen te voegen (als u daar de rechten voor heeft) met de officiële OF om uw hoofdbranch van uw lokale opslagplaats bij te werken vanuit de hoofdbranch van de officiële opslagplaats.
Notitie
upstream is slechts een label, een soort standaard naam, maar u mag het noemen zoals u wilt.
1.2.3. Uw basisbranch bijwerken
Vóórdat u gaat werken aan een nieuwe bijdrage zou u altijd de lokale hoofdbranch in uw lokale opslagplaats moeten bijwerken. Er van uitgaande dat u van plan bent wijzigingen door te sturen naar de documentatie voor testen, voer de volgende opdrachtregels uit:
# switch to master branch (it is easy to forget this step!)
$ git checkout master
# get "information" from the master branch in the upstream repository
# (aka qgis/QGIS-Documentation's repository)
$ git fetch upstream master
# merge update from upstream/master to the current local branch
# (which should be master, see step 1)
$ git merge upstream/master
# update **your** remote repository (aka <YourName>/QGIS-Documentation)
$ git push origin master
Nu heeft u uw lokale opslagplaats en een op afstand die beide hun branch master
hebben die up to date is met de officiële branch master
van QGIS-Documentation. U kunt nu aan uw bijdrage gaan werken.
Notitie
Schakel naar de branch als u wilt bijdragen aan uitgebrachte documentatie
Naast de documentatie voor testen, gaan we ook door met het oplossen van problemen in de laatste uitgave, wat betekent dat u ook daaraan kunt bijdragen. Als we de voorbeeldcode uit het eerdere gedeelte volgen, vervang``master`` door de corresponderende branch van de laatste documentatie.
1.2.4. Aan uw branch voor productie bijdragen
Nu uw basisbranch is bijgewerkt, dient u een toegewezen branch te maken waarin u uw bijdragen toevoegt. Werk altijd met een andere branch dan de basisbranch! Altijd!
# Create a new branch
$ git checkout -b myNewBranch
# checkout means go to the branch
# and -b flag creates a new branch if needed, based on current branch
# Let's check the list of existing branches (* indicates the current branch)
$ git branch
master
release_2.18
...
* myNewBranch
# You can now add your contribution, by editing the concerned file(s)
# with any application (in this case, vim is used)
$ vim myFile
# once done
$ git add myFile
$ git commit
Enkele woorden over opdrachten om in te dienen/pushen:
probeer slechts één bijdrage tegelijk in te dienen (atomic change) d.i. heeft betrekking op één probleem
probeer in de titel en beschrijving van uw indiening zorgvuldig uit te leggen wat u gewijzigd hebt. De eerste regel is een titel en zou moeten beginnen met een hoofdletter en bestaat uit een lengte van 80 tekens, eindig niet met een
.
. Wees beknopt. Uw beschrijving mag langer zijn, eindig die met een.
en u kunt veel meer details geven.gebruik een
#
met een getal om naar een probleem te verwijzen. Zet als voorvoegselFix
als u het ticket repareert: uw indiening zal het ticket sluiten.
Nu uw wijzigingen zijn opgeslagen en doorgevoerd in uw lokale branch, dient u ze door te sturen naar de opslagplaats op afstand om een pull request te maken:
$ git push origin myNewBranch
1.2.6. Uw lokale en opslagplaats op afstand opschonen
Nadat uw PR is samengevoegd met de officiële QGIS-Documentation, kunt u uw branch verwijderen. Als u veel op deze manier werkt zult u binnen een paar weken heel veel nutteloze branches hebben. Houd dus uw opslagplaats op de volgende manier schoon:
# delete local branch
$ git branch -d myNewBranch
# Remove your remote myNewBranch by pushing nothing to it
$ git push origin :myNewBranch
En vergeet niet de branch master
in uw lokale opslagplaats bij te werken!
1.3. Meer informatie
Naast de webinterface Github en het programma git voor de opdrachtregel zoals hierboven vermeld, zijn er ook toepassingen met GUI die u kunt gebruiken om uw bijdragen aan de documentatie te maken en te beheren.
Wanneer de wijzigingen in het pull request conflicteren met recente wijzigingen die zijn doorgevoerd in de doel-branch, moeten de conflicten worden opgelost voordat kan worden samengevoegd:
als het conflict relateert aan een aantal met elkaar strijdende regels is een knop Resolve conflicts beschikbaar op de pagina van het Github pull request. Druk op de knop en los het probleem op zoals uitgelegd wordt op Resolving a merge conflict on GitHub
als het conflict het hernoemen of verwijderen van bestanden betreft, dan dient u het probleem op te lossen met het programma git voor de opdrachtregel. Gewoonlijk moet u eerst uw branch opnieuw als basis instellen boven de doel-branch met de aanroep
git rebase targetBranch
en de conflicten die worden gerapporteerd oplossen. Lees meer op Resolving a merge conflict using the command line
Soms, aan het einde van het proces van proeflezen, zou u kunnen eindigen met wijzigingen die zijn verdeeld over meerdere commits die dat niet noodzakelijkerwijze waard zijn. Git voor de opdrachtregel helpt u deze commits terug te brengen tot een kleiner aantal en meer betekenisvolle berichten voor commits. Enkele details op `Using git rebase on the command line https://docs.github.com/en/get-started/using-git/using-git-rebase-on-the-command-line>`_