Продолжаем рассматривать October CMS, вокруг которой мы в LOVATA построили разработку веб-проектов и в особенности интернет-магазинов. Сегодня мы подготовили для вас инструкцию по обновлению вашей текущей установки October до долгожданной версии 1.1.x с Laravel 6 “под капотом”.

Прошло больше года с момента выхода шестой версии фреймворка Laravel. А некоторое время назад и October CMS, для которой мы разработали e-commerce-платформу Shopaholic, выпустила долгожданный релиз под номером 1.1.0 с поддержкой Laravel 6. Как вы, возможно, заметили, принцип нумерации версий тоже изменился, он стал лучше отражать текущее положение вещей.

Предвосхищая возможные комментарии по поводу актуальной мажорной версии Laravel, поясняю, что до сих пор October CMS базировался исключительно на LTS-релизах. Это кажется разумным выбором в свете того факта, что ранее имели место случаи сломанной обратной совместимости даже при повышении очередной минорной версии фреймворка.

Переход на Laravel 6

Общие сведения

Ядро October претерпело много серьёзных изменений, что и стало причиной достаточно длительного ожидания. При этом релиз Laravel 6 отмечен как LTS (Long Term Support), что означает увеличенный жизненный цикл и длительное сохранение актуальности.

Изменились некоторые из системных требований:

  • минимально PHP 7.2, рекомендуется PHP 7.4 (версии, начиная с 7.0, также будут работать, но не смогут обновляться);

  • минимально SQLite 3.7.11, рекомендуется 3.8.8+.

Версия 1.1.0 была доступна в качестве тестового обновления с 16 августа, а релиз стабильной версии состоялся 7-го сентября.

Установка October CMS v1.1.x “с нуля”

Для того, чтобы установить “чистый” October версии 1.1.x воспользуйтесь установкой с помощью Composer:

  1. Выполнить команду composer create-project october/october ..

  2. Открыть файл config/cms.phpи активировать настройку disableCoreUpdates, которая отключит обновления ядра CMS через шлюз October: 'disableCoreUpdates' => true,.

  3. Завершить установку с помощью терминала, выполнив команду php artisan october:install.

Корректно установленный October версии 1.1.x в настройках админки не будет отображать свой номер.

Если после установки вы попытаетесь обновить ядро из админки не включив настройку disableCoreUpdates, то на неопределённый срок получите следующую картину.

Обновление October CMS v1.0.x

Для того, чтобы обновить существующую установку October до ветки 1.1.x она должна быть изначально установленной с помощью Composer. Если это не так, то наиболее беспроблемное обновление будет выглядеть следующим образом (при наличии October уже установленной с помощью Composer сразу переходите к шагу 6):

  1. Установить в отдельную директорию October CMS версии 1.469 с помощью команды composer create-project october/october . "1.0.469".

  2. Открыть файл config/cms.phpи активировать настройку disableCoreUpdates, которая отключит обновления ядра CMS через шлюз October: 'disableCoreUpdates' => true,.

  3. Скопировать папки pluginsи themesв эту директорию.

  4. Применить миграции с помощью команды php artisan october:up.

  5. Разрешить возникшие конфликты.

  6. Поднять версии зависимостей в composer.json:*

  7. "repositories": [
        {
          "type":"vcs",
          "url":"https://github.com/octoberrain/composer-merge-plugin"
        }
    ],
    "require": {
        "php": "^7.2",
        "october/rain": "~1.1",
        "october/system": "~1.1",
        "october/backend": "~1.1",
        "october/cms": "~1.1",
        "laravel/framework": "~6.0",
        "wikimedia/composer-merge-plugin": "dev-feature/composer-v2 as 1.5.0"
    },
    "config": {
        "preferred-install": "dist",
        "platform": {
            "php": "7.2.9"
        }
    },
    
  8. Если вы начинали с шага 6, следует убедиться, что шаг 2 выполнен.

  9. Обновить зависимости с помощью команды composer update.

  10. Применить миграции с помощью команды php artisan october:up.

*Обратите внимание на нестандартный wikimedia/composer-merge-plugin, это форк Люка Тауэрса (одного из основных разработчиков ядра October) для обеспечения совместимости с Composer v2.

Поздравляем, теперь вам доступны самые последние возможности платформы October CMS!

Затронутая функциональность

Как мы уже отмечали, переход на Laravel 6 глубоко затронул функциональность October CMS. Поэтому, некоторые части вашего кода также могут потребовать изменений:

Также не забудьте обновить все установленные плагины до актуальных версий. Например, если у вас установлен RainLab.Translate, убедитесь, что его версия не ниже 1.7.3. С более ранними версиями вы столкнетесь с проблемой его использования.

Новая система версионирования

Помимо поддержки Laravel 6, October перешла на новую, более подходящую для текущих реалий разработки этой  CMS. Основное изменение — теперь в номер версии будет включён номер минорного релиза.

October CMS по-прежнему в «вечнозеленой» стадии, где версии различаются лишь номерами сборок. Это является результатом соглашения команды разработчиков, принятого с самого первого дня работы над проектом.

Предыдущая LTS-версия Laravel имела достаточно долгий срок жизни. На данный момент её использует множество сайтов. Поэтому необходим способ и далее предоставлять обновления безопасности для этих веб-сайтов, особенно если они не могут обновиться до последней версии CMS или PHP.

В итоге October CMS перешла к новой схеме управления версиями. В которой мажорный номер (v1) останется равным 1, чтобы отразить приверженность стабильности обновлений. Минорный номер (v1.x) теперь будет увеличиваться при выпуске обновлений, которые могут повлиять на зависимости (например, обновления фреймворка Laravel). Номер патча (v1.0.x) будет по-прежнему отражать текущие обновления или сборки, но будет сбрасываться каждый раз при изменении дополнительной версии. 

Теперь будет три основных типа релизов этой CMS:

  • Develop — версия, находящаяся в активной разработке;

  • 1.0 — стабильный билд на базе Laravel 5.5 (ранее эта была ветка master);

  • 1.1 —  стабильный билд на базе Laravel 6.

Напоминаем, October CMS все ещё находится в «вечнозеленой» стадии. Поэтому даже после выхода минорного обновления все предыдущие версии лишаются обновлений, за исключением патчей критических уязвимостей безопасности. Так что мы рекомендуем всегда поддерживать вашу October CMS в наиболее актуальном состоянии.