Як ви вносите патчі до ядра Drupal?


10

Який належний процес внесення патчів до ядра Drupal?

Скажімо, я знайду помилку в ядрі Drupal, виправляю її та створюю виправлення . Як я можу подати його?

Якщо помилка в Drupal 7, чи потрібно також її виправляти в Drupal 8 та надсилати два виправлення? Чи це стосується також помилок / удосконалень документації?

Чи всі патчі також вимагають одиничного тесту?


3
На даний момент я шукаю відповіді, припускаючи, що у мене вже є обліковий запис на drupal.org, знаю, як користуватися git, знати, як перевірити ядро, і знати, як створити git-патчі. Коли ми отримаємо хороші відповіді, ми можемо анотувати або додати відповідь, щоб окреслити цей процес.
mpdonadio

Оскільки це відповідь на проблему, яку підтримує основний сервер , піднята на meta.drupal.stackexchange.com/questions/2325 , повідомлення про пост буде застосовано. Нам потрібен гарний підсумок процесу, особливо щодо вищезазначених питань. Відповіді, які просто посилаються на інші сторінки, будуть знімані та / або видалені. Я сподіваюся, що це питання послужить джерелом, на який ми можемо вказати користувачам DA, коли вони знайдуть проблему з core.
mpdonadio

Відповіді:


6

Якщо помилка в Drupal 7, чи потрібно також її виправляти в Drupal 8 та надсилати два виправлення?

Якщо помилка присутня у версії, що розробляється (у цьому випадку Drupal 8) та попередній версії (Drupal 7), помилку слід спочатку виправити в розробленій на даний момент версії, а потім у попередній (ій) версії (іх).

Якщо помилка відсутня в останній розробленій версії, наприклад, тому, що помилка призначена для функції, яка була видалена, або яка вже була змінена, то патч слід надати для версії до розробленої в даний час.

Виконаний робочий процес:

  • Спочатку патч створюється та надсилається на огляд для останньої версії, навіть якщо вона ще розробляється (наприклад, у випадку з Drupal 8)
  • Після того, як цей патч застосовано до Drupal, патч, який застосовується для попередньої версії, створюється та надсилається на огляд

Ви можете створити патчі для двох версій Drupal одночасно, але оскільки патч для останньої версії Drupal може вимагати змін, краще працювати над патчем для розробленої в даний час версії, ніж працювати над двома різними патчами, які обом потрібно бути зміненим.

Дивіться також: Backport політики .

Чи це стосується також помилок / удосконалень документації?

Так. Також у цьому випадку, якщо в даний час розроблена версія видалила функцію / метод, на який посилається документація, то патч потрібно надати для попередньої версії.

Чи всі патчі також вимагають одиничного тесту?

Якщо патч призначений для документації, він не вимагає тестів. Тестовий бот, який працює на http://qa.drupal.org, перевіряє код Drupal після застосування патчу; якщо патч вводить синтаксичні помилки (наприклад, тому, що коментар закритий перед необхідним), тестовий бот повідомить про помилку щодо патча перед запуском тестів.

Якщо патч призначений для нової функції, тести необхідні.

Якщо виправлення потребує виправлення помилки, тести можуть вимагати від технічного обслуговування, якщо ще немає тесту, який перевіряє певну особливість. Тест, як правило, необхідний, щоб уникнути повторного введення однієї і тієї ж помилки при зміні одного і того ж коду. Якщо помилка - це лише змінна, яка ініціалізується, але ніколи не використовується з функції / методу, то шанси на тести не потрібні.


Чи може однаковий випуск містити виправлення для декількох основних версій?
mpdonadio

1
Якщо проблема стосується декількох версій, вона може містити виправлення для кожної зацікавленої версії.
kiamlaluno

Чи завжди так, коли спочатку подається патч D8, а потім версія D7? Або є випадки, коли подання обох одночасно підходить?
mpdonadio

Ви можете надіслати патчі для двох різних версій, але перший патч застосовується для останньої версії. Краще створити спочатку патч для більш нової версії, оскільки патч може вимагати змін.
kiamlaluno

3

Кожна сторінка проекту на drupal.org вгорі має вкладку "Контроль версій". Він дає не лише чудовий огляд усіх параметрів сховища коду для конкретного проекту, всі приклади команд git також розроблені для проекту. Ви можете навіть інтерактивно змінити його на конкретну версію.

Для ядра Drupal ви знайдете цю сторінку на http://drupal.org/project/drupal/git-instructions

Потім, коли ви створили свій патч, ви просто додаєте файл патча до проблеми, яка пояснює, що ви робите.

Дві важливі речі, які слід зазначити, - це переконатися, що патч закінчується ".patch" та встановити статус "Огляд потреб". Це так, що тестова робота помітить це і автоматично запустить свій тест.

Новий код завжди повинен супроводжуватися тестами .

Зауважте, що це можливо, щоб вимкнути проекти, а деякі -. Для Drupal core він включений, хоча тому всі виправлення будуть протестовані.

Докладніше можна знайти на веб- сайті http://drupal.org/contribute/development .


Це вдалий старт.
mpdonadio
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.