Перейти до основного вмісту

Реліз і оновлення модулів

Шлях версії модуля від коміту до користувача.

Життєвий цикл

код у Git → тег версії → CI тест-гейт → збірка пакета → публікація в каталозі
→ користувачі бачать «Оновити» в магазині модулів → встановлення
  1. Розробка. Код модуля живе у власному Git-репозиторії. Версія — у module_info.php.
  2. Реліз. Реліз = бамп версії + тег + пуш. Пуш у гілку без тега — лише синхронізація коду, публікації не буде.
  3. Тест-гейт. CI проганяє лінт під цільові версії PHP і sanity-перевірки структури модуля. Збірка, що не пройшла гейт, у каталог не потрапляє.
  4. Збірка і публікація. Пакет (zip) з маніфестом файлів потрапляє в каталог сервера оновлень; каталог оновлює метадані версії.
  5. Доставка. Інсталяції бачать нову версію через API каталогу; оновлення — вручну з адмінки або автоматично (якщо збірку позначено безпечною для автооновлення).

Канали і безпека

  • Кожна збірка має прапорець auto_ok: чи можна її ставити автооновленням. Ризиковані/експериментальні збірки публікуються з auto_ok=false — лише ручне встановлення.
  • Перед застосуванням оновлення система робить бекап; невдале оновлення відкочується автоматично.

Модулі у складі ядра

Частина модулів каталогу для ECMS9 постачається у складі ядра і оновлюється разом із ним — окремих пакетів для них немає. У магазині модулів такі модулі позначені бейджем «Оновлюється з ядром ECMS9».

Чек-лист релізу

  • Версія піднята в module_info.php
  • Лінт під усі цільові версії PHP пройдено
  • Слухачі подій обгорнуті в try/catch і перевіряють module_enabled()
  • Немає ручних правок конфігів ядра (див. Структура модуля)
  • Changelog заповнено — його бачить користувач перед оновленням