Jak dodajesz łatki do rdzenia Drupala?

10

Jaki jest właściwy proces dodawania łat do rdzenia Drupala?

Powiedzmy, że znajduję błąd w rdzeniu Drupala, napraw go i utwórz łatkę . Jak to przesłać?

Jeśli błąd występuje w Drupal 7, czy muszę go również naprawić w Drupal 8 i przesłać dwie łatki? Czy dotyczy to również błędów / ulepszeń dokumentacji?

Czy wszystkie łatki wymagają również testu jednostkowego?

mpdonadio
źródło
3
Na razie szukam odpowiedzi przy założeniu, że mam już konto na drupal.org, wiem, jak korzystać z git, wiem, jak sprawdzić rdzeń i jak tworzyć łatki git. Po uzyskaniu dobrych odpowiedzi możemy dodać adnotację lub dodać odpowiedź w celu opisania tego procesu.
mpdonadio
Ponieważ jest to odpowiedź na problem zgłoszony przez głównego opiekuna na meta.drupal.stackexchange.com/questions/2325 , powiadomienie zostanie wprowadzone w życie. Potrzebujemy dobrego podsumowania tego procesu, szczególnie na temat powyższych pytań. Odpowiedzi, które zawierają jedynie linki do innych stron, zostaną ocenione i / lub usunięte. Mam nadzieję, że to pytanie będzie służyć jako zasób, do którego możemy wskazać użytkownikom DA, gdy znajdą problem z rdzeniem.
mpdonadio

Odpowiedzi:

6

Jeśli błąd występuje w Drupal 7, czy muszę go również naprawić w Drupal 8 i przesłać dwie łatki?

Jeśli błąd występuje w opracowywanej wersji (w tym przypadku Drupal 8) i poprzedniej wersji (Drupal 7), wówczas błąd powinien być najpierw naprawiony w aktualnie opracowanej wersji, a następnie w poprzednich wersjach.

Jeśli błąd nie występuje w najnowszej opracowanej wersji, na przykład dlatego, że błąd dotyczy funkcji, która została usunięta lub została już zmieniona, należy dostarczyć poprawkę do wersji przed aktualnie opracowaną.

Następujący przepływ pracy to:

  • Najpierw tworzona jest łatka i przesyłana do recenzji dla najnowszej wersji, nawet jeśli jest jeszcze w fazie rozwoju (tak jak w przypadku Drupala 8)
  • Po zastosowaniu tej poprawki do Drupala tworzona jest łatka, która dotyczy poprzedniej wersji i przesyłana do recenzji

Możesz tworzyć łatki dla dwóch wersji Drupal jednocześnie, ale ponieważ łatka dla najnowszej wersji Drupal może wymagać zmian, lepiej jest pracować nad łatką dla aktualnie opracowanej wersji, niż pracować na dwóch różnych łatkach, które wymagają zmienić się.

Zobacz także: Zasady dotyczące backportu .

Czy dotyczy to również błędów / ulepszeń dokumentacji?

Tak. Również w tym przypadku, jeśli aktualnie opracowana wersja usunęła funkcję / metodę, do której odnosi się dokumentacja, należy dostarczyć łatkę dla poprzedniej wersji.

Czy wszystkie łatki wymagają również testu jednostkowego?

Jeśli poprawka dotyczy dokumentacji, nie wymaga testów. Bot testowy działający na http://qa.drupal.org sprawdza kod Drupala po zastosowaniu łatki; jeśli łatka wprowadza błędy składniowe (na przykład ponieważ komentarz jest zamykany przed potrzebą), bot testowy zgłosi błąd dotyczący poprawki przed uruchomieniem testów.

Jeśli łatka dotyczy nowej funkcji, wymagane są testy.

Jeśli łatka ma naprawić błąd, wówczas mogą być wymagane testy od opiekunów, jeśli nie ma jeszcze testu sprawdzającego określoną funkcję. Test jest ogólnie niezbędny, aby uniknąć ponownego wprowadzenia tego samego błędu przy zmianie tego samego kodu w przyszłości. Jeśli błąd jest jedynie zmienną, która została zainicjowana, ale nigdy nie jest używana z funkcji / metody, istnieje prawdopodobieństwo, że testy nie są wymagane.

kiamlaluno
źródło
Czy ten sam problem może zawierać łatki dla wielu podstawowych wersji?
mpdonadio
1
Jeśli problem dotyczy więcej niż jednej wersji, może zawierać poprawki dla każdej zainteresowanej wersji.
kiamlaluno
Czy zawsze tak jest, gdy najpierw przesyłana jest łatka D8, a potem wersja D7? Czy są przypadki, w których jednoczesne przesłanie obu jest właściwe?
mpdonadio
Możesz przesyłać łaty dla dwóch różnych wersji, ale pierwsza poprawka dotyczy najnowszej wersji. Lepiej jest najpierw utworzyć łatkę dla nowszej wersji, ponieważ łatka może wymagać zmian.
kiamlaluno
3

Każda strona projektu na drupal.org ma zakładkę „Kontrola wersji” u góry. Daje nie tylko świetny przegląd wszystkich opcji repozytorium kodu dla konkretnego projektu, wszystkie przykłady poleceń git są również dostosowane do projektu. Możesz nawet interaktywnie zmienić go na określoną wersję.

Rdzeń Drupala znajduje się na stronie http://drupal.org/project/drupal/git-instructions

Następnie, po utworzeniu łatki, wystarczy po prostu dołączyć plik łatki do problemu, który wyjaśnia, co robi łatka.

Dwie ważne rzeczy, na które należy zwrócić uwagę, to upewnić się, że łatka kończy się na „.patch” i ustawić status na „Wymaga przeglądu”. Dzięki temu testbot to zauważy i automatycznie uruchomi test.

Nowym kodom zawsze muszą towarzyszyć testy .

Pamiętaj, że można to wyłączyć za pomocą projektów, a niektóre tak. W przypadku rdzenia Drupal jest on włączony, więc wszystkie łatki zostaną przetestowane.

Możesz znaleźć więcej na http://drupal.org/contribute/development .

tsvenson
źródło
To dobry początek.
mpdonadio