Процесс релиза

Дата обновления перевода 2023-01-19

Процесс релиза

Этот документ объясняет процесс, которому следует проект Symfony для разработки, релиза и обслуживания разных версий.

Релизы Symfony следуют стратегии Семантического версионирования, и публикуются в соответствии с основанной на времени модели:

  • Новая версия патча Symfony (например, 4.4.43, 5.4.10, 6.1.2) выходит примерно раз в месяц. Она содержит только исправления ошибок, поэтому вы можете безопасно обновлять свои приложения;
  • Новая младшая версия Symfony (например, 4.4, 5.4, 6.1) выходит каждые шесть месяцев: одна в мае, а вторая - в ноябре. Она содержит исправления ошибок и новые функции, но не имеет ломающих изменений, поэтому вы можете безопасно обновлять ваши приложения;
  • Новая старшая версия Symfony (например, 5.0, 6.0, 7.0) выходит каждые два года в ноябре нечётного года (например, 2019, 2021, 2023). Она может содержать нарушающие изменения, поэтому вам нужно внести некоторые изменения в ваши приложения перед обновлением.

Tip

Подпишитесь на уведомления Symfony , чтобы получать письмо, когда публикуется новая версия Symfony, или когда жизнь версии Symfony подходит к концу.

Разработка

Note

Проект Symfony - это фреймворк разработки с открытым источником, движемый сообществом. Заранее не прописано и не определено никаких маршрутов. Каждый запрос функции может быть или не быть разработан в следующих версиях, в зависимости от общества. Члены Основной команды Symfony могут помочь продвинуть процесс вперёд, если есть достаточно интереса.

Полный период разработки любой старшей или младшей версии длится шесть месяцев и делится на два этапа:

  • Разработка: Четыре месяца, чтобы добавить новые функции и улучшить существующие;
  • Стабилизация: Два месяца, чтобы исправить баги, подготовить релиз, и дождаться, пока подтянется вся экосистема Symfony (сторонние библиотеки, пакеты и проекты, использующие Symfony).

Во время этапа разработки, любая новая функция может быть отменена, если она не будет закончена вовремя, или если она недостаточно стабильна, чтобы быть включённой в текущий финальный релиз.

Tip

Смотрите Symfony Roadmap, чтобы узнать больше о любой конкретной версии.

Обслуживание

Начиная с ветки Symfony 3.x, количество младших версий ограничено до 5 на ветку (X.0, X.1, X.2, X.3 и X.4). Последняя младшая версия ветки (например, 4.4, 5.4) считается версией долгосрочной поддержки, а другие - стандартными версиями:

??? ?????? ?????????? ???? ??... ?????????? ?????? ???????????? ??...
??????????? 8 ??????? 8 ???????
???????????? ????????? (LTS) 3 ???? 4 ????

Note

После того, как активное содержание версии Symfony закончилось, вы можете получить профессиональную поддержку Symfony от SensioLabs, компании, спонсирующей проект Symfony.

Обратная совместимость

Наше Обещание обратной совместимости очень строгое, и позволяет разработчикам уверенно обновляться с одной младшей версии Symfony до другой.

Когда реализация функции не может быть заменена лучшей, не нарушая обратную совместимость, Symfony объявляет старую реализацию устаревшей, и добавляет рядом новую предпочитаемую. Прочтите документ соглашения, чтобы узнать больше о том, как в Symfony работают с устареваниями.

Эта политика устареваний также требует пользовательского процесса разработки для старших версий (5.0, 6.0, и т.д.). В таких случаях, Symfony одновременно разрабатывает две версии: новую старшую (например, 5.0) и последнюю версию предыдущей ветки (например, 4.4).

Обе версии имеют одинаковые новые функции, но отличаются по устаревшим функциям. Самая старая версия (в этом примере 4.4) содержит все устаревшие функции, в то время как новая версия (в этом примере 5.0) - их все удаляет.

Это позволяет вам обновлять ваши проекты до последней младшей версии (например, 4.4), увидеть все сообщения об устаревании и исправить их. Как только вы исправите все устаревания, вы можете обновиться до новой старшей версии (например, 5.0) без усилий, так как она содержит те же функции (единственная разница заключается в устаревших функциях, которые ваш проект больше не использует).

PHP-совместимость

Минимальная требуемая версия PHP определяется дла каждой старшей версии Symfony консенсусом между базовой командой и документируется, как часть технических требований для запуска приложений Symfony .

Во время поддержки жизненного цикла каждого релиза Symfony, все выпущенные версии PHP, включая новые старшие версии, будут поддерживаться. Таким образом, максимальной поддерживаемой версией PHP для поддерживаемого релиза Symfony является выпущенная позже всех, которая доступна публично.

Для релизов Symfony, которые больше не поддерживаются, последняя версия PHP во время EOL - это последняя поддерживаемая версия PHP. Более новые версии PHP могут как работать, так и нет.

Note

В качестве исключения из этого правила, повышение минимальной младшей версии PHP возможно для младшей версии Symfony, если это помогает исправить важные проблемы.

Обоснование

Этот процесс релиза был принят, чтобы добавить предсказуемости и прозрачности. Он обсуждался, основываясь на следующих целях:

  • Сократить цикл релиза (позволить разработчикам получать преимущества от новых функций быстрее);
  • Дать большую видимость разработчикам, используя фреймворк и проекты Symfony из открытых источников;
  • Улучшить опыт базовых вкладчиков Symfony: все знают, когда функция может стать доступна в Symfony;
  • Скоординировать хронологию Symfony с популярными PHP проектами, которые хорошо работают с Symfony, и с проектами, использующими Symfony;
  • Дать время экосистеме подхватить новые версии (авторов пакетов, авторов документации, переводчиков, ...).
  • Дать компаниям строгий и предсказуемый временной промежуток, на который они могут полагаться пи планировании разработки собственных проектов.

Шестимесячный период был выбран, так как в году получается два релиза. Это также даёт достаточно времени для работы над новыми функциями и позволяет неготовым функциям быть отложенными до следующей версии, не превращая ожидание в слишком длительное.

Режим двойного содержания был принят, чтобы сделать каждого пользователя Symfony счастливым. Быстрые пользователи, которые хотят работать с новейшими версиями, используют стандартную версию: новая версия публикуется каждые 6 месяцев и существует двухмесячный период для обновления.Компании, которые хотят большей стабильности, используют версии ВДП: новая версия публикуется каждые два года и существует годичный период для обновления.