Опубликовал zzak 21-12-2013
Перевел: Vlad Bokov
После грядущего релиза Ruby 2.1.0 мы решили изменить политику версионирования для Ruby в пользу семантического версионирования.
Переход на новую систему будет осуществлен постепенно, чтобы сделать номера версий более детерминированными и предсказуемыми.
Изменения в политике версионирования
Данная система версионирования основывается на предложении системного администратора ruby-lang.org Hiroshi Shibata (@hsbt).
Схема номера версии
MAJOR
: увеличивается после нарушения обратной совместимости, несовместимой с MINOR- Зарезервировано для особых случаев
MINOR
: увеличивается каждый год на Рождество, возможна несовестимость APITEENY
: патчи безопасности и багфиксы, совместимые с текущим API- Возможно более, чем 10 (например
2.1.11
), выходит каждые 2-3 месяца.
- Возможно более, чем 10 (например
PATCH
: количество коммитов после последнегоMINOR
релиза (после этого сбрасывается до 0)
Схема веток
Мы продолжим поддерживать следующие ветки:
trunk
ruby_{MAJOR}_{MINOR}_{TEENY}
Совместимость API
Следующие характерные изменения будут считаться несовместимыми,
увеличивая MINOR
версию:
- удаление возможностей низкоуровнего С API;
- обратно-несовместимые изменения или добавления.
Совместимость ABI
ABI будет представлен следующей схемой: {MAJOR}.{MINOR}.0
Мы будем стараться поддерживать совместимость ABI в рамках одного MINOR
релиза, так что TEENY
будет зафиксировано на значении 0
.
Ссылки
Для получения дальнейшей информации по версионированию посетите:
- Введение в схему семантического версионирования и ветвления (EN)
- Принятие предложения (EN)
- Принятие предложения (JP)
Благодарности
Хотелось бы лично поблагодарить всех, кто принимал участие в дискуссии. Каждый наш шаг приближает нас к более стабильному и эффективному Ruby.