Совместимость
MediaWiki стремится поддерживать значительную совместимость между версиями, а также с рядом современных и устаревших программ. В то же время, постоянно развивающаяся кодовая база и возможности последних разработок MediaWiki означают, что невозможно поддерживать совместимость с устаревшим программным обеспечением бесконечно.
Если вы хотите предложить изменения в поддерживаемых MediaWiki возможностях, вы можете подать запрос на комментарий на Phabricator.
Серверное программное обеспечение
В этом разделе представлен обзор программного обеспечения, необходимого на сервере для запуска MediaWiki.
PHP
Последняя стабильная вветвь MediaWiki (1.43) работает на PHP 8.1.0 и выше.
О предстоящих версиях см. в разделе Support policy for PHP .
Производственные серверы Wikimedia в настоящее время работают на PHP 7.4, и планирует обновление до PHP 8.1 в ближайшее время. Патчи для ядра MediaWiki тестируются на PHP 7.4 при создании, и на PHP 7.4 при слиянии. MediaWiki developers are encouraged to develop using the latest supported version of PHP. The MediaWiki Docker image, primarily used by developers, uses PHP 8.3 as of December 2024.
Если в дистрибутиве вашей ОС установлена неподдерживаемая версия PHP, вы можете воспользоваться репозиторием пакетов сообщества:
- Debian (Ubuntu): Sury
- RHEL (Fedora / Rocky / Oracle): Remi / RHEL 9 stream
- SUSE: openSUSE contributors
- Arch (Manjaro): el:archphp
- macOS (Homebrew): shivammathur
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
8.3.0+ | |||||||||||||||||||||||||||||||||||||||||||
8.2.0+ | |||||||||||||||||||||||||||||||||||||||||||
8.1.0+ | |||||||||||||||||||||||||||||||||||||||||||
8.0.0+ | |||||||||||||||||||||||||||||||||||||||||||
7.4.3+ | |||||||||||||||||||||||||||||||||||||||||||
7.3.19+ | |||||||||||||||||||||||||||||||||||||||||||
7.2.x | |||||||||||||||||||||||||||||||||||||||||||
7.1.x | |||||||||||||||||||||||||||||||||||||||||||
7.0.x | |||||||||||||||||||||||||||||||||||||||||||
5.6.x | |||||||||||||||||||||||||||||||||||||||||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
5.5.9+ | |||||||||||||||||||||||||||||||||||||||||||
5.5.0–5.5.8 | |||||||||||||||||||||||||||||||||||||||||||
5.4.x | |||||||||||||||||||||||||||||||||||||||||||
5.3.3+ | |||||||||||||||||||||||||||||||||||||||||||
5.3.2 | |||||||||||||||||||||||||||||||||||||||||||
5.2.3+ | |||||||||||||||||||||||||||||||||||||||||||
5.1.x | |||||||||||||||||||||||||||||||||||||||||||
5.0.x | |||||||||||||||||||||||||||||||||||||||||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
База данных
MediaWiki совместим с различными серверами баз данных. Однако рекомендуется использовать MySQL или MariaDB.
Использование любого другого программного обеспечения базы данных не рекомендуется для производственного использования. Поддержка отличается от версии к версии MediaWiki и варьируется от сомнительной до стабильной. MediaWiki предоставляет уровни абстракции базы данных для PostgreSQL и SQLite, которые, как правило, хорошо поддерживаются.
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MariaDB 10.3.0+ | |||||||||||||||||||||||||||||||||||||||||||
MariaDB 10.1.0+ | |||||||||||||||||||||||||||||||||||||||||||
MySQL 5.7.0+ | |||||||||||||||||||||||||||||||||||||||||||
MySQL 5.5.8+ | |||||||||||||||||||||||||||||||||||||||||||
MySQL 5.0.3+ | |||||||||||||||||||||||||||||||||||||||||||
MySQL 4.x | |||||||||||||||||||||||||||||||||||||||||||
MySQL 3.x | |||||||||||||||||||||||||||||||||||||||||||
SQLite 3.8.0+ | |||||||||||||||||||||||||||||||||||||||||||
SQLite 3.3.7+ | |||||||||||||||||||||||||||||||||||||||||||
SQLite 3+ | |||||||||||||||||||||||||||||||||||||||||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
PostgreSQL 10+ | |||||||||||||||||||||||||||||||||||||||||||
Postgres 9.4+ | |||||||||||||||||||||||||||||||||||||||||||
Postgres 9.2+ | |||||||||||||||||||||||||||||||||||||||||||
Postgres 8.3+ | |||||||||||||||||||||||||||||||||||||||||||
Postgres 8.1 | |||||||||||||||||||||||||||||||||||||||||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.11 | 1.12 | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 | 1.36 | 1.37 | 1.38 | 1.39 | 1.40 | 1.41 | 1.42 | 1.43 | master |
Обновление
Web-сервер
MediaWiki хорошо совместим со всеми основными веб-серверами, которые могут вызывать совместимую версию PHP. Apache - наиболее используемый и протестированный. Nginx также является хорошим выбором.
Расширения и стили оформления MediaWiki
До тех пор, пока расширение или стиль оформления поддерживается должным образом, главная ветвь расширения должна быть совместима с главной ветвью MediaWiki. Для определения совместимости со старыми версиями MediaWiki существуют две общие политики, используемые расширениями и стилями оформления:
- master (ключ: master): мастер-ветвь расширения или стиля оформления совместима как с текущей, так и со старыми версиями MediaWiki. Хаки обратной совместимости добавляются в исходный код расширения или стиля оформления по мере необходимости.
- ветви релиза (ключ: rel): Для каждого релиза MediaWiki существует соответствующая ветвь в расширении или стиле оформления. Поэтому например, если вы используете MediaWiki 1.43, вам следует использовать ветвь расширения REL1_43 или стиля оформления.
- Ветви релизов долгосрочной поддержки (ключ: ltsrel): Для каждого выпуска MediaWiki, который является выпуском долгосрочной поддержки (см. Политика выпуска жизненного цикла версий), существует соответствующая ветка в расширении или стиле оформления. Поэтому например, если вы используете MediaWiki 1.43, вам следует использовать ветвь расширения REL1_43. Если вы используете не-LTS версию MediaWiki, обычно вам нужно использовать ветку расширения или стиля оформления для предыдущей LTS версии. Например, вики MediaWiki 1.34, использующие расширение или стиль оформления ltsrel, обычно используют ветвь REL1_31 этого расширения или стиля оформления. Однако совместимость не гарантируется.
Поле политика совместимости инфоблока Extension сообщает, какая политика используется данным расширением. Для указания информации используйте соответствующие ключи, указанные выше.
Некоторые расширения могут иметь более специфические политики совместимости, например:
Браузеры
Общая информация
Каждая веб-страница запускается в Базовом режиме, в котором отображается только HTML. Можно предположить, что CSS будет полезен для визуального восприятия и должен использоваться для презентации. The Modern layer (subdivided into support grades A, C, and X) defines optional enhancements and interactions written in client-side JavaScript. This layer may fail to load, arrive later, or not at all, including in modern browsers. This depends on various circumstances. To learn more, refer to MediaWiki Engineering guidelines.
Требования JavaScript для слоя «Modern» реализованы через набора тестов функций в модуле startup, вдохновленные подходом "cutting the mustard". The modern layer currently requires JavaScript version ES6 (ES2015). For MediaWiki developers, this means that you should not use syntax from later versions of JavaScript. This is enforced through ESLint rules in eslint-config-wikimedia.
В мире постоянно растёт число различных веб-браузеров. Слишком много, чтобы активно тестировать и поддерживать каждый из них. Для контроля наших практик поддержки браузеров, у нас существуют три уровня поддержки. Каждый уровень представляет отдельную категорию браузеров.
На практике единственное различие между классами браузеров - это наши инвестиции в тестирование и поддержку. Все браузеры получают одинаковые ответы сервера и пытаются загрузить слой Modern, если он удовлетворяет требованиям JavaScript.
Класс A
Браузеры класса A получают высший уровень поддержки. MediaWiki использует возможности современных браузеров, при этом обеспечивая прекрасную альтернативу для старых браузеров. Новые разработанные функции должны работать в этих браузерах (неважно, в ухудшенном виде или нет).
Браузеры в этой категории известны (перечислены ниже) и активно тестируются на предмет проблем. Проблемы, с которыми сталкиваются пользователи этих браузеров, решаются с высоким приоритетом.
Класс С
Браузеры класса C должны получить получить основную функциональность платформы MediaWiki. Наши HTTP-ответы совместимы с этими браузерами (например HTTP-функции, на которые мы полагаемся, кодировка символов и форматы изображений, используемые в контенте; должны работать в этих браузерах). Во внешнем интерфейсе это означает, что контент представлен в удобочитаемом виде, и можно выполнять действия с контентом и учетной записью, но функции JavaScript могут работать, а могут и не работать. To browsers that don't pass the feature test mentioned above, modern JavaScript is not served at all.
Browsers in this category are known (listed below), and are rarely tested against. Problems users perceive in these browsers are addressed with high priority. However, mitigation may focus on ensuring that available functionality is not broken; if acceptable from a product perspective, this may result in the affected enhancement being disabled (whether or not temporarily) rather than restored in these browsers.
Класс X
Все другие браузеры относятся к "Класс X".
MediaWiki работает с этими браузерами так же, как и с классов A и С: фильтр пользовательского агента отсутствует, и эти браузеры получают улучшения JavaScript, если они проходят тест на функциональность для слоя "Modern".
Browsers not included in any other group belong to this category, including:
- Менее популярные браузеры, основанные на известных современных браузерах или производные от них (например Samsung Internet, UC Browser, Vivaldi, Opera, и Iceweasel).
- Бета версии современных браузеров. Они считаются классом X, если они еще не протестированы нами. Отношение к ним как к работоспособным обеспечивает оптимальный пользовательский опыт в этих браузерах и облегчает тестирование.
- Браузеры или версии браузеров, которые больше не разрабатываются и не поддерживаются, и несовместимы с современными стандартами Интернета. Они могут перейти в "Базовый" режим или даже не смогут подключиться к веб-серверу.
Этот принцип означает, что пользователи новых и развивающихся браузеров получают возможность пользоваться современными возможностями.
Эти браузеры не настолько распространены, чтобы оправдать дополнительные затраты на разработку программного обеспечения, и по сути никогда не тестируются. Проблемы, возникающие у пользователей только в этих браузерах, имеют низкий приоритет.
Матрица поддержки браузеров
Настольный
Описанные выше принципы и различные оценки применимы как к ядру MediaWiki, так и к расширениям. Приведенная ниже матрица поддержки применяет эти оценки в контексте ядра MediaWiki, инфраструктуры Фонда Викимедиа и любых расширений MediaWiki, которые решат следовать ей. Отдельные расширения могут иметь свою собственную матрицу поддержки, распределяющую браузеры между различными уровнями поддержки. См. также Панель мониторинга использования браузеров.
Browsers | Chrome | Edge | Firefox | Safari | iOS | Android[note 1] | |||
---|---|---|---|---|---|---|---|---|---|
Modern (Grade A) | Last three years' versions (2021) | 11.1+ (2018) | 11.3+ (2018) | 6+ (2015)[note 2] | |||||
Basic (Grade C) | 49+ (2016) | 79+ (2020) | 49+ (2016) | 10+ (2016) | 10+ (2016) | 5+ (2014)[note 3] | |||
Unknown (Grade X) | All other browsers |
Platform | Minimum OS or device | Supported modern browser |
---|---|---|
Android | Moto G (1st generation) (2013) Google Nexus 4 (2012) |
Android 5.1, Firefox (current) |
Samsung Galaxy S5 (2014) Google Nexus 5 (2013) Moto G (2nd generation) (2014) |
Android 6.0, Chrome 106, Firefox (current) | |
iOS | iPhone 5s (2013) | iOS Mobile Safari 11.3 - 12 (2018-2023)[note 4] |
Linux | Debian 10 Buster (2019) | firefox-esr 102 |
Ubuntu 18.04 LTS (2018) | firefox (current), chromium-browser (current) | |
macOS | OS X 10.11 El Capitan (2015-2018) | Safari 11.1, Chrome 103 |
macOS 10.13 High Sierra (2017-2020) | Safari 13, Firefox 115 ESR, Chrome 116 | |
macOS 10.15 Catalina (2019-2022) | Safari 15, current Firefox, Chrome 128 | |
macOS 11 Big Sur (2020-2023) | Safari 16, current Firefox, current Chrome | |
Windows | Windows 7 (2009-2020) | Edge 109, Firefox 115 ESR, Chrome 109 |
List of changes, most recent first:
- As of MediaWiki 1.43 , Basic support is removed for Internet Explorer 11 (IE 11), Edge 12–18, Chrome 31–48, Firefox 39–48, Safari 9 on macOS and iOS, and Opera. Chromium versions of Opera will probably see exactly the same experience as before. T288287
- As of 2023, the support targets have been re-stated; for Chrome and Chrome-based browsers, this is now the last three years' versions (covering three years rather than three months); for Firefox, this is now the current and previous LTS versions (reaching approximately the same time range). T178356
- As of MediaWiki 1.41 , Modern support is removed for Internet Explorer 11, macOS and iOS Safari 9–10, and Firefox 39–53. T178356
- As of MediaWiki 1.39 , Basic support is removed for Internet Explorer 9-10, Firefox 27-38, and Android 4.3-4.4 T293298, T297313, T290815
- As of MediaWiki 1.36 , Basic support is removed for Firefox 3-26, Internet Explorer 8, Safari 3-8, iOS (Safari) 5-8, Android 3.0-4.2, Chrome 1-30, and Opera 15-18. T248061, T262946, T266866
- As of MediaWiki 1.36 , Modern support is removed for Android 4.1-4.2, iOS 6.1-8, and Safari 5.1-8. T266866
- As of MediaWiki 1.35 , Basic support is removed for Internet Explorer 6-7 and Android 2. T232563, T249788
- As of MediaWiki 1.31 , JavaScript for Internet Explorer 10 has been disabled. T187869
- As of MediaWiki 1.29 , JavaScript for Internet Explorer 9 has been disabled along with other non-ES5 browsers. T128115
- As of MediaWiki 1.27 , JavaScript for Internet Explorer 8 has been disabled. T118303, Wikitech-ambassadors message
- As of MediaWiki 1.24 , JavaScript for Internet Explorer 6 and 7 has been disabled. gerrit:152072, gerrit:152128, Wikitech-ambassadors message
The Wikimedia Foundation also provides an up-to-date browserslist config reflecting the support matrix.
Мобильный
Веб-команда Фонда Викимедиа применяет более узкую матрицу поддержки для мобильных тем оформления например. Minerva и/или расширений, разработанных только для работы на мобильных устройствах например MobileFrontend .
Матрица поддержки составляется на основе данных, предоставляемых аналитическая панель разбивки пользовательских агентов.
Там, где использование браузера превышает 5%, поддерживается современный опыт (Класс A).
Базовая поддержка (Класс С) предоставляется при превышении 0,1% в течение предыдущих 12 месяцев.
В мобильной версии мы стремимся обеспечить Класс B. Пользователи Класса B могут получить или не получить JavaScript, и мы не тестируем его на том же уровне, что и A, поэтому приоритет исправления ошибок ниже.
Список современных поддерживаемых браузеров на MobileFrontend определяется в файле .browserlistsrc
.
Все, что отсутствует в списке или старше, считается браузером с базовой поддержкой.
Смотрите также
- Жизненный цикл версий MediaWiki
- No-JavaScript notes
- MediaWiki - compatibility error note (example)
- wikitech:HTTPS/Browser Recommendations
- Graded Browser Support by YUI (2011-2015)
- Graded Browser Support by Yahoo (2006-2012)
Примечания
- ↑ Refers to Android WebView, based on Chromium since Android 4.4(2013). In Android 5.0+(2014), Chrome WebView can be updated separately without having to update Android versions. For standalone browsers, refer to Chrome and Firefox columns.
- ↑ Chrome 96(2021), which is more than three years old, dropped support for Android 5(2014). Latest versions of Firefox as well as Wikimedia apps support Android 5+(2014).
- ↑ Note this refers to the stock Android browser. For Chrome for Android, provided that you're running Chrome 49+, it requires Android 4.1+(2012). For Firefox for Android, provided that you're running Firefox 49+, it requires Android 4.0+(2011).
- ↑ iOS 11 dropped support for iPhone 5 and older devices