Tester les correctifs pour Joomla!
From Joomla! Documentation
Dans tous logiciels, il existe des erreurs qui doivent être réparées et c'est également le cas des logiciels Open Source comme Joomlaǃ. Le code source de Joomla! est disponible sur l'internet, le rendant accessible à tous. Toute personne rencontrant une anomalie ou un problème avec Joomla! peut le signaler. Un guide pour compléter une anomalie est disponible ici : Créer un rapport de bogues et d'anomalies. En outre, il est possible de signaler des bogues. Les bogues seront alors résolus et auront besoin d'être testés. Cette page vous explique comment il vous est possible de contribuer au Projet Joomla! en testant les solutions proposées. Il n'est pas nécessaire d'avoir des connaissances particulières en codage, il vous suffira de disposer d'une installation Joomla! pour les tests. Un guide de références rapides pour tester les correctifs pour Joomla! est disponible ici : Tester les correctifs pour Joomla! - Le guide de références rapides.
Le code principal Joomla!
Le code "Staging" de Joomla! est le code le plus récent en cours d'élaboration. Tous les correctifs d'anomalies et les nouvelles fonctionnalités proposées seront appliqués à ce code.
Vous pouvez trouver le code "Staging" de Joomla! sur : https://github.com/joomla/joomla-cms. C'est ce code qui doit être installé, en suivant les explications ci-dessous Préparer un test.
Le système de suivi d'anomalies (Issue-tracker)
Vous pouvez trouver le système de suivi d'anomalies pour Joomla! (Issue-tracker) à l'adresse : https://issues.joomla.org
La liste indique les éléments présents sur le système de suivi d'anomalies par défaut du plus récent au plus ancien, mais cet ordre peut être modifié en utilisant les filtres des "Outils de recherche". Tous les éléments du tracker, qui disposent d'un correctif, présentent un numéro de version à côté du titre.
- PR-staging : pour Joomla 3.9.x
- PR-4.0-dev: pour Joomla 4.0
Ces étiquettes changeront à l'avenir en suivant l'évolution des nouvelles versions et des anciennes.
Le statut est très important et voici quelques explications :
Nouveau - Immédiatement après qu'un problème soit signalé, il reçoit ce statut. Lorsque vous trouvez un bogue, créez une description de comment reproduire le bogue. Les personnes qui testent le problème savent alors comment tester le correctif.
Confirmé (Confirmed) - L'équipe du système de suivi des anomalies a été en mesure de reproduire l'anomalie. L'équipe de codage va alors chercher une solution à apporter.
En attente (Pending) - Une solution a été trouvée pour l'anomalie. Un correctif est fourni afin d'être testé. L'anomalie a besoin d'un ou plusieurs tests. Faites attention à l'étiquette à côté du titre, elle indique sur quelle version de Joomla! le correctif doit être appliqué.
Prêt à être appliqué (Ready to commit) - Le correctif a été testé avec succès et le code peut être validé.
Fermé (Closed) - Ce statut est réservé aux éléments qui ne nécessitent plus d'intervention.
Le filtrage est très utile dans le système de suivi d'anomalie. Le système de suivi peut également être utile afin de recevoir des notifications concernant une anomalie qui aurait été mise à jour.
Fondamentalement, vous commencez à tester une anomalie dès l'instant où elle est passée au statut "En attente".
Préparer un test
Pour commencer, le code maître doit être récupéré à partir du répertoire GitHub pour Joomlaǃ. Il existe différentes façons de récupérer ce code, mais, ici, nous n'évoquerons que la technique du téléchargement.
Créer un dossier
Pour commencer, il convient de créer un dossier sur votre serveur web local ou distant pour pouvoir y accéder via votre navigateur. Créez le dossier bugtesting et accédez à ce dossier via l'Explorateur ou le Finder.
Télécharger Joomla!
Rendez-vous sur : Joomla! sur GitHub et cliquez sur Download ZIP.
Vous obtenez alors une copie du code maître Joomla! dans un fichier au format ZIP. Décompressez le fichier dans un emplacement temporaire et un dossier nommé joomla-cms-staging va apparaître. À l'intérieur de ce dossier se trouve le code maître de Joomla. Allez dans joomla-cms-staging et copiez/collez le contenu dans le dossier bugtesting que vous avez créé à l'étape précédente.
After that you have to set up your system. For more information see https://docs.joomla.org/J4.x:Setting_Up_Your_Local_Environment/en.
Vous pouvez maintenant installer Joomla! en accédant à http://localhost/bugtesting
si vous utilisez un serveur local. Si vous utilisez un hébergement distant, accédez à l'URL appropriée pour le compte d'hébergement. Vous découvrirez alors le processus commun d'installation d'un site Joomla.
Pour les données d'exemple, choisissez : Test English (GB) sample data (données d'exemple de test en anglais).
Ceci est très important afin que tout le monde utilise les mêmes données de test !
Exceptionnellement, le dossier d'installation n'a pas à être supprimé. Ainsi, vous pouvez facilement tout réinstaller en cas de besoin.
Télécharger le testeur de correctifs (PatchTester)
Pour vous aider dans le processus de test des correctifs, une extension Joomla! a été développée. Elle s'appelle Patch Tester. Cette extension peut être téléchargée sur la Page de Patch Tester.
La page qui vous est présentée contient le Patch Tester 3.0.0 Release Candidate à utiliser sur les sites Joomla 3 et le Patch Tester 4.0.0 Release Candidate à utiliser sur les sites Joomla 4. Notez que les fichiers à télécharger sont cachés dans le menu déroulant Assets qui, lorsqu'il est cliqué, passe en revue les formats de fichiers à télécharger et le code source. Une fois téléchargé, il peut être installé via le gestionnaire d'extensions de Joomla.
Pour utiliser Patch Tester, un compte GitHub est nécessaire. En effet, il y a une limitation par défaut des demandes faites par des personnes anonymes et via le Patch Tester. Vous pouvez vous inscrire gratuitement à GitHub sur cette page.
Configurer le testeur de correctifs
Les détails du compte GitHub peuvent être saisis dans les paramètres du composant Patch Tester. Une fois Patch Tester installé, allez dans Composants -> Joomla! Patch Tester et cliquez sur le bouton des paramètres dans le coin supérieur droit. La page des paramètres s'affiche et affiche trois onglets. Le premier onglet se nomme Dépôt GitHub, vous pouvez choisir le dépôt que vous souhaitez utiliser. Par défaut, Joomla! CMS.
Dans le deuxième onglet nommé Authentification GitHub, vous pouvez saisir vos nom d'utilisateur et un jeton d'accès personnel en tant que mot de passe.
Après avoir renseigné les informations de votre compte, cliquez sur Enregistrer & fermer. Une fois de retour sur le Patch Tester cliquez sur Récupérer les données, dans le coin en haut à gauche.
Vous êtes maintenant prêt à commencer vos tests.
Trouvez dans le système de suivi d'anomalies celle que vous souhaitez tester ou utilisez le bouton : "J'ai de la chance". Vérifiez d'abord si vous pouvez reproduire l'anomalie. Si vous pouvez reproduire le problème, vous pouvez ensuite installer le correctif.
Appliquer un correctif
Dans le PatchTester vous pouvez retrouver l'anomalie sur laquelle vous travaillez par son titre (même partiel) ou l'ID. Le titre d'un rapport d'anomalie ressemble à ceci :
[#4308] - Correction des incohérences de déclenchement d'événements entraînant une API incomplète
À côté du # se trouve l'ID, et derrière le signe - se trouve le titre.
Une fois le correctif trouvé, cliquez sur le bouton bleu "Appliquer le Correctif". Vérifiez si l'anomalie a été corrigée et vérifiez également si vous rencontrez de nouvelles anomalies qui auraient été introduites dans le correctif.
Enregistrement des résultats de test
Après avoir effectué les tests, veuillez ajouter le résultat de vos tests dans la vue d'ensemble des tests (utilisez le bouton "Tester ceci"). Vous n'avez désormais besoin d'ajouter un commentaire que si vous avez des informations supplémentaires ou si le test échoue. Comme le Suivi ajoute automatiquement un commentaire indiquant que vous l'avez testé. Il convient également de noter qu'il est préférable de tester les correctifs dans un environnement multilingue (avec au moins 3 langues de contenu publiées), car des problèmes peuvent être déclenchés uniquement dans un tel environnement.
The new Test This button and how to use it
Retirer un correctif
Une fois qu'un patch a été testé, il n'est plus nécessaire et peut être retiré de votre environnement de test. Ainsi, vous effectuerez des tests sur un système toujours propre (Vous pouvez tester les patchs ensemble pour vous assurer qu'ils ne sont pas en conflit). Pour se faire, retournez sur le Testeur de patch et cliquez sur le bouton vert : Retirer le patch. Cela permettra de retirer le patch et vous pourrez tester l'anomalie suivante.
Tester les correctifs à l'aide de Git
Étant donné que le Patch Tester ne peut pas être utilisé pour tous les correctifs à tester, il arrive parfois que nous devions utiliser une autre méthode. Le Patch Tester remplace le fichier complet et n'applique pas uniquement les modifications du pull request, ce qui signifie que vous pourriez ne pas tester un problème dans un état isolé. Pour tester correctement un correctif avec uniquement les modifications apportées par ce dernier, nous devons utiliser Git. La raison en est que Git peut appliquer un correctif en ne prenant en compte que les changements contenus dans ce correctif. Git réalise cela en utilisant un fichier de différences (diff). Les pré-requis pour être en mesure d'utiliser la méthode suivante sont ː
- Joomlaǃ est installé en utilisant Git ;
- cURL est installé ;
Obtenir la différence (diff)
Obtenir une différence (diff) depuis une demande d'extraction est assez simple. Supposons que l'URL de la demande d'extraction soit
https://github.com/joomla/joomla-cms/pull/1452
Pour obtenir la différence (diff), tout ce que vous avez à faire est d'ajouter .diff après l'URL, de sorte qu'elle devienne
https://github.com/joomla/joomla-cms/pull/1452.diff
Tester la différence (diff)
Avant d'appliquer la différence (diff), vous pouvez d'abord vérifier si la différence peut être appliquée, une vérification de cohérence. Rendez-vous à la racine de votre installation Joomla et exécutez la commande suivante :
curl -L https://github.com/joomla/joomla-cms/pull/1452.diff | git apply --check
Application de la différence (diff)
Après que la différence (diff) a été testée et qu'il n'y a pas d'erreurs, la différence peut être appliquée en exécutant la commande suivante :
curl -L https://github.com/joomla/joomla-cms/pull/1452.diff | git apply
Avec la différence (diff) appliquée, vous pouvez exécuter vos tests et enregistrer vos résultats de test comme expliqué ci-dessus. Si nécessaire, vous pouvez appliquer plusieurs différences (diff) en même temps, tant qu'elles ne se chevauchent pas. Dans certains cas, cela est nécessaire lorsque plusieurs demandes d'extraction doivent être combinées pour être testées.
Annulation de la différence (diff)
Une fois que vous avez terminé les tests, vous pouvez nettoyer le système en annulant la différence (diff) à l'aide de la commande suivante :
curl -L https://github.com/joomla/joomla-cms/pull/1452.diff | git apply -R
Pour vérifier que tout est propre, vous pouvez exécuter :
git status
Vous devriez obtenir la notification :
Rien à valider, répertoire de travail propre
Dans le cas où le système n'est pas propre, vous pouvez obtenir une notification comme celle-ci :
Si vous constatez que des fichiers ont été modifiés mais que vous n'avez apporté aucune modification, vous pouvez nettoyer le système en utilisant
git reset --hard HEAD
Maintenant, tout devrait être propre.
Si vous êtes enthousiaste à l'idée de devenir testeur, essayez... Cela demande un petit effort pour tout mettre en place, mais une fois que c'est fait, c'est très facile et tellement amusant ! En outre, cela vous permet d'apporter votre contribution à Joomla!.
Paquets préconstruits (Prebuild packages)
Pour toutes les personnes qui testent les Pull Requests pour J4 : En bas de chaque nouvelle demande d'extraction (PR), il y a désormais un lien pour télécharger des packages de mise à jour contenant les modifications de cette demande d'extraction spécifique. Il se peut que vous deviez d'abord développer les détails des tests. Pour cela, cliquez sur Afficher toutes les vérifications.
Ensuite, vous verrez le lien pour le téléchargement. Cliquez sur Détails.
Le lien vous conduit vers une page de téléchargement pour cette demande d'extraction (PR), où vous pouvez télécharger des packages d'installation complets et des packages de mise à jour.
Cela vous permettra d'obtenir une copie du code Joomla 4.-dev, y compris le correctif, dans un fichier ZIP. Décompressez le fichier dans un emplacement temporaire. Un dossier nommé Joomla_[Version]+[Numéro de référence PR]-Development-Full_Package apparaîtra. Pour la version 4.0.0-beta1-dev et le numéro de la PR 28462, cela ressemblera par exemple à Joomla_4.0.0-beta1-dev+pr.28462-Development-Full_Package. Pour commencer, nous devons créer un dossier sur le serveur web local ou le compte d'hébergement qui peut être accessible via le navigateur. Créez le dossier bugtesting et accédez à ce dossier via l'Explorateur ou le Finder. Entrez dans le dossier Joomla_[Version]+[Nombre du Chemin]-Development-Full_Package et copiez le contenu complet dans le dossier bugtesting que vous avez créé à l'étape précédente.
Maintenant, vous pouvez installer Joomla en accédant à http://localhost/bugtesting si vous utilisez un serveur web local. Si vous en utilisez un sur un compte d'hébergement, accédez à l'URL appropriée pour le compte d'hébergement.
Pour tester une demande d'extraction (PR), les personnes qui n'ont pas de clone Git et qui n'ont pas Composer ou Node.js peuvent télécharger et installer le package d'installation complet. Si une PR modifie des scripts SQL de mise à jour ou d'autres éléments liés à la mise à jour, les testeurs peuvent installer une version 3.10-dev nightly ou 3.10 beta et utiliser le package de mise à jour de cette PR J4 pour tester la mise à jour vers J4.
Vidéos
Comment tester un correctif pour Joomla 4
Comment tester un correctif pour Joomla 3
- Première partie : Introduction
- Seconde partie : Configuration du serveur web Neard.
- Troisième partie : Test avec un exemple comportant une anomalie.
Comment tester les paquets préconstruits pour Joomla
Joomla a introduit une méthode récente visant à simplifier les tests de PR, ce qui sera bénéfique également pour les utilisateurs d'hébergement mutualisé.