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

From Joomla! Documentation

(Updating to match new version of source page)
 
(54 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
<noinclude><languages /></noinclude>
 
<noinclude><languages /></noinclude>
{{underconstruction}}
+
 
 +
<div class="mw-translate-fuzzy">
 
= Introduction =
 
= Introduction =
This document will provide information about contributing to the Joomla! CMS with help of Git and GitHub. If you like to made a simple change (one file only), it is easier to use this documentation: [[S:MyLanguage/Using the Github UI to Make Pull Requests|Using the Github UI to Make Pull Requests]]
+
</div>
If you like to add more complex changes or you're just interested in this, keep reading!
+
<div class="mw-translate-fuzzy">
 +
Cette documentation a vocation de proposer des informations sur la manière de contribuer au CMS Joomla! via Git et GitHub. Si vous souhaitez faire une simple modification (un seul fichier), il est préférable de consulter cet article : [[S:MyLanguage/Using the Github UI to Make Pull Requests|Utiliser l'interface GitHub pour créer des Pull Requests]].
 +
Si vous souhaitez réaliser des modifications plus complexes ou si vous êtes juste curieux, continuez ici votre lecture !
 +
</div>
  
 +
<div class="mw-translate-fuzzy">
 
== Git et GitHub c'est quoi ? ==
 
== Git et GitHub c'est quoi ? ==
 +
</div>
  
Git is a distributed version control system. It is a system that records changes in files and keeps these changes in a history file. You can always look back to an earlier version of your code and restore changes if you like. Because of the history archive, Git is very useful when you work with many people together on the same project.
+
Git est un système de contrôle et de distribution de version. C'est un système qui enregistre les modifications dans les fichiers et conserve ces changements dans un fichier historique. Vous pouvez toujours consulter en arrière dans une version antérieure de votre code et restaurer les modifications si vous le souhaitez. En raison de l'historique des archives, Git est très utile lorsque vous travaillez à plusieurs, ensemble sur le même projet.
  
Here is how GitHub can be used. [https://www.github.com GitHub] is an website that helps manage Git Projects in a visual way. As owner of a project you can change the code and compare different versions. As a user of the project you can contribute by making a Pull Requests. A pull request is a request to the owner to pull some code into the project. You're offering a piece of code (perhaps a solution for a bug) and asking if the Project owner would like to use it. If the owner likes it, he can merge (add) it to his project.
+
Voici comment utiliser GitHub. [https://www.github.com GitHub] est un site Web qui permet de gérer les projets Git de manière visuelle. En tant que propriétaire d'un projet, vous pouvez modifier le code et comparer différentes versions. En tant qu'utilisateur du projet, vous pouvez contribuer en faisant une demande d'extraction. Une demande d'extraction est une demande adressée au propriétaire pour extraire du code dans le projet. Vous proposez un morceau de code (peut-être une solution à un bogue) et demandez si le propriétaire du projet souhaite l'utiliser. Si le propriétaire l’aime, il peut le fusionner (ajouter) à son projet.
  
Joomla! uses GitHub and Git to maintain its code. Everyone can contribute Joomla! software. The URL to the Joomla! CMS Project on GitHub is: https://github.com/joomla/joomla-cms
+
Joomla! utilise GitHub et Git pour maintenir son code. Tout le monde peut contribuer au logiciel Joomla!. L'URL du projet Joomla! CMS sur GitHub est: https://github.com/joomla/joomla-cms
  
  
 +
<div class="mw-translate-fuzzy">
 
= Bien débuter =
 
= Bien débuter =
 +
</div>
 +
<div class="mw-translate-fuzzy">
 
== Inscrivez-vous à GitHub et installer Git ==
 
== Inscrivez-vous à GitHub et installer Git ==
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">
 +
Tout d'abord, vous devrez vous enregistrer sur [http://www.github.com GitHub]. C'est gratuit et facile à faire. Suivez simplement les étapes fournies.
 +
</div>
  
One we are signed up, we need to install Git. The latest version of Git can be found on http://git-scm.com. Download and open the installer. Git is an CLI (Command Line Interface) program. At the start this can be confusing and a bit scary but this document will lead you through the process.
+
<div class="mw-translate-fuzzy">
 +
Une fois que nous sommes inscrits, nous devons installer Git. La dernière version de Git est disponible sur http://git-scm.com. Téléchargez et ouvrez le programme d'installation. Git est un programme CLI (Command Line Interface ou Ligne de Commande). Au début, cela peut être déroutant et un peu effrayant, mais ce document vous guidera tout au long du processus.
 +
</div>
  
If you're not an advanced user, just run the installer and press the "next" buttons until the program is installed. Git won't damage your system. Later you can remove it just like any other program if you like.
+
<div class="mw-translate-fuzzy">
 +
Si vous n'êtes pas un utilisateur expérimenté, lancez simplement le programme d'installation et appuyez sur les boutons "Suivant" jusqu'à ce que le programme soit installé. Git n'endommagera pas votre système. Plus tard, vous pourrez le supprimer comme n'importe quel autre programme si vous le souhaitez.
 +
</div>
  
Once we installed Git, we open the program called "Git Bash." A command line will be opened. We're going to tell Git our name and email address. Git will use this information when we contribute to a project.
+
<div class="mw-translate-fuzzy">
With the following commands we give Git that information:
+
Une fois que nous avons installé Git, nous ouvrons le programme appelé "Git Bash". Une ligne de commande sera ouverte. Nous allons dire à Git notre nom et notre adresse email. Git utilisera ces informations lorsque nous contribuerons à un projet.
 +
</div>
 +
Avec les commandes suivantes, nous donnons cette information à Git:
  
<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 the above commands, and all other commands given in this documentation, each line is a new command. So you type the fist line, press enter and then type the second line and press enter.
 
  
We are now ready to use Git and go farther with setting up our test installation.
+
Dans les commandes ci-dessus et dans toutes les autres commandes données dans cette documentation, chaque ligne est une nouvelle commande. Donc, vous tapez la première ligne, appuyez sur Entrée, puis tapez la deuxième ligne et appuyez sur Entrée.
  
 +
<div class="mw-translate-fuzzy">
 +
Nous sommes maintenant prêts à utiliser Git et à aller plus loin dans la configuration de notre installation de test.
 +
</div>
  
=Setting up a test installation=
+
<div class="mw-translate-fuzzy">
For our test installation we need a Web server program so that we can install and run Joomla! on our computer. There are a lot of programs that can do that such as [https://www.mamp.info/ MAMP] and [https://www.apachefriends.org/ XAMPP]. Download an install one of them.
+
=Paramétrage d'une installation de test=
 +
</div>
 +
<div class="mw-translate-fuzzy">
 +
Pour notre installation de test, nous avons besoin d’un programme de serveur Web afin d’installer et d’exécuter Joomla! sur notre ordinateur. Beaucoup de programmes peuvent le faire, tels que [https://www.mamp.info/ MAMP] et [https://www.apachefriends.org/ XAMPP]. Télécharger une distribution de l'un d'eux.
 +
</div>
  
After the installation of such a program (I use MAMP in this documentation), we going to install the latest version of Joomla!. In our case, the latest version of Joomla! is not the last stable release. The last version of Joomla! is the staging branch on GitHub.
+
<div class="mw-translate-fuzzy">
First, let me explain a little bit more about GitHub.
+
Après l'installation d'un tel programme (j'utilise MAMP dans cette documentation), nous allons installer la dernière version de Joomla!. Dans notre cas, la dernière version de Joomla! n'est pas la dernière version stable. La dernière version de Joomla! est la branche de mise en scène sur GitHub. Tout d’abord, laissez-moi vous en expliquer un peu plus sur GitHub.
 +
</div>
  
== Fork and Clone Joomla! ==
+
<div class="mw-translate-fuzzy">
On GitHub you can find projects, so called Repositories. Inside a project you might find several versions. Such a version is called a Branch. Joomla! has the following branches:
+
== Fork et Cloner Joomla! ==
* '''Staging:''' This branch contains the latest bug fixes and new features of Joomla!
+
</div>
* '''Master:''' This branch is the current stable version of Joomla!
+
<div class="mw-translate-fuzzy">
* '''3.5-dev''' This branch contains the files for Joomla! 3.5, which is not stable at this writing.
+
Sur GitHub, vous pouvez trouver des projets, appelés Repositories ou dépôts. Dans un projet, vous pouvez trouver plusieurs versions. Une telle version s'appelle une branche. Joomla! a les branches suivantes:
 +
</div>
 +
* '''Staging:''' Cette branche contient les dernières corrections de bugs et les nouvelles fonctionnalités de Joomla!
 +
* '''Master:''' Cette branche est la version stable actuelle de Joomla!
 +
* '''3.5-dev''' Cette branche contient les fichiers pour Joomla! 3.5, qui n'est pas stable au moment d'écrire ces lignes.
  
On our test location we going to use the '''Staging''' branch but if we should use this branch directly we have problem. We cannot modify this branch because we are not the owner of it.
+
<div class="mw-translate-fuzzy">
We are going to make a copy of it. On GitHub this is called a Fork. We are the owner of that copy so we can modify it. After modifying we compare our fork with the original project. Then we can make a Pull Request for the changes we've made. More about that later.
+
Sur notre site de test, nous allons utiliser la branche '''Staging''' mais si nous devons utiliser cette branche directement, nous avons un problème. Nous ne pouvons pas modifier cette branche car nous n'en sommes pas les propriétaires.
You can Fork a branch by pressing the Fork button on the [https://github.com/joomla/joomla-cms Joomla! CMS Github Repository]. This button is located at the right top of the page.
+
</div>
 +
Nous allons en faire une copie. Sur GitHub, cela s'appelle Fork ou une fourche. Nous sommes les propriétaires de cette copie afin de pouvoir la modifier. Après modification, nous comparons notre fourche avec le projet original. Ensuite, nous pouvons faire une requête d'extraction pour les modifications que nous avons apportées. Nous en verrons plus à ce sujet plus tard.
 +
<div class="mw-translate-fuzzy">
 +
Vous pouvez créer une branche en cliquant sur le bouton Fork du bouton [https://github.com/joomla/joomla-cms Répertoire Joomla! Github CMS]. Ce bouton est situé en haut à droite de la page.
 +
</div>
 
[[File:Github-fork-button.png|none]]
 
[[File:Github-fork-button.png|none]]
  
After forking, we are going to install Joomla! on our local Web server. Go to the folder were you can run files on you Web server. Most of the program use a folder called <tt>htdocs</tt>. Once we are inside that folder, press the right mouse button an click on: "Git Bash Here". The command line will open for this location.
+
<div class="mw-translate-fuzzy">
 +
Après avoir bifurqué, nous allons installer Joomla! sur notre serveur Web local. Accédez au dossier dans lequel vous pouvez exécuter des fichiers sur votre serveur Web. La plupart des programmes utilisent un dossier appelé <tt>htdocs</tt>. Une fois que nous sommes dans ce dossier, appuyez sur le bouton droit de la souris et cliquez sur: "Git Bash Here". La ligne de commande s'ouvrira pour cet emplacement.
 +
</div>
  
Type the following command to download the files from your Fork of the Joomla! CMS to your computer. Please replace <i>username</i> with the username you are using on 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>
 +
 
 +
Pour toutes les commandes données dans cette documentation, vous devez ouvrir Git via les étapes décrites ci-dessus. Gardez cela à l'esprit pour les autres commandes de cette documentation.
 +
 
 +
<div class="mw-translate-fuzzy">
 +
Une fois que Git est prêt, ouvrez votre navigateur et accédez à l'installation sur votre hôte local. En général, l'URL ressemble à quelque chose comme: <tt>http://localhost/joomla-cms</tt>. Vous verrez maintenant le fichier Joomla! processus d'installation.
 +
</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>
  
For all commands given in this documentation, you have to open Git via the above described steps. Please remember that for other commands in this documentation.  
+
<span class="mw-translate-fuzzy">Tapez la commande suivante pour télécharger les fichiers de votre Fork, ou fourche, du logiciel Joomla! CMS sur votre ordinateur. Veuillez remplacer <i>nom d'utilisateur</i> par le nom d'utilisateur que vous utilisez sur GitHub.</span>
  
Once Git is ready, open your browser and go to the installation on your localhost. Usually the URL is something like: <tt>http://localhost/joomla-cms</tt>. You will now see the default Joomla! installation process.
 
  
 +
<div class="mw-translate-fuzzy">
 
== Installer Joomla! ==
 
== Installer Joomla! ==
The installation of Joomla! for our local test installation is almost the same as a regular installation. There are a two little differences.
+
</div>
 +
L'installation de Joomla! pour notre test local est presque identique à une installation normale. Il y a deux petites différences.
  
For the database settings, the password and username are default. Most often the username is <tt>root</tt> and the password is also <tt>root</tt> or there is no password. If you still can't connect to the database, look in the manual for your local Web server for the username and password.
+
<div class="mw-translate-fuzzy">
 +
Pour les paramètres de la base de données, le mot de passe et le nom d'utilisateur sont par défaut. Le plus souvent, le nom d'utilisateur est <tt>root</tt> et le mot de passe est également <tt>root</tt> ou il n'y a pas de mot de passe. Si vous ne parvenez toujours pas à vous connecter à la base de données, recherchez dans le manuel de votre serveur Web local le nom d'utilisateur et le mot de passe.
 +
</div>
  
The last difference is the final step of the installation. Normally we must delete the installation folder to go further to the back-end or front-end of Joomla!. For a test installation we can skip this part and go directly to the back-end or front-end. Don't remove the installation folder. It can be very useful when we have to install Joomla again.
+
La dernière différence est la dernière étape de l'installation. Normalement, nous devons supprimer le dossier d'installation pour aller plus loin dans l'administration  ou le site de Joomla!. Pour une installation test, nous pouvons ignorer cette partie et aller directement à l'administration ou au site. Ne supprimez pas le dossier d'installation. Cela peut être très utile lorsque nous devons réinstaller Joomla.
  
=Make Your Changes=
+
<div class="mw-translate-fuzzy">
Now it is time to made our file changes to Joomla!. All changes we make will be registered and monitored by Git. At any moment you can type the command <tt>git status</tt> to see which files are modified or untracked. Untracked means that the file at that location is new for Git.
+
=Faites vos modifications=
 +
</div>
 +
<div class="mw-translate-fuzzy">
 +
Il est maintenant temps de modifier notre fichier dans Joomla!. Toutes les modifications que nous apportons seront enregistrées et surveillées par Git. A tout moment, vous pouvez taper la commande <tt>git status</tt> pour voir quels fichiers sont modifiés ou non suivis. Untracked signifie que le fichier à cet emplacement est nouveau pour Git.
 +
</div>
  
If you made a mistake or you would like to restore a file, use this command:
+
Si vous avez commis une erreur ou si vous souhaitez restaurer un fichier, utilisez cette commande:
  
<source>
+
<syntaxhighlight lang="bash">
 
git checkout path/to/file
 
git checkout path/to/file
</source>
+
</syntaxhighlight>
  
If you like to remove all changes you made, use the following commands:
+
Si vous souhaitez supprimer toutes les modifications que vous avez apportées, utilisez les commandes suivantes:
  
<source>
+
<syntaxhighlight lang="bash">
 
git checkout .
 
git checkout .
 
git clean -f -d
 
git clean -f -d
</source>
+
</syntaxhighlight>
  
The first command resets all files. The second command removes untracked files and folders.
+
La première commande réinitialise tous les fichiers. La deuxième commande supprime les fichiers et les dossiers non suivis.
  
 +
<div class="mw-translate-fuzzy">
 
==Publier nos modifications sur GitHub==
 
==Publier nos modifications sur GitHub==
 +
</div>
  
=Push the Change to the Fork=
+
<div class="mw-translate-fuzzy">
After making our changes, we have to upload our changes to our repository on GitHub. After that, we can make a pull request with our changes.
+
=Poussez le changement dans la Fourche=
 +
</div>
 +
Après avoir effectué nos modifications, nous devons les télécharger dans notre répertoire sur GitHub. Après cela, nous pouvons faire une demande de tirage avec nos modifications.
  
Uploading changes is called <tt>push</tt> in Git terms. Before we can do that, we have to do something very important. We must create a new branch for our changes. (A branch is a version of our project, remember?) If we don't do that and made our change directly to the staging branch, the first time there won't be a problem. But if we made changes for the second time, and the change we made the first time are not merged yet, all these changes will registered too as new changes.
+
<div class="mw-translate-fuzzy">
 +
Le téléchargement des modifications s'appelle <tt>push</tt> ou une poussée en termes Git. Avant de pouvoir le faire, nous devons faire quelque chose de très important. Nous devons créer une nouvelle branche pour nos changements. (Une branche est une version de notre projet, vous en souvenez-vous?) Si nous ne le faisons pas et que nous apportons notre modification directement à la branche intermédiaire, la première fois, il n'y aura pas de problème. Mais si nous apportons des modifications pour la deuxième fois et que les modifications apportées la première fois ne sont pas encore fusionnées, toutes ces modifications seront également enregistrées en tant que nouvelles modifications.
 +
</div>
  
So the first command we are going to run will create a new branch. It will prevent the above described problem.
+
<div class="mw-translate-fuzzy">
Replace name-new-branch with the name of the new branch. This name must be short, and can only contain lower case letters and numbers. Do '''NOT''' use spaces. Instead of spaces, use - (minus).
+
Ainsi, la première commande que nous allons exécuter créera une nouvelle branche. Cela évitera le problème décrit ci-dessus.
 +
Remplacez name-new-branch par le nom de la nouvelle branche. Ce nom doit être court et ne peut contenir que des lettres minuscules et des chiffres. Ne '''PAS''' utiliser des espaces. Au lieu d'espaces, utilisez le - (moins).
 +
</div>
  
<source>
+
<syntaxhighlight lang="bash">
 
git checkout -b name-new-branch
 
git checkout -b name-new-branch
</source>
+
</syntaxhighlight>
  
The next command tells git that all made changes are good, and are ready to commit.
+
La commande suivante indique à git que toutes les modifications apportées sont correctes et prêtes à être validées.
  
<source>
+
<syntaxhighlight lang="bash">
 
git add --all
 
git add --all
</source>
+
</syntaxhighlight>
  
The following command adds our change to the branch. Please replace the message with a short description of your changes. This description will be the title of the pull request we are going to make.
+
La commande suivante ajoute notre modification à la branche. Veuillez remplacer le message par une brève description de vos modifications. Cette description sera le titre de la demande de tirage que nous allons faire.
  
<source>
+
<syntaxhighlight lang="bash">
 
git commit -m "description"
 
git commit -m "description"
</source>
+
</syntaxhighlight>
  
The final command will push (upload) the changes to our fork. Please replace name-new-branch with the name of the branch you made a few steps above.
+
La dernière commande va pousser (uploader) les modifications sur notre fourche. Veuillez remplacer name-new-branch par le nom de la branche dans laquelle vous avez effectué les étapes ci-dessus.
  
<source>
+
<syntaxhighlight lang="bash">
 
git push origin name-new-branch
 
git push origin name-new-branch
</source>
+
</syntaxhighlight>
  
==Compare Forks and Make a Pull Request==
+
<div class="mw-translate-fuzzy">
After pushing our change to GitHub, go to your fork of the Joomla! CMS.
+
== Comparer les Fourches et faire une Demande de Tirage ==
 +
</div>
 +
Après avoir poussé notre changement vers GitHub, allez à la fourche de votre Joomla! CMS.
  
=Extra information=
+
<div class="mw-translate-fuzzy">
Because the staging version of Joomla! can change any moment, it is very useful to have the possibility for keeping our fork up-to-date. We can do that by adding a remote to our forked project:
+
= Informations complémentaires =
 +
</div>
 +
Parce que la version mise en scène de Joomla! peut changer à tout moment, il est très utile d’avoir la possibilité de garder notre fourche à jour. Nous pouvons le faire en ajoutant une commande à distance à notre bifurcation du projet:
  
<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>
  
We now added a remote called "upstream". With the following command, Git will search for new contribution (commits) in the staging branch we don't have in our fork. If it found some, it will add them to our fork:
+
<div class="mw-translate-fuzzy">
 +
Nous avons maintenant ajouté un appel à distance "upstream". Avec la commande suivante, Git recherchera une nouvelle contribution (commits) dans la branche de préparation que nous n'avons pas dans notre fourche. S'il en a trouvé, il les ajoutera à notre fourche:
 +
</div>
  
<source>
+
<syntaxhighlight lang="bash">
 
git pull upstream staging
 
git pull upstream staging
</source>
+
</syntaxhighlight>
  
The changes are now only made on our local fork. To upload them to GitHub use the following command:
+
<div class="mw-translate-fuzzy">
 +
Les modifications ne sont maintenant effectuées que sur notre fourche locale. Pour les télécharger sur GitHub, utilisez la commande suivante:
 +
</div>
  
<source>
+
<syntaxhighlight lang="bash">
 
git push
 
git push
</source>
+
</syntaxhighlight>
  
 
<noinclude>
 
<noinclude>
[[Category: Bug Squad]]
+
[[Category: Bug Squad/fr]]
[[Category: Development]]
+
[[Category: Development/fr]]
[[Category:GitHub]]
+
[[Category:GitHub/fr]]
 
</noinclude>
 
</noinclude>

Latest revision as of 12:03, 26 March 2024

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

Cette documentation a vocation de proposer des informations sur la manière de contribuer au CMS Joomla! via Git et GitHub. Si vous souhaitez faire une simple modification (un seul fichier), il est préférable de consulter cet article : Utiliser l'interface GitHub pour créer des Pull Requests. Si vous souhaitez réaliser des modifications plus complexes ou si vous êtes juste curieux, continuez ici votre lecture !

Git et GitHub c'est quoi ?

Git est un système de contrôle et de distribution de version. C'est un système qui enregistre les modifications dans les fichiers et conserve ces changements dans un fichier historique. Vous pouvez toujours consulter en arrière dans une version antérieure de votre code et restaurer les modifications si vous le souhaitez. En raison de l'historique des archives, Git est très utile lorsque vous travaillez à plusieurs, ensemble sur le même projet.

Voici comment utiliser GitHub. GitHub est un site Web qui permet de gérer les projets Git de manière visuelle. En tant que propriétaire d'un projet, vous pouvez modifier le code et comparer différentes versions. En tant qu'utilisateur du projet, vous pouvez contribuer en faisant une demande d'extraction. Une demande d'extraction est une demande adressée au propriétaire pour extraire du code dans le projet. Vous proposez un morceau de code (peut-être une solution à un bogue) et demandez si le propriétaire du projet souhaite l'utiliser. Si le propriétaire l’aime, il peut le fusionner (ajouter) à son projet.

Joomla! utilise GitHub et Git pour maintenir son code. Tout le monde peut contribuer au logiciel Joomla!. L'URL du projet Joomla! CMS sur GitHub est: https://github.com/joomla/joomla-cms


Bien débuter

Inscrivez-vous à GitHub et installer Git

Tout d'abord, vous devrez vous enregistrer sur GitHub. C'est gratuit et facile à faire. Suivez simplement les étapes fournies.

Une fois que nous sommes inscrits, nous devons installer Git. La dernière version de Git est disponible sur http://git-scm.com. Téléchargez et ouvrez le programme d'installation. Git est un programme CLI (Command Line Interface ou Ligne de Commande). Au début, cela peut être déroutant et un peu effrayant, mais ce document vous guidera tout au long du processus.

Si vous n'êtes pas un utilisateur expérimenté, lancez simplement le programme d'installation et appuyez sur les boutons "Suivant" jusqu'à ce que le programme soit installé. Git n'endommagera pas votre système. Plus tard, vous pourrez le supprimer comme n'importe quel autre programme si vous le souhaitez.

Une fois que nous avons installé Git, nous ouvrons le programme appelé "Git Bash". Une ligne de commande sera ouverte. Nous allons dire à Git notre nom et notre adresse email. Git utilisera ces informations lorsque nous contribuerons à un projet.

Avec les commandes suivantes, nous donnons cette information à Git:

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

Dans les commandes ci-dessus et dans toutes les autres commandes données dans cette documentation, chaque ligne est une nouvelle commande. Donc, vous tapez la première ligne, appuyez sur Entrée, puis tapez la deuxième ligne et appuyez sur Entrée.

Nous sommes maintenant prêts à utiliser Git et à aller plus loin dans la configuration de notre installation de test.

Paramétrage d'une installation de test

Pour notre installation de test, nous avons besoin d’un programme de serveur Web afin d’installer et d’exécuter Joomla! sur notre ordinateur. Beaucoup de programmes peuvent le faire, tels que MAMP et XAMPP. Télécharger une distribution de l'un d'eux.

Après l'installation d'un tel programme (j'utilise MAMP dans cette documentation), nous allons installer la dernière version de Joomla!. Dans notre cas, la dernière version de Joomla! n'est pas la dernière version stable. La dernière version de Joomla! est la branche de mise en scène sur GitHub. Tout d’abord, laissez-moi vous en expliquer un peu plus sur GitHub.

Fork et Cloner Joomla!

Sur GitHub, vous pouvez trouver des projets, appelés Repositories ou dépôts. Dans un projet, vous pouvez trouver plusieurs versions. Une telle version s'appelle une branche. Joomla! a les branches suivantes:

  • Staging: Cette branche contient les dernières corrections de bugs et les nouvelles fonctionnalités de Joomla!
  • Master: Cette branche est la version stable actuelle de Joomla!
  • 3.5-dev Cette branche contient les fichiers pour Joomla! 3.5, qui n'est pas stable au moment d'écrire ces lignes.

Sur notre site de test, nous allons utiliser la branche Staging mais si nous devons utiliser cette branche directement, nous avons un problème. Nous ne pouvons pas modifier cette branche car nous n'en sommes pas les propriétaires.

Nous allons en faire une copie. Sur GitHub, cela s'appelle Fork ou une fourche. Nous sommes les propriétaires de cette copie afin de pouvoir la modifier. Après modification, nous comparons notre fourche avec le projet original. Ensuite, nous pouvons faire une requête d'extraction pour les modifications que nous avons apportées. Nous en verrons plus à ce sujet plus tard.

Vous pouvez créer une branche en cliquant sur le bouton Fork du bouton Répertoire Joomla! Github CMS. Ce bouton est situé en haut à droite de la page.

Github-fork-button.png

Après avoir bifurqué, nous allons installer Joomla! sur notre serveur Web local. Accédez au dossier dans lequel vous pouvez exécuter des fichiers sur votre serveur Web. La plupart des programmes utilisent un dossier appelé htdocs. Une fois que nous sommes dans ce dossier, appuyez sur le bouton droit de la souris et cliquez sur: "Git Bash Here". La ligne de commande s'ouvrira pour cet emplacement.

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

Pour toutes les commandes données dans cette documentation, vous devez ouvrir Git via les étapes décrites ci-dessus. Gardez cela à l'esprit pour les autres commandes de cette documentation.

Une fois que Git est prêt, ouvrez votre navigateur et accédez à l'installation sur votre hôte local. En général, l'URL ressemble à quelque chose comme: http://localhost/joomla-cms. Vous verrez maintenant le fichier Joomla! processus d'installation.

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"

Tapez la commande suivante pour télécharger les fichiers de votre Fork, ou fourche, du logiciel Joomla! CMS sur votre ordinateur. Veuillez remplacer nom d'utilisateur par le nom d'utilisateur que vous utilisez sur GitHub.


Installer Joomla!

L'installation de Joomla! pour notre test local est presque identique à une installation normale. Il y a deux petites différences.

Pour les paramètres de la base de données, le mot de passe et le nom d'utilisateur sont par défaut. Le plus souvent, le nom d'utilisateur est root et le mot de passe est également root ou il n'y a pas de mot de passe. Si vous ne parvenez toujours pas à vous connecter à la base de données, recherchez dans le manuel de votre serveur Web local le nom d'utilisateur et le mot de passe.

La dernière différence est la dernière étape de l'installation. Normalement, nous devons supprimer le dossier d'installation pour aller plus loin dans l'administration ou le site de Joomla!. Pour une installation test, nous pouvons ignorer cette partie et aller directement à l'administration ou au site. Ne supprimez pas le dossier d'installation. Cela peut être très utile lorsque nous devons réinstaller Joomla.

Faites vos modifications

Il est maintenant temps de modifier notre fichier dans Joomla!. Toutes les modifications que nous apportons seront enregistrées et surveillées par Git. A tout moment, vous pouvez taper la commande git status pour voir quels fichiers sont modifiés ou non suivis. Untracked signifie que le fichier à cet emplacement est nouveau pour Git.

Si vous avez commis une erreur ou si vous souhaitez restaurer un fichier, utilisez cette commande:

git checkout path/to/file

Si vous souhaitez supprimer toutes les modifications que vous avez apportées, utilisez les commandes suivantes:

git checkout .
git clean -f -d

La première commande réinitialise tous les fichiers. La deuxième commande supprime les fichiers et les dossiers non suivis.

Publier nos modifications sur GitHub

Poussez le changement dans la Fourche

Après avoir effectué nos modifications, nous devons les télécharger dans notre répertoire sur GitHub. Après cela, nous pouvons faire une demande de tirage avec nos modifications.

Le téléchargement des modifications s'appelle push ou une poussée en termes Git. Avant de pouvoir le faire, nous devons faire quelque chose de très important. Nous devons créer une nouvelle branche pour nos changements. (Une branche est une version de notre projet, vous en souvenez-vous?) Si nous ne le faisons pas et que nous apportons notre modification directement à la branche intermédiaire, la première fois, il n'y aura pas de problème. Mais si nous apportons des modifications pour la deuxième fois et que les modifications apportées la première fois ne sont pas encore fusionnées, toutes ces modifications seront également enregistrées en tant que nouvelles modifications.

Ainsi, la première commande que nous allons exécuter créera une nouvelle branche. Cela évitera le problème décrit ci-dessus. Remplacez name-new-branch par le nom de la nouvelle branche. Ce nom doit être court et ne peut contenir que des lettres minuscules et des chiffres. Ne PAS utiliser des espaces. Au lieu d'espaces, utilisez le - (moins).

git checkout -b name-new-branch

La commande suivante indique à git que toutes les modifications apportées sont correctes et prêtes à être validées.

git add --all

La commande suivante ajoute notre modification à la branche. Veuillez remplacer le message par une brève description de vos modifications. Cette description sera le titre de la demande de tirage que nous allons faire.

git commit -m "description"

La dernière commande va pousser (uploader) les modifications sur notre fourche. Veuillez remplacer name-new-branch par le nom de la branche dans laquelle vous avez effectué les étapes ci-dessus.

git push origin name-new-branch

Comparer les Fourches et faire une Demande de Tirage

Après avoir poussé notre changement vers GitHub, allez à la fourche de votre Joomla! CMS.

Informations complémentaires

Parce que la version mise en scène de Joomla! peut changer à tout moment, il est très utile d’avoir la possibilité de garder notre fourche à jour. Nous pouvons le faire en ajoutant une commande à distance à notre bifurcation du projet:

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

Nous avons maintenant ajouté un appel à distance "upstream". Avec la commande suivante, Git recherchera une nouvelle contribution (commits) dans la branche de préparation que nous n'avons pas dans notre fourche. S'il en a trouvé, il les ajoutera à notre fourche:

git pull upstream staging

Les modifications ne sont maintenant effectuées que sur notre fourche locale. Pour les télécharger sur GitHub, utilisez la commande suivante:

git push