285 lines
14 KiB
Text
285 lines
14 KiB
Text
= MediaWiki 1.34 =
|
||
|
||
== MediaWiki 1.34.0-PRERELEASE ==
|
||
|
||
THIS IS NOT A RELEASE YET
|
||
|
||
MediaWiki 1.34 is an alpha-quality development branch, and is not recommended
|
||
for use in production.
|
||
|
||
== Upgrading notes for 1.34 ==
|
||
1.34 has several database changes since 1.33, and will not work without schema
|
||
updates. Note that due to changes to some very large tables like the revision
|
||
table, the schema update may take quite long (minutes on a medium sized site,
|
||
many hours on a large site).
|
||
|
||
Don't forget to always back up your database before upgrading!
|
||
|
||
See the file UPGRADE for more detailed upgrade instructions, including
|
||
important information when upgrading from versions prior to 1.11.
|
||
|
||
Some specific notes for MediaWiki 1.34 upgrades are below:
|
||
|
||
* …
|
||
|
||
For notes on 1.33.x and older releases, see HISTORY.
|
||
|
||
=== Configuration changes for system administrators in 1.34 ===
|
||
|
||
==== New configuration ====
|
||
* $wgAllowExternalReqID (T201409) - This configuration setting controls whether
|
||
Mediawiki accepts the request ID set by the incoming request via the
|
||
`X-Request-Id` header. If set to `true`, that value will be used throughout
|
||
the code as the request identificator. Otherwise, the sent header will be
|
||
ignored and the request ID will either be taken from Apache's mod_unique
|
||
module or will be generated by Mediawiki itself (depending on the set-up).
|
||
|
||
==== Changed configuration ====
|
||
* $wgUseCdn, $wgCdnServers, $wgCdnServersNoPurge, and $wgCdnMaxAge – These four
|
||
CDN-related config variables have been renamed from being specific to Squid –
|
||
they were previously $wgUseSquid, $wgSquidServers, $wgSquidServersNoPurge, and
|
||
$wgSquidMaxage respectively. This aligns them with the related existing
|
||
variable $wgCdnMaxageLagged. The previous configuration variable names are
|
||
deprecated, but will be used as the fall back if they are still set.
|
||
Note that wgSquidPurgeUseHostHeader has not been renamed, as it is deprecated.
|
||
* …
|
||
|
||
==== Removed configuration ====
|
||
* $wgWikiDiff2MovedParagraphDetectionCutoff — If you still want a custom change
|
||
size threshold, please specify in php.ini, using the configuration variable
|
||
wikidiff2.moved_paragraph_detection_cutoff.
|
||
|
||
=== New user-facing features in 1.34 ===
|
||
* …
|
||
|
||
=== New developer features in 1.34 ===
|
||
* Language::formatTimePeriod now supports the new 'avoidhours' option to output
|
||
strings like "5 days ago" instead of "5 days 13 hours ago".
|
||
|
||
=== External library changes in 1.34 ===
|
||
|
||
==== New external libraries ====
|
||
* …
|
||
|
||
==== Changed external libraries ====
|
||
* Updated Mustache from 1.0.0 to v3.0.1.
|
||
* Updated OOUI from v0.31.3 to v0.32.1.
|
||
* Updated composer/semver from 1.4.2 to 1.5.0.
|
||
* Updated composer/spdx-licenses from 1.4.0 to 1.5.1 (dev-only).
|
||
* Updated mediawiki/codesniffer from 25.0.0 to 26.0.0 (dev-only).
|
||
* Updated cssjanus/cssjanus from 1.2.1 to 1.3.0.
|
||
* Updated wikimedia/at-ease from 1.2.0 to 2.0.0.
|
||
* Updated wikimedia/remex-html from 2.0.1 to 2.0.3.
|
||
* …
|
||
|
||
==== Removed external libraries ====
|
||
* The jquery.async module, deprecated in 1.33, was removed.
|
||
* …
|
||
|
||
=== Bug fixes in 1.34 ===
|
||
* (T222529) If a log entry or page revision is recorded in the database with an
|
||
empty username, attempting to display it will log an error and return a "no
|
||
username available" to the user instead of silently displaying nothing or
|
||
invalid links.
|
||
|
||
=== Action API changes in 1.34 ===
|
||
* The 'recenteditcount' response property from action=query list=allusers,
|
||
deprecated in 1.25, has been removed.
|
||
|
||
=== Action API internal changes in 1.34 ===
|
||
* …
|
||
|
||
=== Languages updated in 1.34 ===
|
||
MediaWiki supports over 350 languages. Many localisations are updated regularly.
|
||
Below only new and removed languages are listed, as well as changes to languages
|
||
because of Phabricator reports.
|
||
|
||
* (T152908) Added language support for N'Ko (nqo).
|
||
|
||
=== Breaking changes in 1.34 ===
|
||
* The global functions wfSuppressWarnings and wfRestoreWarnings, deprecated in
|
||
1.26, have been removed. Use Wikimedia\AtEase\AtEase::suppressWarnings() and
|
||
Wikimedia\AtEase\AtEase::restoreWarnings() directly.
|
||
* Preferences class, deprecated in 1.31, has been removed.
|
||
* The following parts of code, deprecated in 1.32, were removed in favor of
|
||
built-in PHP functions:
|
||
* CryptRand class
|
||
* CryptRand service
|
||
* Functions of the MWCryptRand class: singleton(), wasStrong() and generate().
|
||
* Language::setCode, deprecated in 1.32, was removed. Use Language::factory to
|
||
create a new Language object with a different language code.
|
||
* MWNamespace::clearCaches() has been removed. So has the $rebuild parameter
|
||
to MWNamespace::getCanonicalNamespaces(), which was deprecated since 1.31.
|
||
Instead, reset services, such as by calling $this->overrideMwServices() (if
|
||
your test extends MediaWikiTestCase). Services will generally not pick up
|
||
configuration changes from after they were created, so you must reset
|
||
services after any configuration change. Even if your code works now, it is
|
||
likely to break in future versions as more code is moved to services.
|
||
* The ill-defined "DatabaseOraclePostInit" hook has been removed.
|
||
* PreferencesFormLegacy and PreferencesForm classes, deprecated in 1.32, have
|
||
been removed.
|
||
* ObjectFactory class, deprecated in 1.31, has been removed.
|
||
* HWLDFWordAccumudlator class, deprecated in 1.28, has been removed.
|
||
* XMPInfo, XMPReader and XMPValidate, deprecated in 1.32, have been removed.
|
||
* The RedirectSpecialPage::execute method could sometimes return a Title object.
|
||
This behavior was removed, and the method now matches the parent signature
|
||
(SpecialPage::execute) which is to return HTML string or void.
|
||
To obtain the destination title, use RedirectSpecialPage::getRedirect.
|
||
* The 'recenteditcount' response property from action API action=query
|
||
list=allusers, deprecated in 1.25, has been removed.
|
||
* SearchEngine::userNamespaces(), SearchEngine::namespacesAsText(),
|
||
SearchEngine::create(), SearchEngine::getSearchTypes() and
|
||
SearchEngine::getNearMatch(), methods deprecated in 1.27, have been removed.
|
||
* FileRepo::streamFile(), deprecated in 1.26, has been removed.
|
||
* User::randomPassword() method, deprecated in 1.27, have been removed.
|
||
* MWNamespace::canTalk(), deprecated in 1.30, have been removed.
|
||
* Parser class property $mUniqPrefix, deprecated in 1.26, has been removed.
|
||
* wfArrayFilter() and wfArrayFilterByKey(), deprecated in 1.32, have been
|
||
removed.
|
||
* wfMakeUrlIndexes() function, deprecated in 1.33, have been removed.
|
||
* Method signatures in WatchedItemQueryServiceExtension have changed from taking
|
||
User objects to taking UserIdentity objects. Extensions implementing this
|
||
interface need to be changed accordingly.
|
||
* User::getGroupPage() and ::makeGroupLinkHTML(), deprecated in 1.29, have been
|
||
removed. Use UserGroupMembership::getGroupPage and ::getLink instead.
|
||
* User::makeGroupLinkWiki(), deprecated in 1.29, has been removed. Use
|
||
UserGroupMembership::getLink() instead.
|
||
* SavepointPostgres, deprecated in 1.31, has been removed.
|
||
* Output::sectionEditLinksEnabled(), ParserOutput::getEditSectionTokens,
|
||
::getTOCEnabled, ::setEditSectionTokens, ::setTOCEnabled, deprecated in 1.31,
|
||
have been removed.
|
||
* EditPage::safeUnicodeInput() and ::safeUnicodeOutput(), deprecated in 1.30,
|
||
have been removed.
|
||
* Four methods in OutputPage, deprecated in 1.32, have been removed. You should
|
||
use OutputPage::showFatalError or throw a FatalError instead. The methods are
|
||
::showFileCopyError(), ::showFileRenameError(), ::showFileDeleteError(), and
|
||
::showFileNotFoundError().
|
||
* ApiBase::truncateArray(), deprecated in 1.32, has been removed.
|
||
* IcuCollation::getICUVersion(), deprecated in 1.32, has been removed. Use PHP's
|
||
INTL_ICU_VERSION constant directly.
|
||
* HTMLForm::setSubmitProgressive(), deprecated in 1.32, has been removed.
|
||
* ResourceLoaderStartUpModules::getStartupModules() and ::getLegacyModules(),
|
||
both deprecated in 1.32, have been removed.
|
||
* BaseTemplate::msgHtml() and QuickTemplate::msgHtml(), deprecated in 1.32, have
|
||
been removed. Use ->msg() or ->getMsg() instead.
|
||
* WatchAction::getUnwatchToken(), deprecated in 1.32, has been removed. Instead,
|
||
use WatchAction::getWatchToken() with action 'unwatch' directly.
|
||
* Language::initEncoding(), ::recodeForEdit(), and recodeInput(), deprecated in
|
||
1.28, have been removed.
|
||
* PageArchive::getTextFromRow(), ::listAllPages(), and ::getLastRevisionText(),
|
||
deprecated in 1.32, have been removed.
|
||
* OutputPage::getModuleScripts(), ParserOutput::getModuleScripts(), deprecated
|
||
in 1.33, have been removed.
|
||
* User::getPasswordValidity(), deprecated in 1.33, has been removed.
|
||
* ApiQueryBase::prepareUrlQuerySearchString(), deprecated in 1.33, has been
|
||
removed.
|
||
* ChangeTags::purgeTagUsageCache(), deprecated in 1.33, has been removed.
|
||
* JobQueueGroup::pushLazyJobs(), deprecated in 1.33, has been removed.
|
||
* MediaWikiTestCase::stashMwGlobals(), deprecated in 1.32, has been removed.
|
||
* SearchEngine::transformSearchTerm(), deprecated in 1.32, has been removed.
|
||
* The Block typehint only refers to blocks stored in the database. It should be
|
||
updated to AbstractBlock in cases where any type of block could be expected.
|
||
* FileRepoStatus, deprecated in 1.25, has been removed.
|
||
* The LegacyHookPreAuthenticationProvider class, deprecated since its creation
|
||
in 1.27, has been removed.
|
||
* IP::isValidBlock(), deprecated in 1.30, has been removed.
|
||
* WikiPage::prepareContentForEdit now doesn't accept an integer for $revision,
|
||
was deprecated in 1.25.
|
||
* The jquery.byteLength module, deprecated in 1.31, was removed.
|
||
Use the mediawiki.String module instead.
|
||
* mw.language.specialCharacters, deprecated in 1.33, has been removed.
|
||
Use require( 'mediawiki.language.specialCharacters' ) instead.
|
||
* EditPage::submit(), deprecated in 1.29, has been removed. Use $this->edit()
|
||
directly.
|
||
* HTMLForm::getErrors(), deprecated in 1.28, has been removed. Use
|
||
getErrorsOrWarnings() instead.
|
||
* …
|
||
|
||
=== Deprecations in 1.34 ===
|
||
* The MWNamespace class is deprecated. Use NamespaceInfo.
|
||
* ExtensionRegistry->load() is deprecated, as it breaks dependency checking.
|
||
Instead, use ->queue().
|
||
* User::isBlocked() is deprecated since it does not tell you if the user is
|
||
blocked from editing a particular page. Use User::getBlock() or
|
||
PermissionManager::isBlockedFrom() or PermissionManager::userCan() instead.
|
||
* User::isLocallyBlockedProxy and User::inDnsBlacklist are deprecated and moved
|
||
to the BlockManager as private helper methods.
|
||
* User::isDnsBlacklisted is deprecated. Use BlockManager::isDnsBlacklisted
|
||
instead.
|
||
* The Config argument to ChangesListSpecialPage::checkStructuredFilterUiEnabled
|
||
is deprecated. Pass only the User argument.
|
||
* WatchedItem::getUser is deprecated. Use getUserIdentity.
|
||
* Passing a Title as the first parameter to the getTimestampById method of
|
||
RevisionStore is deprecated. Omit it, passing only the remaining parameters.
|
||
* Title::getPreviousRevisionId and Title::getNextRevisionId are deprecated. Use
|
||
RevisionLookup::getPreviousRevision and RevisionLookup::getNextRevision.
|
||
* The Title parameter to RevisionLookup::getPreviousRevision and
|
||
RevisionLookup::getNextRevision is deprecated and should be omitted.
|
||
* MWHttpRequest::factory is deprecated. Use HttpRequestFactory.
|
||
* The Http class is deprecated. For the request, get, and post methods, use
|
||
HttpRequestFactory. For isValidURI, use MWHttpRequest::isValidURI. For
|
||
getProxy, use (string)$wgHTTPProxy. For createMultiClient, construct a
|
||
MultiHttpClient directly.
|
||
* Http::$httpEngine is deprecated and has no replacement. The default 'guzzle'
|
||
engine will eventually be made the only engine for HTTP requests.
|
||
* RepoGroup::singleton(), RepoGroup::destroySingleton(),
|
||
RepoGroup::setSingleton(), wfFindFile(), and wfLocalFile() are all
|
||
deprecated. Use MediaWikiServices instead.
|
||
* The getSubjectPage, getTalkPage, and getOtherPage of Title are deprecated.
|
||
Use NamespaceInfo's getSubjectPage, getTalkPage, and getAssociatedPage.
|
||
* MWMessagePack class, no longer used, has been deprecated in 1.34.
|
||
* The Block class is separated into DatabaseBlock (for blocks stored in the
|
||
database), and SystemBlock (for temporary blocks created by the system).
|
||
SystemBlock should be used when creating any temporary blocks. Block is
|
||
a deprecated alias for DatabaseBlock.
|
||
* Parser::$mConf is deprecated. It will be removed entirely in a later version.
|
||
Some context can be found at T224165.
|
||
* Constructing Parser directly is deprecated. Obtain one from ParserFactory.
|
||
* Title::moveSubpages is deprecated. Use MovePage::moveSubpages or
|
||
MovePage::moveSubpagesIfAllowed.
|
||
* The MWNamespace class is deprecated. Use MediaWikiServices::getNamespaceInfo.
|
||
* (T62260) Hard deprecate Language::getExtraUserToggles() method.
|
||
* Language::viewPrevNext function is deprecated, use
|
||
PrevNextNavigationRenderer::buildPrevNextNavigation instead
|
||
|
||
=== Other changes in 1.34 ===
|
||
* …
|
||
|
||
== Compatibility ==
|
||
MediaWiki 1.34 requires PHP 7.0.13 or later. Although HHVM 3.18.5 or later is
|
||
supported, it is generally advised to use PHP 7.0.13 or later for long term
|
||
support.
|
||
|
||
MySQL/MariaDB is the recommended DBMS. PostgreSQL or SQLite can also be used,
|
||
but support for them is somewhat less mature. There is experimental support for
|
||
Oracle and Microsoft SQL Server.
|
||
|
||
The supported versions are:
|
||
|
||
* MySQL 5.5.8 or later
|
||
* PostgreSQL 9.2 or later
|
||
* SQLite 3.8.0 or later
|
||
* Oracle 9.0.1 or later
|
||
* Microsoft SQL Server 2005 (9.00.1399)
|
||
|
||
== Online documentation ==
|
||
Documentation for both end-users and site administrators is available on
|
||
MediaWiki.org, and is covered under the GNU Free Documentation License (except
|
||
for pages that explicitly state that their contents are in the public domain):
|
||
|
||
https://www.mediawiki.org/wiki/Special:MyLanguage/Documentation
|
||
|
||
== Mailing list ==
|
||
A mailing list is available for MediaWiki user support and discussion:
|
||
|
||
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
|
||
|
||
A low-traffic announcements-only list is also available:
|
||
|
||
https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
|
||
|
||
It's highly recommended that you sign up for one of these lists if you're
|
||
going to run a public MediaWiki, so you can be notified of security fixes.
|
||
|
||
== IRC help ==
|
||
There's usually someone online in #mediawiki on irc.freenode.net.
|