Створюємо свій make файл

Опубліковано Пт, 24/07/2015 - 08:55

Погодьтеся, пам'ятати потрібні версії контрибних модулів, викачувати їх та застосовувати патчі вручну – досить стомлююче та трудомістке завдання. На допомогу при розв'язанні цієї проблеми і надходить Makefile. Makefile - файл, що дозволяє вам специфікувати версії ядра та модулів, які будуть завантажені для встановлення в проекті. Це дуже корисний і потрібний інструмент, що позбавляє рутини і прискорює розробку.

Зміст

Створення makefile

Ім'я makefile може бути будь-яким (важливо, щоб розширення було.make ), але зазвичай назву дають на ім'я проекту, на ім'я інсталяційного профілю або на ім'я модуля (MYPROJECT.make, MYINSTALLATIONPROFILE.make, MYMODULE.make) . Створити файл можна вручну, зібравши необхідну кількість версій модулів і записавши їх, але краще для цього використовуватиdrush. Найчастіше використовувані Drush команди:

  • drush make-generate - згенерує makefile і виведе його до командного рядка.
  • drush make-generate MYMPROJECT.make - згенерує makefile в MYPROJECT.make.

Крім цього у даної драш-команди є ще 4 настройки:--exclude-versions,--include-versions,--source,- -dev. Більш детальну інформацію про drush make-generate та про ці опції можна отримати за посиланням [1] , наведеним наприкінці статті у розділі "Додаткова інформація по статті".

Вказівка ​​версій модулів

Для вказівки версії модуля, йдемо на сторінку проекту, наприклад, для views https://www.drupal.org/project/views Допустимо, нас цікавить стабільна версія для друпала 7. На зображенні це 7 . Х-3.11, тобто. версія 3.11, 7.х у патчі вказувати не потрібно.

Цей запис означає, що буде завантажено модуль viewsверсії 3.11 та покладено в папку contrib. Якщо папка відсутня, вона буде створена. Що робити, коли потрібно скачати конкретну ревізію? Для отримання конкретної ревізії модуля запишемо наступне:

Як бути з дев версіями модулів? З дів версіями потрібно бути дуже обережними. Не виключено, що вони принесуть багато веселого у вигляді багів. Тим не менш дев версії модулів також можуть бути включені в makefile.

Застосування патчів

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

Складніша справа, якщо потрібного патчу просто немає. Тоді створюємо патч, створюємо issue на drupal.org і викочуємо свій патч, копіюємо посилання на нього та вставляємо у свій makefile. Якщо немає бажання робити все через друпал.орг або необхідно внести зміни, специфічні для вашого проекту, які не знадобляться спільноті, то дотримуємося наступної послідовності:

  • створюємо патч
  • створюємо папку для патчів, якщо ще не створена (зазвичай на шляху sites/all/modules/patches)
  • кладемо туди свій патч
  • вказуємо шлях до патчу в makefile щодо (!) тієї директорії, де лежить makefile.

Наприклад, якщо патч знаходиться на шляху sites/all/modules/patches/my-super-patch.patch, а makefile - в корені сайту, запис (для того ж модуля views) буде наступний:

Звертаю увагу на те, що якщо патч знаходиться не в дочірніх папках щодо makefile, запис виду