Comment apportez-vous des correctifs au noyau Drupal?


10

Quel est le processus approprié pour apporter des correctifs au noyau Drupal?

Disons que je trouve un bogue dans le noyau Drupal, le corrige et crée un patch . Comment le soumettre?

Si le bogue se trouve dans Drupal 7, dois-je également le corriger dans Drupal 8 et soumettre deux correctifs? Est-ce que cela s'applique également aux bogues / améliorations de la documentation?

Tous les patchs nécessitent-ils également un test unitaire?


3
Pour le moment, je cherche des réponses en supposant que j'ai déjà un compte sur drupal.org, que je sais comment utiliser git, comment vérifier le core et comment créer des patchs git. Une fois que nous avons de bonnes réponses, nous pouvons annoter ou ajouter une réponse pour décrire ce processus.
mpdonadio

Comme il s'agit d'une réponse à un problème soulevé par un mainteneur principal sur meta.drupal.stackexchange.com/questions/2325 , l'avis de publication sera appliqué. Nous avons besoin d'un bon résumé du processus, en particulier sur les questions ci-dessus. Les réponses qui renvoient vers d'autres pages seront rétrogradées et / ou supprimées. J'espère que cette question servira de ressource que nous pourrons indiquer aux utilisateurs de DA lorsqu'ils trouvent un problème avec le noyau.
mpdonadio

Réponses:


6

Si le bogue se trouve dans Drupal 7, dois-je également le corriger dans Drupal 8 et soumettre deux correctifs?

Si le bogue est présent dans la version en cours de développement (dans ce cas Drupal 8) et la version précédente (Drupal 7), le bogue doit d'abord être corrigé dans la version actuellement développée, puis dans la ou les versions précédentes.

Si le bogue n'est pas présent dans la dernière version développée, par exemple parce qu'il concerne une fonction qui a été supprimée ou qui a déjà été modifiée, le correctif doit être fourni pour la version avant la version actuellement développée.

Le workflow qui est suivi est le suivant:

  • Tout d'abord, le patch est créé et soumis pour révision, pour la version la plus récente, même si elle est encore en cours de développement (comme dans le cas de Drupal 8)
  • Une fois ce correctif appliqué à Drupal, un correctif qui s'applique à la version précédente est créé et soumis pour examen

Vous pouvez créer des correctifs pour deux versions de Drupal en même temps, mais comme le correctif de la dernière version de Drupal peut nécessiter des modifications, il est préférable de travailler sur le correctif pour la version actuellement développée, que de travailler sur deux correctifs différents qui nécessitent tous deux de être changé.

Voir aussi: Politique de rétroportage .

Est-ce que cela s'applique également aux bogues / améliorations de la documentation?

Oui. Dans ce cas également, si la version actuellement développée a supprimé la fonction / méthode à laquelle la documentation se réfère, le correctif doit être fourni pour la version précédente.

Tous les patchs nécessitent-ils également un test unitaire?

Si le patch est destiné à la documentation, il ne nécessite pas de tests. Le bot de test exécuté sur http://qa.drupal.org vérifie le code Drupal après l'application du correctif; si le correctif introduit des erreurs de syntaxe (par exemple parce que le commentaire est fermé avant le besoin), le robot de test signalera une erreur sur le correctif avant l'exécution des tests.

Si le correctif concerne une nouvelle fonctionnalité, les tests sont requis.

Si le correctif doit corriger un bogue, alors les tests pourraient être exigés des responsables, s'il n'y a pas déjà un test vérifiant une fonctionnalité spécifique. Le test est généralement nécessaire pour éviter de réintroduire le même bogue lors de la modification future du même code. Si le bogue est simplement une variable qui est initialisée, mais jamais utilisée à partir d'une fonction / méthode, il est probable que les tests ne sont pas requis.


Le même problème peut-il contenir des correctifs pour plusieurs versions de base?
mpdonadio

1
Si le problème s'applique à plusieurs versions, il peut contenir des correctifs pour chaque version intéressée.
kiamlaluno

Est-ce toujours le cas lorsque le patch D8 est soumis en premier, puis la version D7? Ou y a-t-il des cas où soumettre les deux en même temps est approprié?
mpdonadio

Vous pouvez soumettre des correctifs pour deux versions différentes, mais le premier correctif s'applique à la version la plus récente. Il est préférable de créer d'abord le correctif pour la version la plus récente, car le correctif pourrait nécessiter des modifications.
kiamlaluno

3

Chaque page de projet sur drupal.org a un onglet "Contrôle de version" en haut. Il donne non seulement un excellent aperçu de toutes les options du référentiel de code pour le projet spécifique, mais tous les exemples de commandes git sont également adaptés au projet. Vous pouvez également le modifier de manière interactive en une version spécifique.

Pour Drupal core, vous trouverez cette page sur http://drupal.org/project/drupal/git-instructions

Ensuite, lorsque vous avez créé votre patch, il vous suffit de joindre le fichier de patch à un problème qui explique ce que fait votre patch.

Deux choses importantes à souligner sont de s'assurer que le patch se termine par ".patch" et de définir le statut sur "Needs review". Ceci afin que le testbot le remarque et exécute automatiquement son test.

Le nouveau code doit toujours être accompagné de tests .

Notez que cela est possible de désactiver par les projets et certains le font. Pour Drupal core, il est activé, donc tous les correctifs seront testés.

Vous pouvez en trouver plus sur http://drupal.org/contribute/development .


C'est un bon début.
mpdonadio
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.