Жизненный цикл версий

From mediawiki.org
This page is a translated version of the page Version lifecycle and the translation is 77% complete.
Outdated translations are marked like this.

MediaWiki действует согласно модели развития «непрерывной интеграции», где изменения программного обеспечения на регулярной основе разворачиваются на веб-сайтах Wikimedia, таких, как Википедия.

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

Релиз-менеджер настоятельно рекомендует операторам вики-проектов подписаться на список рассылки mediawiki-announce, чтобы получать уведомления обо всех релизах и обеспечить свои вики-проекты самой свежей версией программного обеспечения. Эти объявления также размещаются в mediawiki-l и wikitech-l.

Текущие версии и их жизненный цикл

Для полной истории, см.: w:MediaWiki version history.
Версия Состояние Релиз Окончание
жизн. цикла
1.39.x (LTS) future long-term support version (2022-11) (2025-11)
1.38.x Стабильная версия (2022-06-02) (2023-06)
1.37.x наследуемая версия (legacy) (2021-11-18) ноябрь 2022
1.36.x отжившая версия (2021-05-28) (2022-06-03)
1.35.x (LTS) long-term support version (2020-09-25) сентябрь 2023
1.34.x отжившая версия (2019-12-19) (2020-11-30)

Версии, включенные в таблицу выше, которые помечены как устаревшие (obsolete) и версии, которые не перечислены в таблице, не получают каких-либо исправлений по безопасности. В них могут быть критические уязвимости безопасности и другие большие ошибки, включая угрозу возможности потери данных и/или повреждения. Менеджер по выпускам также строго рекомендовал использовать в работе (production) только версии, перечисленные выше как «стабильная версия» или «LTS».

Special:MyLanguage/MediaWiki 1.19Special:MyLanguage/MediaWiki 1.20Special:MyLanguage/MediaWiki 1.21Special:MyLanguage/MediaWiki 1.22Special:MyLanguage/MediaWiki 1.23Special:MyLanguage/MediaWiki 1.24Special:MyLanguage/MediaWiki 1.25Special:MyLanguage/MediaWiki 1.26Special:MyLanguage/MediaWiki 1.27Special:MyLanguage/MediaWiki 1.28Special:MyLanguage/MediaWiki 1.29Special:MyLanguage/MediaWiki 1.30Special:MyLanguage/MediaWiki 1.31Special:MyLanguage/MediaWiki 1.32Special:MyLanguage/MediaWiki 1.33Special:MyLanguage/MediaWiki 1.34Special:MyLanguage/MediaWiki 1.35Special:MyLanguage/MediaWiki 1.36Special:MyLanguage/MediaWiki 1.37Special:MyLanguage/MediaWiki 1.38Special:MyLanguage/MediaWiki 1.39
График выпуска MediaWiki
  •   Альфа-разработка
  •   Разработка выпуска
  •   Стабильный выпуск
  •   Выпуск с долгосрочной поддержкой

Политика выхода релизов

  • Каждый точечный выпуск (point release) будет включать обновленные файлы i18n, а также любые исправления ошибок. No new features will be back-ported to point releases and support does not necessarily include bundled extensions and skins in general.
  • Большой (major) релиз делается каждые шесть месяцев.
  • A minor release (including security patches, message translation back-ports, and general bugfixes) will be made every quarter.
  • Версия с долгосрочной поддержкой (LTS) будет создаваться каждые два года. Так получается перекрытие в один год в LTS-поддержке. Например, 1.23 поддерживалась до мая 2017 года. 1.27 выпущена за год до этого. Таким образом у людей есть год для перехода на новую версию LTS и 1 год, чтобы сделать переход.
  • Примечания к выпуску по-прежнему будут основой для отображения того, что изменилось. Из-за характера проекта, управляемого волонтёрами, невозможно с уверенностью сказать, что произойдёт в следующие 6-12 месяцев.

График релизов

Этот график является задачами, которые необходимо сделать до выпуска новой версии. Дата фактического выпуска дается здесь как T (для "времени" релиза) и суффикс -# (для “количества недель до выпуска”).

Связанная задача Задача
T - 7 Announce that the release branch will be created in one week. Ask people to make sure that anything needed to complete in-progress features is merged before then. Create "MW-X.XX-release" in Phabricator.
T - 6 Создать ветку для ядра и всех расширений в Gerrit.
T - 5 Применить метку X.XX-rc.0 и выпустить первоначальный релиз-кандидат.
T - 4 Собрать любые сообщения об ошибках и обобщить их в почтовой рассылке.
T - 3 Применить метку X.XX-rc.1 и выпустить второй релиз-кандидат. Любые новые расширения, которые предлагались для добавления в архив релиза, должны быть уже в нем к этому моменту. С этого момента никаких изменений в расширениях не производится.
T - 2 Собрать любые сообщения об ошибках, применить (merge) исправления, отменить новые, неполные возможности, которые были случайно включены. Применить метку X.XX-rc.2 и выпустить третий релиз-кандидат.
T - 1 Повторить предыдущие шаги. Использовать метку X.XX-rc.final для выпуска финального релиза. С этого момента не принимаются бэкпорты.
T Отметить (TAG) репозиторий меткой X.XX и сделать релиз.

Управление жизненным циклом расширений

Most MediaWiki installations include a significant number of extensions (Wikimedia wikis often have around 140). Managing the maintenance bug fixing of extensions and choosing the right version of an extension in cases where the HEAD development version relies on features not yet available in stable or oldstable MediaWiki core, can be challenging.

Поэтому разработчикам расширений настоятельно рекомендуется для каждой версии MediaWiki делать соответствующую версию расширения. (Для более подробной информации смотрите Совместимость#Расширения MediaWiki .) For extensions hosted in Wikimedia's git repos, such branches (with names such as REL1_30 for MediaWiki 1.30) are created automatically from master when a new MediaWiki version is branched (on the assumption that the extension master is compatible with MediaWiki master at all times). However, it's preferable for the extension maintainer to fix bugs not only in HEAD but also in the oldstable and stable versions (by backporting the fix to the old branches if necessary).

The goal of these rules is that people or organizations installing MediaWiki can rely on installing the newest release of a version and matching extensions by a simple method, e.g. for 1.20.x core by referring to REL1_20 in git. And it avoids tarballs and zip files with non-relevant and unpredictable names.

Since Version 1.36, MediaWiki only commits to supporting upgrades from two major long-term support releases (LTS) ago (see phab:T259771). Upgrades from older versions of MediaWiki will have to be performed in multiple steps.

См. также