Версіонування Yii

Цей документ описує політику призначення версій Yii. Поточна стратегія призначення версій базується на ferver, це за думкою розробників є більш практичним та розумним рішенням, ніж використання semver (див. #7408 для довідки).

У колі головних розробників неодноразово підкреслювалась важливість зберігати зворотну сумісність релізів 2.0.x на 100%. Але це ідеалістичний план. Стаття про ferver доводить, що досягнути цього на практиці дуже важко, не зважаючи на те, використовується semver чи ні.

Загалом, політика призначення версій наступна:

Патч-релізи 2.x.Y

Патч-релізи, які мають бути на 100% зворотно сумісними. В ідеалі, вони містять лише виправлення помилок, що зменшує можливість порушення зворотної сумісності. На практиці, релізи починаючи з 2.0.x стали частішими та зазвичай містять невеликі доповнення, що дає можливість користувачам почати використовувати ці зміни раніше.

  • Підтримуються у гілці 2.x
  • Переважно містять виправлення помилок та невеликі покращення
  • Відсутні великі зміни та доповнення
  • 100%-ва зворотна сумісність, що гарантує оновлення без проблем. Виключенням можуть бути лише проблеми безпеки, які потребують порушення зворотної сумісності
  • Цикл релізу близько 1-2 місяців
  • Не має необхідності у пре-релізах (альфа, бета, реліз-кандидат)
  • Регулярно обʼєднуються з головною (master) гілкою (щонайменш раз у тиждень вручну)

Молодші (мінорні) релізи 2.X.0

Зворотно несумісні релізи, що містять великі доповнення та зміни, які можуть порушувати зворотну сумісність. Оновлення з ранніх версій може бути не простим, але у наявності повна інструкція по оновленню або навіть скрипт.

  • Розроблюються у головній (майстер) гілці
  • Переважно містять нові доповнення та виправлення помилок
  • Містять невеликі доповнення та виправлення помилок з патч-релізів
  • Можуть мати зворотно несумісні зміни, які записуються у файл UPGRADE-2.X.md
  • Цикл релізу близько 6-8 місяців
  • Необхідні пре-релізи: 2.X.0-alpha, 2.X.0-beta, 2.X.0-rc
  • Потребують маркетингових зусиль та публікування у головних новинах

Основні (мажорні) релізи X.0.0

Це наче 2.0 після 1.0. Такий перехід, вірогідніше, буде не частіше ніж кожні 3-5 років, у звʼязку з просуванням сторонніх технологій (наприклад, оновлення PHP з 5.0 до 5.4).

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