Difference between revisions of "Working with git and github/nl"

From Joomla! Documentation

(Updating to match new version of source page)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
<noinclude><languages /></noinclude>
 
<noinclude><languages /></noinclude>
{{underconstruction}}
+
 
 +
<div class="mw-translate-fuzzy">
 
= Introductie =
 
= Introductie =
 +
</div>
 +
<div class="mw-translate-fuzzy">
 
Dit document geeft informatie over het bijdragen aan het Joomla! CMS met behulp van Git en Github. Als u graag op een eenvoudige wijziging (op een enkel bestand) wilt doen is het beter om deze documentatie te raadplegen: [[S:nl/Using the Github UI to Make Pull Requests|De Github UI gebruiken om een Pull Request in te dienen]]
 
Dit document geeft informatie over het bijdragen aan het Joomla! CMS met behulp van Git en Github. Als u graag op een eenvoudige wijziging (op een enkel bestand) wilt doen is het beter om deze documentatie te raadplegen: [[S:nl/Using the Github UI to Make Pull Requests|De Github UI gebruiken om een Pull Request in te dienen]]
 
Als u meer complexe wijzigingen wilt doorvoeren of geïnteresseerd bent, lees dan vooral door!
 
Als u meer complexe wijzigingen wilt doorvoeren of geïnteresseerd bent, lees dan vooral door!
 +
</div>
  
 +
<div class="mw-translate-fuzzy">
 
== Wat zijn Git en GitHub ==
 
== Wat zijn Git en GitHub ==
 +
</div>
  
 
Git is een gedistribueerd versiebeheersysteem. Het is een systeem dat wijzigingen in bestanden registreert en deze wijzigingen in een historisch bestand opslaat. U kunt altijd terug kijken in een eerdere versie van uw code en indien gewenst wijzigingen herstellen. Door het historisch archief is Git erg handig als je met veel mensen samenwerkt in hetzelfde project.
 
Git is een gedistribueerd versiebeheersysteem. Het is een systeem dat wijzigingen in bestanden registreert en deze wijzigingen in een historisch bestand opslaat. U kunt altijd terug kijken in een eerdere versie van uw code en indien gewenst wijzigingen herstellen. Door het historisch archief is Git erg handig als je met veel mensen samenwerkt in hetzelfde project.
Line 14: Line 20:
  
  
 +
<div class="mw-translate-fuzzy">
 
== Aan de slag ==
 
== Aan de slag ==
 +
</div>
 +
<div class="mw-translate-fuzzy">
 
== Aanmelden op GitHub en Git installeren ==
 
