Политика поддержки Ruby on Rails
Поддержка фреймворка Rails делится на три группы: новые особенности, исправления программных ошибок и проблемы безопасности.
Поддержка фреймворка Rails делится на три группы: новые особенности, исправления программных ошибок и проблемы безопасности. Они обрабатываются следующим образом, все версии, кроме релизов безопасности, в формате X.Y.Z.
Управление версиями
Rails придерживается смещенной версии semver:
Патч Z
Только исправления программных ошибок, никаких изменений в API, никаких новых особенностей. За исключением случаев, когда это необходимо для исправлений безопасности.
Второстепенное число Y
Новые особенности, могут содержать изменения API (выступают в качестве главных версий Semver). Существенные изменения сочетаются с уведомлениями об устаревании в предыдущем второстепенном или главном релизе.
Главное число X
Новые особенности, скорее всего, будут содержать изменения API. Отличие главного релиза Rails от второстепенного — в количестве существенных изменений, и он обычно зарезервирован для особых случаев.
Новые особенности
Новые особенности добавляются только в ветвь main и не будут доступны в патч-релизах.
Исправление ошибок
Второстепенные релизы будут получать исправления ошибок в течение одного года после первого релиза в своей серии. Например, если теоретическая версия 1.1.0 выпущена 1 января 2023 года, она будет получать исправления ошибок до 1 января 2024 года. После этого она будет считаться неподдерживаемой.
Исправления ошибок обычно добавляются в ветку main и бэкпортируются в ветку x-y-stable последней серии релизов, если есть достаточная необходимость. Когда достаточное количество исправлений ошибок добавлено в ветку x-y-stable, из неё создаётся новый патч-релиз. Например, теоретический патч-релиз 1.2.2 будет создан из ветки 1-2-stable.
Для неподдерживаемых серий исправления ошибок могут случайно попадать в стабильную ветку, но не будут выпускаться в официальной версии. Для неподдерживаемых версий рекомендуется указывать ваше приложение на стабильную ветку через Git.
Проблемы безопасности
Второстепенные релизы будут получать исправления безопасности в течение двух лет после первого релиза в своей серии. Например, если теоретическая версия 1.1.0 выпущена 1 января 2023 года, она будет получать исправления безопасности до 1 января 2025 года. После этого она достигнет конца своего жизненного цикла.
Эти релизы создаются путём взятия последней выпущенной версии, применения патчей безопасности и выпуска. Затем эти патчи применяются в конец ветки x-y-stable. Например, теоретический релиз безопасности 1.2.2.1 будет создан из 1.2.2, а затем добавлен в конец 1-2-stable. Это означает, что на релизы безопасности легко обновиться, если вы используете последнюю версию Rails.
В релизы безопасности будут включены только непосредственные патчи безопасности. Исправления для ошибок, не связанных с безопасностью, возникающие из патча безопасности, могут быть опубликованы в ветке релиза x-y-stable и будут выпущены только как новый гем в соответствии с политикой исправления ошибок.
Релизы безопасности нарезаются из последней ветки/тега релиза безопасности. В противном случае в релизе безопасности могли бы быть существенные изменения. Релиз безопасности должен содержать только изменения, необходимые для обеспечения безопасности приложения, чтобы приложениям было проще оставаться обновлёнными.
Серии релизов с истекшим жизненным циклом
Когда серия релизов достигает конца своего жизненного цикла, вы сами несёте ответственность за ошибки и проблемы безопасности. Мы можем предоставить бэкпорты исправлений и смержить их, однако новых версий выпущено не будет. Мы рекомендуем указывать ваше приложение на стабильную ветку через Git. Если вам неудобно поддерживать собственные версии, вам следует обновиться до поддерживаемой версии.
Расписание релизов
Мы стремимся выпускать версию с новыми особенностями каждые шесть месяцев. В редких случаях, когда за один год не было сделано ни одного релиза, мы продлим период поддержки предыдущего релиза до выхода следующего.
npm-пакеты
Из-за ограничений npm мы не можем использовать четвёртую цифру для релизов безопасности npm-пакетов, предоставляемых Rails. Это означает, что вместо эквивалентной версии гема 7.0.1.4 npm-пакет будет иметь версию 7.0.104.
Версия будет рассчитываться как X.Y.Z0A, где A — релиз безопасности.
Установка зависимостей для разработки
Это руководство раскрывает, как настроить среду для разработки ядра Ruby on Rails.
Апгрейд Ruby on Rails
В этом руководстве приведены шаги, которые необходимо выполнить, чтобы апгрейднуть приложение на новую версию Ruby on Rails. Эти шаги также доступны в отдельных руководствах по релизам.