Процес релізу

Дата оновлення перекладу 2022-12-13

Процес релізу

Цей документ пояснює процес, якого дотримується проект 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 project - це фреймворк з відкритим кодом, розвиток якого керований спільнотою. Заздалегідь не визначено і не прописано жодного плану. Кожний запит на функцію може бути розроблений або ні у наступних версіях, в залежності від спільноти. Члени Основної команди Symfony можуть допомогти просуватися вперед, якщо існує достатньо інтересу.

Повний період розробки будь-якої старшої або молодшої вресії триває шість місяців та ділиться на два етапи:

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

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

Tip

Дивіться Реліз Symfony, щоб дізнатися більше прро будь-яку конкретну версію.

Зміст

Починаючи з гілки 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).

Обидві версії мають однакові нові функції, але відрізняються за застарілими функціями. Найстарша версія (у цьому прикладі, 5.4) містить всі застарілі функції, в той час як нова версія (у цьому прикладі, 6.0) - їх всі видаляє.

Це дозволяє вам оновлювати ваші проекти до останньої молодшої версії (наприклад, 5.4), побачити всі повідомлення про старіння та виправити їх. Як тільки ви виправите всі старіння, ви можете оновитися до нової старшої версії (наприклад, 6.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 місяців і існує двомісячний період для оновлення. Компанії, які хочуть більшої стабільності, використовують старші версії: нова версія публікується кожні два роки і існує річний період для оновлення.