== Aanmelden op GitHub en Git installeren ==
First, you will need to register at [http://www.github.com GitHub]. It's free and easy to do. Just follow the provided steps.
+
</div>
 +
<div class="mw-translate-fuzzy">
 +
Als eerste moet u zich op [http://www.github.com GitHub] registreren. Het is gratis en erg makkelijk. Volg de opgegeven stappen.
 +
</div>
  
 +
<div class="mw-translate-fuzzy">
 
Nu u aangemeld bent kunt u Git installeren. De laatste versie van Git kan gevonden worden op http://git-scm.com. Download en start het installatiebestand. Git is een CLI (command line interface) programma. In het begin kan dit verwarrend en angstig zijn maar dit document zal u door het proces leiden.
 
Nu u aangemeld bent kunt u Git installeren. De laatste versie van Git kan gevonden worden op http://git-scm.com. Download en start het installatiebestand. Git is een CLI (command line interface) programma. In het begin kan dit verwarrend en angstig zijn maar dit document zal u door het proces leiden.
 +
</div>
  
 +
<div class="mw-translate-fuzzy">
 
Als u niet een geavanceerde gebruiker bent kunt u gewoon het installatiebestand starten en op de "Volgende" knop drukken totdat het programma geïnstalleerd is. Git zal uw systeem niet schaden. U kunt het later, indien gewenst, verwijderen zoals u dat met andere programma's ook doet.
 
Als u niet een geavanceerde gebruiker bent kunt u gewoon het installatiebestand starten en op de "Volgende" knop drukken totdat het programma geïnstalleerd is. Git zal uw systeem niet schaden. U kunt het later, indien gewenst, verwijderen zoals u dat met andere programma's ook doet.
 +
</div>
  
 +
<div class="mw-translate-fuzzy">
 
Zodra we Git hebben geïnstalleerd kunnen we het programma genaamd "Git Bash" starten. Er zal een commandoregel geopend worden. We gaan Git onze naam en e-mailadres geven. Git zal deze gegevens gebruiken wanneer we een bijdrage leveren aan een project.
 
Zodra we Git hebben geïnstalleerd kunnen we het programma genaamd "Git Bash" starten. Er zal een commandoregel geopend worden. We gaan Git onze naam en e-mailadres geven. Git zal deze gegevens gebruiken wanneer we een bijdrage leveren aan een project.
 +
</div>
 
Met de volgende commandos kunnen we Git deze gegevens geven±
 
Met de volgende commandos kunnen we Git deze gegevens geven±
  
<source>
+
<syntaxhighlight lang="bash">
 
git config --global user.name "Your name"
 
git config --global user.name "Your name"
 
git config --global user.email youremail@mail.com
 
git config --global user.email youremail@mail.com
</source>
+
</syntaxhighlight>
  
 
In de bovenstaande commandos, en bij alle overige commandos die in deze documentatie staat, zal een nieuwe regel een nieuw commando zijn. Dus u typt de eerste regel, drukt op enter en begint met de tweede regel en drukt weer op enter.
 
In de bovenstaande commandos, en bij alle overige commandos die in deze documentatie staat, zal een nieuwe regel een nieuw commando zijn. Dus u typt de eerste regel, drukt op enter en begint met de tweede regel en drukt weer op enter.
  
 +
<div class="mw-translate-fuzzy">
 
We zijn nu klaar om Git te gebruiken en gaan verder met het instellen van onze testinstallatie.
 
We zijn nu klaar om Git te gebruiken en gaan verder met het instellen van onze testinstallatie.
 +
</div>
  
 
+
<div class="mw-translate-fuzzy">
 
=Instellen van de testinstallatie=
 
=Instellen van de testinstallatie=
 +
</div>
 +
<div class="mw-translate-fuzzy">
 
Voor onze testinstallatie hebben we een webserver programma nodig zodat we Joomla op onze computer kunnen installeren. Er zijn verschillende programma's die dit kunnen verzorgen zoals [https://www.mamp.info/MAMP] en [https://www.apachefriends.org/XAMPP]. Download en installeer één van deze programma's.
 
Voor onze testinstallatie hebben we een webserver programma nodig zodat we Joomla op onze computer kunnen installeren. Er zijn verschillende programma's die dit kunnen verzorgen zoals [https://www.mamp.info/MAMP] en [https://www.apachefriends.org/XAMPP]. Download en installeer één van deze programma's.
 +
</div>
  
 +
<div class="mw-translate-fuzzy">
 
Na de installatie van een programma als dat (in dit voorbeeld wordt MAMP gebruikt) kunnen we de laatste versie van Joomla! installeren. In ons geval is de laatste versie van Joomla! niet de stabiele versie. De laatste versie van Joomla! is de "staging branche" op GitHub.
 
Na de installatie van een programma als dat (in dit voorbeeld wordt MAMP gebruikt) kunnen we de laatste versie van Joomla! installeren. In ons geval is de laatste versie van Joomla! niet de stabiele versie. De laatste versie van Joomla! is de "staging branche" op GitHub.
 
We gaan eerst GitHub wat beter uitleggen.
 
We gaan eerst GitHub wat beter uitleggen.
 +
</div>
  
 +
<div class="mw-translate-fuzzy">
 
== "Fork" en kloon Joomla! ==
 
== "Fork" en kloon Joomla! ==
 +
</div>
 +
<div class="mw-translate-fuzzy">
 
Op GitHub kunt u verschillende projecten vinden, de zogenaamde "Repositories". In een project kunt u verschillende versies vinden. Zo'n versie heet een "branch". Joomla! heeft de volgende "branches":
 
Op GitHub kunt u verschillende projecten vinden, de zogenaamde "Repositories". In een project kunt u verschillende versies vinden. Zo'n versie heet een "branch". Joomla! heeft de volgende "branches":
 +
</div>
 
* "'Staging:"' Deze "branch" bevat de laatste bugfixes en nieuwe features van Joomla!
 
* "'Staging:"' Deze "branch" bevat de laatste bugfixes en nieuwe features van Joomla!
 
* "'Master:"' Deze branche is de huidige stabiele versie van Joomla!
 
* "'Master:"' Deze branche is de huidige stabiele versie van Joomla!
 
* "'3.5-dev"' Deze branche bevat de bestanden voor Joomla! 3.5 welke, op moment van schrijven, nog niet de stabiele versie is.
 
* "'3.5-dev"' Deze branche bevat de bestanden voor Joomla! 3.5 welke, op moment van schrijven, nog niet de stabiele versie is.
  
 +
<div class="mw-translate-fuzzy">
 
Op onze testlocatie gaan we de '''Staging''' "branche" gebruiken maar als we deze "branche" direct gaan gebruiken dan hebben we een probleem. We kunnen deze "branche" niet aanpassen omdat we niet de eigenaar zijn.
 
Op onze testlocatie gaan we de '''Staging''' "branche" gebruiken maar als we deze "branche" direct gaan gebruiken dan hebben we een probleem. We kunnen deze "branche" niet aanpassen omdat we niet de eigenaar zijn.
 +
</div>
 
We maken er een kopie van. Op GitHub heet dit een "Fork". Hier zijn we dan eigenaar van en kunnen het dus wijzigen. Na het wijzigen kunnen we onze "Fork" vergelijken met het originele project. Nu kunnen we een "Pull Request" aanmaken voor de wijzigingen die we hebben gemaakt. Daarover later meer.
 
We maken er een kopie van. Op GitHub heet dit een "Fork". Hier zijn we dan eigenaar van en kunnen het dus wijzigen. Na het wijzigen kunnen we onze "Fork" vergelijken met het originele project. Nu kunnen we een "Pull Request" aanmaken voor de wijzigingen die we hebben gemaakt. Daarover later meer.
 +
<div class="mw-translate-fuzzy">
 
U kunt van een "branche" een "Fork" maken door op de "Fork" knop te drukken op de [https://github.com/joomla/joomla-cms Joomla! CMS Github Repository]. Deze knop bevindt zich aan de rechter bovenkant van de pagina.
 
U kunt van een "branche" een "Fork" maken door op de "Fork" knop te drukken op de [https://github.com/joomla/joomla-cms Joomla! CMS Github Repository]. Deze knop bevindt zich aan de rechter bovenkant van de pagina.
 +
</div>
 
[[File:Github-fork-button.png|none]]
 
[[File:Github-fork-button.png|none]]
  
 +
<div class="mw-translate-fuzzy">
 
Nadat we de "Fork" hebben aangemaakt kunnen we Joomla! op onze lokale server installeren. Ga naar de map waar u de bestanden van de webserver kan uitvoeren. De meeste programma's gebruiken een map als <tt>htdocs</tt>. Zodra we in deze map zitten, klik op de rechtermuis toets en klik op: "Git Bash Here". De command line zal openen op deze locatie.
 
Nadat we de "Fork" hebben aangemaakt kunnen we Joomla! op onze lokale server installeren. Ga naar de map waar u de bestanden van de webserver kan uitvoeren. De meeste programma's gebruiken een map als <tt>htdocs</tt>. Zodra we in deze map zitten, klik op de rechtermuis toets en klik op: "Git Bash Here". De command line zal openen op deze locatie.
 +
</div>
  
Typ de volgende opdracht om de bestanden van de "Fork" van het Joomla! CMS naar uw computer te downloaden. Vervang <i>Gebruikersnaam</i> met de gebruikersnaam die u gebruikt op GitHub.
+
Type the following command to download the files from your Fork of the Joomla! CMS to your computer. Replace ''username'' with the username you are using on GitHub.
  
<source>
+
<syntaxhighlight lang="bash">
 
git clone https://github.com/username/joomla-cms.git
 
git clone https://github.com/username/joomla-cms.git
</source>
+
</syntaxhighlight>
 +
 
 +
U zal Git moeten openen via de bovenstaande beschreven stappen om alle commando's uit te voeren die in deze documentatie worden gegeven. Onthoudt dat voor alle andere commando's in deze documentatie.
 +
 
 +
<div class="mw-translate-fuzzy">
 +
Als Git klaar is kunt u de browser starten en naar de installatie op uw localhost gaan. Meestal is de URL iets als: <tt>http://localhost/joomla-cms</tt>. U zult nu een standaard Joomla! installatie zien.
 +
</div>
 +
 
 +
=== Composer and Node.js ===
 +
To work with the Joomla clone you need to install two items of software:
 +
# Composer - for managing Joomla's PHP dependencies. For help installing Composer, read the documentation at https://getcomposer.org/doc/00-intro.md.
 +
# Node.js - for compiling Joomla's JavaScript and SASS files. For help installing Node.js, please follow the instructions available on https://nodejs.org/en/. Note you will need NodeJS 12 or higher to install Joomla.
 +
 
 +
Once installed:
 +
# Run <code>composer install</code> from the root of the git repo. (You can add ''--ignore-platform-reqs'' if you don't have the PHP-LDAP locally installed and you don't need it.)
 +
# Run <code>npm ci</code> from the root of the git repo. (Note you need npm 6.13.4 or higher for this. Run <code>npm install -g npm@lts</code> to upgrade your version of npm to the LTS version.)
 +
Linux and OSX users can set up the following bash alias by placing the following inside the ''~/.bashrc file'':
 +
 
 +
<syntaxhighlight lang="bash">
 +
alias jclean="rm -rf administrator/templates/atum/css; \
 +
rm -rf templates/cassiopeia/css; \
 +
rm -rf administrator/templates/system/css; \
 +
rm -rf templates/system/css; \
 +
rm -rf media/; \
 +
rm -rf node_modules/; \
 +
rm -rf libraries/vendor/; \
 +
rm -f administrator/cache/autoload_psr4.php; \
 +
rm -rf installation/template/css"
 +
alias jinstall="jclean; composer install; npm ci"
 +
</syntaxhighlight>
  
U zal Git moeten openen via de bovenstaande beschreven stappen om alle commando's uit te voeren die in deze documentatie worden gegeven. Onthoudt dat voor alle andere commando's in deze documentatie.  
+
<span class="mw-translate-fuzzy">Typ de volgende opdracht om de bestanden van de "Fork" van het Joomla! CMS naar uw computer te downloaden. Vervang <i>Gebruikersnaam</i> met de gebruikersnaam die u gebruikt op GitHub.</span>
  
Als Git klaar is kunt u de browser starten en naar de installatie op uw localhost gaan. Meestal is de URL iets als: <tt>http://localhost/joomla-cms</tt>. U zult nu een standaard Joomla! installatie zien.
 
  
 +
<div class="mw-translate-fuzzy">
 
== Installeer Joomla! ==
 
== Installeer Joomla! ==
 +
</div>
 
De installatie van Joomla! op onze lokale testinstallatie is bijna hetzelfde als een reguliere installatie. Er zijn twee kleine verschillen.
 
De installatie van Joomla! op onze lokale testinstallatie is bijna hetzelfde als een reguliere installatie. Er zijn twee kleine verschillen.
  
 +
<div class="mw-translate-fuzzy">
 
Bij de database-instellingen zijn de gebruikersnaam en wachtwoord standaard. Meestal is de gebruikersnaam <tt>root</tt> en het wachtwoord is ook <tt>root</tt> of er is geen wachtwoord. Als u nog steeds de database niet kan bereiken dan kunt u in de handleiding van uw lokale webserver kijken voor de gebruikersnaam en het wachtwoord.
 
Bij de database-instellingen zijn de gebruikersnaam en wachtwoord standaard. Meestal is de gebruikersnaam <tt>root</tt> en het wachtwoord is ook <tt>root</tt> of er is geen wachtwoord. Als u nog steeds de database niet kan bereiken dan kunt u in de handleiding van uw lokale webserver kijken voor de gebruikersnaam en het wachtwoord.
 +
</div>
  
 
Het laatste verschil is de laatste stap van de installatie. Normaliter moeten we de installation-map verwijderen om verder te gaan naar de backend of frontend van onze website. Voor de testinstallatie kunnen we dit overslaan en kunnen we direct naar de backend of front-end gaan. Verwijder de installation-map niet. Dit kan erg nuttig zijn bij het opnieuw installeren van Joomla!
 
Het laatste verschil is de laatste stap van de installatie. Normaliter moeten we de installation-map verwijderen om verder te gaan naar de backend of frontend van onze website. Voor de testinstallatie kunnen we dit overslaan en kunnen we direct naar de backend of front-end gaan. Verwijder de installation-map niet. Dit kan erg nuttig zijn bij het opnieuw installeren van Joomla!
  
 +
<div class="mw-translate-fuzzy">
 
=Maak uw wijzigingen=
 
=Maak uw wijzigingen=
 +
</div>
 +
<div class="mw-translate-fuzzy">
 
Nu is het tijd om ons Joomla! bestand te wijzigen. Alle wijzigingen die gemaakt worden zullen worden geregistreerd door Git. Op elk moment kunt u via de commando <tt>git status</tt> zien welke bestanden gewijzigd zijn en welke niet worden "Untracked" (gemonitord). "Untracked" betekent dat het bestand op de locatie nieuw is voor Git.
 
Nu is het tijd om ons Joomla! bestand te wijzigen. Alle wijzigingen die gemaakt worden zullen worden geregistreerd door Git. Op elk moment kunt u via de commando <tt>git status</tt> zien welke bestanden gewijzigd zijn en welke niet worden "Untracked" (gemonitord). "Untracked" betekent dat het bestand op de locatie nieuw is voor Git.
 +
</div>
  
 
Als u een vergissing heeft gemaakt of een bestand wilt herstellen, kunt u dit commando gebruiken:
 
Als u een vergissing heeft gemaakt of een bestand wilt herstellen, kunt u dit commando gebruiken:
  
<source>
+
<syntaxhighlight lang="bash">
 
git checkout path/to/file
 
git checkout path/to/file
</source>
+
</syntaxhighlight>
  
 
Als u de wijzigingen die u hebt gemaakt wilt verwijderen, gebruik dan het volgende commando:
 
Als u de wijzigingen die u hebt gemaakt wilt verwijderen, gebruik dan het volgende commando:
  
<source>
+
<syntaxhighlight lang="bash">
 
git checkout .
 
git checkout .
 
git clean -f -d
 
git clean -f -d
</source>
+
</syntaxhighlight>
  
 
Het eerste commando reset alle bestanden. Het tweede verwijdert alle "untracked" bestanden en mappen.
 
Het eerste commando reset alle bestanden. Het tweede verwijdert alle "untracked" bestanden en mappen.
  
 +
<div class="mw-translate-fuzzy">
 
==Onze wijzigingen publiceren op GitHub==
 
==Onze wijzigingen publiceren op GitHub==
 +
</div>
  
 +
<div class="mw-translate-fuzzy">
 
="Push" de wijziging naar de "fork"=
 
="Push" de wijziging naar de "fork"=
 +
</div>
 
Nadat alle wijzigingen gemaakt zijn moeten we onze wijzigingen uploaden naar onze "repository" op GitHub. Hierna kunnen we een "pull request" maken met onze wijzigingen.
 
Nadat alle wijzigingen gemaakt zijn moeten we onze wijzigingen uploaden naar onze "repository" op GitHub. Hierna kunnen we een "pull request" maken met onze wijzigingen.
  
 +
<div class="mw-translate-fuzzy">
 
Het uploaden van de wijzigingen heet <tt>"push"</tt> in Git terminologie. Voordat we dat kunnen doen moeten we eerst iets anders belangrijks doen. We moeten een nieuwe "branch" aanmaken voor onze wijzigingen. (Een "branche" is een versie van ons project, weet u nog?) als we dit niet doen en we maken onze wijziging direct in de "staging branch" dan zal de eerste keer daar geen probleem mee zijn. Maar wanneer we wijzigingen voor de tweede keer maken en eerste wijzigingen zijn nog niet "gemerged" zullen al die wijzigingen ook als nieuwe wijzigingen beschouwd worden.
 
Het uploaden van de wijzigingen heet <tt>"push"</tt> in Git terminologie. Voordat we dat kunnen doen moeten we eerst iets anders belangrijks doen. We moeten een nieuwe "branch" aanmaken voor onze wijzigingen. (Een "branche" is een versie van ons project, weet u nog?) als we dit niet doen en we maken onze wijziging direct in de "staging branch" dan zal de eerste keer daar geen probleem mee zijn. Maar wanneer we wijzigingen voor de tweede keer maken en eerste wijzigingen zijn nog niet "gemerged" zullen al die wijzigingen ook als nieuwe wijzigingen beschouwd worden.
 +
</div>
  
 +
<div class="mw-translate-fuzzy">
 
Dus onze eerste commando dat we uitvoeren is het creëren van een nieuwe "branche". Het voorkomt het hier boven beschreven probleem.  
 
Dus onze eerste commando dat we uitvoeren is het creëren van een nieuwe "branche". Het voorkomt het hier boven beschreven probleem.  
 
Vervang "name-new-branche"  met de naam van uw nieuwe "branche". Deze naam moet kort zijn en kan alleen kleine letters en getallen bevatten. Gebruik '''GEEN''' spaties. In plaats van spaties kan de - (minus) gebruikt worden.
 
Vervang "name-new-branche"  met de naam van uw nieuwe "branche". Deze naam moet kort zijn en kan alleen kleine letters en getallen bevatten. Gebruik '''GEEN''' spaties. In plaats van spaties kan de - (minus) gebruikt worden.
 +
</div>
  
<source>
+
<syntaxhighlight lang="bash">
 
git checkout -b name-new-branch
 
git checkout -b name-new-branch
</source>
+
</syntaxhighlight>
  
 
De volgende commando verteld git dat alle wijzigingen goed zijn en klaar staan om te worden "commit".
 
De volgende commando verteld git dat alle wijzigingen goed zijn en klaar staan om te worden "commit".
  
<source>
+
<syntaxhighlight lang="bash">
 
git add --all
 
git add --all
</source>
+
</syntaxhighlight>
  
 
Het volgende commando voegt onze wijziging toe aan de "branche". Vervang het bericht door een korte beschrijving van de wijzigingen die gemaakt zijn. Deze beschrijving zal de titel zijn van de "pull request" die we gaan maken.
 
Het volgende commando voegt onze wijziging toe aan de "branche". Vervang het bericht door een korte beschrijving van de wijzigingen die gemaakt zijn. Deze beschrijving zal de titel zijn van de "pull request" die we gaan maken.
  
<source>
+
<syntaxhighlight lang="bash">
 
git commit -m "description"
 
git commit -m "description"
</source>
+
</syntaxhighlight>
  
 
Het laatste commando zal de wijzigingen uploaden ("push") naar onze "fork" Vervang alstublieft name-new-branche- door de naam van de "branche" die u een paar stappen eerder gekozen heeft.
 
Het laatste commando zal de wijzigingen uploaden ("push") naar onze "fork" Vervang alstublieft name-new-branche- door de naam van de "branche" die u een paar stappen eerder gekozen heeft.
  
<source>
+
<syntaxhighlight lang="bash">
 
git push origin name-new-branch
 
git push origin name-new-branch
</source>
+
</syntaxhighlight>
  
 +
<div class="mw-translate-fuzzy">
 
==Vergelijk "forks" en doe een "pull request"==
 
==Vergelijk "forks" en doe een "pull request"==
 +
</div>
 
Nadat onze wijziging ge"pusht" is naar GitHub kan u naar uw Joomla! CMS "fork" gaan.
 
Nadat onze wijziging ge"pusht" is naar GitHub kan u naar uw Joomla! CMS "fork" gaan.
  
 +
<div class="mw-translate-fuzzy">
 
=Meer informatie=
 
=Meer informatie=
 +
</div>
 
Omdat de "staging' versie van Joomla! op elk moment kan wijzigen is het erg nuttig om de mogelijkheid te hebben om onze "fork" up-to-date te kunnen houden. We kunnen dit doen door een "remote" toe te voegen aan onze project "fork".
 
Omdat de "staging' versie van Joomla! op elk moment kan wijzigen is het erg nuttig om de mogelijkheid te hebben om onze "fork" up-to-date te kunnen houden. We kunnen dit doen door een "remote" toe te voegen aan onze project "fork".
  
<source>
+
<syntaxhighlight lang="bash">
 
git remote add upstream https://github.com/joomla/joomla-cms.git
 
git remote add upstream https://github.com/joomla/joomla-cms.git
</source>
+
</syntaxhighlight>
  
 +
<div class="mw-translate-fuzzy">
 
We hebben nu een "remote" genaamd "upstream" toegevoegd. Met het volgende commando kunnen we Git laten zoeken naar nieuwe "commits" in de "staging branch" die we niet in onze "fork" hebben.
 
We hebben nu een "remote" genaamd "upstream" toegevoegd. Met het volgende commando kunnen we Git laten zoeken naar nieuwe "commits" in de "staging branch" die we niet in onze "fork" hebben.
 +
</div>
  
<source>
+
<syntaxhighlight lang="bash">
 
git pull upstream staging
 
git pull upstream staging
</source>
+
</syntaxhighlight>
  
 +
<div class="mw-translate-fuzzy">
 
De wijzigingen zijn nu alleen in onze lokale "fork" gemaakt. We kunnen ze met het volgende commando naar GitHub uploaden:
 
De wijzigingen zijn nu alleen in onze lokale "fork" gemaakt. We kunnen ze met het volgende commando naar GitHub uploaden:
 +
</div>
  
<source>
+
<syntaxhighlight lang="bash">
 
git push
 
git push
</source>
+
</syntaxhighlight>
  
 
<noinclude>
 
<noinclude>

Latest revision as of 12:03, 26 March 2024

Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎português do Brasil • ‎русский

Dit document geeft informatie over het bijdragen aan het Joomla! CMS met behulp van Git en Github. Als u graag op een eenvoudige wijziging (op een enkel bestand) wilt doen is het beter om deze documentatie te raadplegen: De Github UI gebruiken om een Pull Request in te dienen Als u meer complexe wijzigingen wilt doorvoeren of geïnteresseerd bent, lees dan vooral door!

Wat zijn Git en GitHub

Git is een gedistribueerd versiebeheersysteem. Het is een systeem dat wijzigingen in bestanden registreert en deze wijzigingen in een historisch bestand opslaat. U kunt altijd terug kijken in een eerdere versie van uw code en indien gewenst wijzigingen herstellen. Door het historisch archief is Git erg handig als je met veel mensen samenwerkt in hetzelfde project.

Dit is hoe GitHub gebruikt kan worden. GitHub is een website die bij het beheren van Gitprojecten op een visuele manier helpt. Als een eigenaar van een project kan je de code wijzigen en vergelijken met verschillende versies. Als een gebruiker van een project kunt u door het maken van een Pull Request een bijdrage leveren. Een Pull Request is een verzoek aan de eigenaar om wat code in het project te plaatsen. U biedt een stuk code aan (misschien de oplossing voor een bug) en hiermee vraagt u de projecteigenaar of hij deze code wilt gebruiken. Als de eigenaar het wil kan hij deze code samenvoegen (merge) in zijn project.

Joomla! gebruikt GitHub en Git om zijn code te beheren. Iedereen kan bijdragen aan de Joomla! software. De URL naar het Joomla! CMS Project op GitHub is: https://github.com/joomla/joomla-cms


Aan de slag

Aanmelden op GitHub en Git installeren

Als eerste moet u zich op GitHub registreren. Het is gratis en erg makkelijk. Volg de opgegeven stappen.

Nu u aangemeld bent kunt u Git installeren. De laatste versie van Git kan gevonden worden op http://git-scm.com. Download en start het installatiebestand. Git is een CLI (command line interface) programma. In het begin kan dit verwarrend en angstig zijn maar dit document zal u door het proces leiden.

Als u niet een geavanceerde gebruiker bent kunt u gewoon het installatiebestand starten en op de "Volgende" knop drukken totdat het programma geïnstalleerd is. Git zal uw systeem niet schaden. U kunt het later, indien gewenst, verwijderen zoals u dat met andere programma's ook doet.

Zodra we Git hebben geïnstalleerd kunnen we het programma genaamd "Git Bash" starten. Er zal een commandoregel geopend worden. We gaan Git onze naam en e-mailadres geven. Git zal deze gegevens gebruiken wanneer we een bijdrage leveren aan een project.

Met de volgende commandos kunnen we Git deze gegevens geven±

git config --global user.name "Your name"
git config --global user.email youremail@mail.com

In de bovenstaande commandos, en bij alle overige commandos die in deze documentatie staat, zal een nieuwe regel een nieuw commando zijn. Dus u typt de eerste regel, drukt op enter en begint met de tweede regel en drukt weer op enter.

We zijn nu klaar om Git te gebruiken en gaan verder met het instellen van onze testinstallatie.

Instellen van de testinstallatie

Voor onze testinstallatie hebben we een webserver programma nodig zodat we Joomla op onze computer kunnen installeren. Er zijn verschillende programma's die dit kunnen verzorgen zoals [1] en [2]. Download en installeer één van deze programma's.

Na de installatie van een programma als dat (in dit voorbeeld wordt MAMP gebruikt) kunnen we de laatste versie van Joomla! installeren. In ons geval is de laatste versie van Joomla! niet de stabiele versie. De laatste versie van Joomla! is de "staging branche" op GitHub. We gaan eerst GitHub wat beter uitleggen.

"Fork" en kloon Joomla!

Op GitHub kunt u verschillende projecten vinden, de zogenaamde "Repositories". In een project kunt u verschillende versies vinden. Zo'n versie heet een "branch". Joomla! heeft de volgende "branches":

  • "'Staging:"' Deze "branch" bevat de laatste bugfixes en nieuwe features van Joomla!
  • "'Master:"' Deze branche is de huidige stabiele versie van Joomla!
  • "'3.5-dev"' Deze branche bevat de bestanden voor Joomla! 3.5 welke, op moment van schrijven, nog niet de stabiele versie is.

Op onze testlocatie gaan we de Staging "branche" gebruiken maar als we deze "branche" direct gaan gebruiken dan hebben we een probleem. We kunnen deze "branche" niet aanpassen omdat we niet de eigenaar zijn.

We maken er een kopie van. Op GitHub heet dit een "Fork". Hier zijn we dan eigenaar van en kunnen het dus wijzigen. Na het wijzigen kunnen we onze "Fork" vergelijken met het originele project. Nu kunnen we een "Pull Request" aanmaken voor de wijzigingen die we hebben gemaakt. Daarover later meer.

U kunt van een "branche" een "Fork" maken door op de "Fork" knop te drukken op de Joomla! CMS Github Repository. Deze knop bevindt zich aan de rechter bovenkant van de pagina.

Github-fork-button.png

Nadat we de "Fork" hebben aangemaakt kunnen we Joomla! op onze lokale server installeren. Ga naar de map waar u de bestanden van de webserver kan uitvoeren. De meeste programma's gebruiken een map als htdocs. Zodra we in deze map zitten, klik op de rechtermuis toets en klik op: "Git Bash Here". De command line zal openen op deze locatie.

Type the following command to download the files from your Fork of the Joomla! CMS to your computer. Replace username with the username you are using on GitHub.

git clone https://github.com/username/joomla-cms.git

U zal Git moeten openen via de bovenstaande beschreven stappen om alle commando's uit te voeren die in deze documentatie worden gegeven. Onthoudt dat voor alle andere commando's in deze documentatie.

Als Git klaar is kunt u de browser starten en naar de installatie op uw localhost gaan. Meestal is de URL iets als: http://localhost/joomla-cms. U zult nu een standaard Joomla! installatie zien.

Composer and Node.js

To work with the Joomla clone you need to install two items of software:

  1. Composer - for managing Joomla's PHP dependencies. For help installing Composer, read the documentation at https://getcomposer.org/doc/00-intro.md.
  2. Node.js - for compiling Joomla's JavaScript and SASS files. For help installing Node.js, please follow the instructions available on https://nodejs.org/en/. Note you will need NodeJS 12 or higher to install Joomla.

Once installed:

  1. Run composer install from the root of the git repo. (You can add --ignore-platform-reqs if you don't have the PHP-LDAP locally installed and you don't need it.)
  2. Run npm ci from the root of the git repo. (Note you need npm 6.13.4 or higher for this. Run npm install -g npm@lts to upgrade your version of npm to the LTS version.)

Linux and OSX users can set up the following bash alias by placing the following inside the ~/.bashrc file:

alias jclean="rm -rf administrator/templates/atum/css; \
rm -rf templates/cassiopeia/css; \
rm -rf administrator/templates/system/css; \
rm -rf templates/system/css; \
rm -rf media/; \
rm -rf node_modules/; \
rm -rf libraries/vendor/; \
rm -f administrator/cache/autoload_psr4.php; \
rm -rf installation/template/css"
alias jinstall="jclean; composer install; npm ci"

Typ de volgende opdracht om de bestanden van de "Fork" van het Joomla! CMS naar uw computer te downloaden. Vervang Gebruikersnaam met de gebruikersnaam die u gebruikt op GitHub.


Installeer Joomla!

De installatie van Joomla! op onze lokale testinstallatie is bijna hetzelfde als een reguliere installatie. Er zijn twee kleine verschillen.

Bij de database-instellingen zijn de gebruikersnaam en wachtwoord standaard. Meestal is de gebruikersnaam root en het wachtwoord is ook root of er is geen wachtwoord. Als u nog steeds de database niet kan bereiken dan kunt u in de handleiding van uw lokale webserver kijken voor de gebruikersnaam en het wachtwoord.

Het laatste verschil is de laatste stap van de installatie. Normaliter moeten we de installation-map verwijderen om verder te gaan naar de backend of frontend van onze website. Voor de testinstallatie kunnen we dit overslaan en kunnen we direct naar de backend of front-end gaan. Verwijder de installation-map niet. Dit kan erg nuttig zijn bij het opnieuw installeren van Joomla!

Maak uw wijzigingen

Nu is het tijd om ons Joomla! bestand te wijzigen. Alle wijzigingen die gemaakt worden zullen worden geregistreerd door Git. Op elk moment kunt u via de commando git status zien welke bestanden gewijzigd zijn en welke niet worden "Untracked" (gemonitord). "Untracked" betekent dat het bestand op de locatie nieuw is voor Git.

Als u een vergissing heeft gemaakt of een bestand wilt herstellen, kunt u dit commando gebruiken:

git checkout path/to/file

Als u de wijzigingen die u hebt gemaakt wilt verwijderen, gebruik dan het volgende commando:

git checkout .
git clean -f -d

Het eerste commando reset alle bestanden. Het tweede verwijdert alle "untracked" bestanden en mappen.

Onze wijzigingen publiceren op GitHub

"Push" de wijziging naar de "fork"

Nadat alle wijzigingen gemaakt zijn moeten we onze wijzigingen uploaden naar onze "repository" op GitHub. Hierna kunnen we een "pull request" maken met onze wijzigingen.

Het uploaden van de wijzigingen heet "push" in Git terminologie. Voordat we dat kunnen doen moeten we eerst iets anders belangrijks doen. We moeten een nieuwe "branch" aanmaken voor onze wijzigingen. (Een "branche" is een versie van ons project, weet u nog?) als we dit niet doen en we maken onze wijziging direct in de "staging branch" dan zal de eerste keer daar geen probleem mee zijn. Maar wanneer we wijzigingen voor de tweede keer maken en eerste wijzigingen zijn nog niet "gemerged" zullen al die wijzigingen ook als nieuwe wijzigingen beschouwd worden.

Dus onze eerste commando dat we uitvoeren is het creëren van een nieuwe "branche". Het voorkomt het hier boven beschreven probleem. Vervang "name-new-branche" met de naam van uw nieuwe "branche". Deze naam moet kort zijn en kan alleen kleine letters en getallen bevatten. Gebruik GEEN spaties. In plaats van spaties kan de - (minus) gebruikt worden.

git checkout -b name-new-branch

De volgende commando verteld git dat alle wijzigingen goed zijn en klaar staan om te worden "commit".

git add --all

Het volgende commando voegt onze wijziging toe aan de "branche". Vervang het bericht door een korte beschrijving van de wijzigingen die gemaakt zijn. Deze beschrijving zal de titel zijn van de "pull request" die we gaan maken.

git commit -m "description"

Het laatste commando zal de wijzigingen uploaden ("push") naar onze "fork" Vervang alstublieft name-new-branche- door de naam van de "branche" die u een paar stappen eerder gekozen heeft.

git push origin name-new-branch

Vergelijk "forks" en doe een "pull request"

Nadat onze wijziging ge"pusht" is naar GitHub kan u naar uw Joomla! CMS "fork" gaan.

Meer informatie

Omdat de "staging' versie van Joomla! op elk moment kan wijzigen is het erg nuttig om de mogelijkheid te hebben om onze "fork" up-to-date te kunnen houden. We kunnen dit doen door een "remote" toe te voegen aan onze project "fork".

git remote add upstream https://github.com/joomla/joomla-cms.git

We hebben nu een "remote" genaamd "upstream" toegevoegd. Met het volgende commando kunnen we Git laten zoeken naar nieuwe "commits" in de "staging branch" die we niet in onze "fork" hebben.

git pull upstream staging

De wijzigingen zijn nu alleen in onze lokale "fork" gemaakt. We kunnen ze met het volgende commando naar GitHub uploaden:

git push


Categorie: Bug Squad/nl Bug Squad Categorie: Ontwikkeling/nl Ontwikkeling Categorie:GitHub/nl GitHub