Политика поддержки (версий)

Поддержка фреймворка Rails делится на четыре группы: новые особенности, исправления программных ошибок, проблемы безопасности и серьезные проблемы безопасности. Они обрабатываются следующим образом, все версии, кроме релизов безопасности, в формате X.Y.Z.


1. Управление версиями

Rails придерживается смещения версий semver:

Патч Z

Только исправления программных ошибок, никаких изменений в API, никаких новых особенностей. За исключением случаев, когда это необходимо для исправления безопасности.

Второстепенное число Y

Новые особенности, могут содержать изменения API (выступать в качестве главных версий Semver). Существенные изменения сочетаются с уведомлениями об устаревании в предыдущем второстепенном или главном релизе.

Главное число X

Новые особенности, скорее всего, будут содержать изменения API. Отличие главного релиза Rails от второстепенного в количестве существенных изменений, и он обычно зарезервирован для особых случаев.

2. Новые особенности

Новые особенности добавляются только в ветвь main и не будут доступны в промежуточных релизах.

3. Исправление ошибок

Только последние серии релизов будут содержать исправления программных ошибок. Исправления ошибок обычно добавляются в ветку main, и бэкпортируются в ветку x-y-stable последних серий релизов, если есть действительная необходимость. Когда достаточное количество исправлений ошибок добавлено в ветку x-y-stable, из них создается новый патч-релиз. Например, теоретический патч-релиз 1.2.2 будет создан из ветки 1-2-stable.

В особых случаях, когда кто-то из Core Team соглашается поддерживать больше серий, они включаются в список поддерживаемых серий.

В настоящее время поддерживаются серии: 7.1.Z.

4. Проблемы безопасности

Текущая серия релизов и последняя из предыдущих будут получать патчи и новые версии в случае проблем с безопасностью.

Эти релизы создаются через применения патчей безопасности в последнюю выпущенную версию. Затем патчи включаются в конец ветки x-y-stable. Например, теоретический релиз безопасности 1.2.2.1 будет построен из 1.2.2, а затем добавлен в конец 1-2-stable. Это означает, что релизы безопасности легко апгрейднуть, если использовать последнюю версию Rails.

В релизы безопасности будут включены только непосредственные патчи безопасности. Исправления для ошибок, не связанных с безопасностью, производные из патча безопасности, могут быть опубликованы в ветке релиза x-y-stable, и будут выпущены только как новый гем, в соответствие с политикой исправления ошибок.

В настоящее время поддерживаются серии: 7.1.Z, 7.0.Z, 6.1.Z.

5. Серьезные проблемы безопасности

Для серьезных проблем с безопасностью все релизы в текущей главной серии, а также последний релиз в главных предыдущих сериях будут содержать патчи и новые версии. Классификация проблем безопасности оценивается Core Team.

В настоящее время поддерживаются серии: 7.1.Z, 7.0.Z, 6.1.Z.

6. Неподдерживаемые серии релизов

Когда серия релиза больше не поддерживается, вы сами несете ответственность за программные ошибки и проблемы с безопасностью. Мы можем предоставить бэкпорт исправлений и опубликовать их в git, но новых релизов выпущено не будет. Если не хочется поддерживать собственные версии - произведите апгрейд до поддерживаемой версии.