327 lines
13 KiB
Text
327 lines
13 KiB
Text
= MediaWiki 1.43 =
|
||
|
||
== MediaWiki 1.43.0-PRERELEASE ==
|
||
|
||
THIS IS NOT A RELEASE YET
|
||
|
||
MediaWiki 1.43 is an alpha-quality development branch, and is not recommended
|
||
for use in production.
|
||
|
||
== Upgrading notes for 1.43 ==
|
||
Don't forget to always back up your database before upgrading!
|
||
|
||
See the file UPGRADE for more detailed per-version upgrade instructions from the
|
||
oldest supported upgrading version, MediaWiki 1.35.
|
||
|
||
Some specific notes for MediaWiki 1.43 upgrades are below:
|
||
|
||
* It is now necessary that the OpenSSL PHP extension is installed.
|
||
* …
|
||
|
||
For notes on 1.42.x and older releases, see HISTORY.
|
||
|
||
=== Configuration changes for system administrators in 1.43 ===
|
||
|
||
* $wgBlockTargetMigrationStage, which was introduced in 1.42, is now deprecated
|
||
and has no effect.
|
||
* …
|
||
|
||
==== New configuration ====
|
||
|
||
* (T13555) $wgParserEnableLegacyHeadingDOM - Defaults to `true`, can be set to
|
||
`false` to enable new, more accessible HTML markup for wikitext headings.
|
||
Note that each skin must also use the 'supportsMwHeading' option to allow it.
|
||
More information: https://www.mediawiki.org/wiki/Heading_HTML_changes
|
||
In a future release the new markup will become the default,
|
||
and later this option will be removed.
|
||
* …
|
||
|
||
==== Changed configuration ====
|
||
|
||
* wgPageLinksSchemaMigrationStage – (T299947) This temporary setting, which
|
||
controls the database schema migration for the page links table, is now set
|
||
by default to write to both old and new data and read from the new data.
|
||
* …
|
||
|
||
==== Removed configuration ====
|
||
|
||
* wgSessionInsecureSecrets has been removed since OpenSSL is now a required
|
||
PHP extension.
|
||
* …
|
||
|
||
=== New user-facing features in 1.43 ===
|
||
|
||
* (T338341) Support reading XMP and EXIF from WebP files
|
||
* …
|
||
|
||
=== New features for sysadmins in 1.43 ===
|
||
|
||
* …
|
||
|
||
=== New developer features in 1.43 ===
|
||
|
||
* StatusValue class gained new method getMessages(): MessageSpecifier[],
|
||
allowing the errors to be inspected and displayed more easily, for example:
|
||
foreach ( $status->getMessages() as $msg ) {
|
||
if ( $msg->getKey() !== 'ignored-message' ) {
|
||
$this->getOutput()->addWikiMsg( $msg );
|
||
}
|
||
}
|
||
* (T13555) Skins can enable the 'supportsMwHeading' option for new, more
|
||
accessible HTML markup for wikitext headings. MediaWiki's own styles and
|
||
scripts have been updated to support it, but your skin may also need updates.
|
||
More information: https://www.mediawiki.org/wiki/Heading_HTML_changes
|
||
A future release will emit deprecation warnings for skins with
|
||
'supportsMwHeading' set to false.
|
||
* (T219397) New `Language::formatDurationBetweenTimestamps()` function added
|
||
which takes two timestamps and a precision in order to calculate a more
|
||
accurate text representation of duration.
|
||
* …
|
||
|
||
=== External library changes in 1.43 ===
|
||
|
||
* The OOjs Router library has been merged into core and will be archived
|
||
upstream.
|
||
|
||
==== New external libraries ====
|
||
|
||
* …
|
||
|
||
===== New development-only external libraries =====
|
||
|
||
* …
|
||
|
||
==== Changed external libraries ====
|
||
* Updated codex, codex-design-tokens and codex-icons
|
||
from v1.3.6 to v1.5.0.
|
||
* Updated guzzlehttp/guzzle from 7.7.1 to 7.8.1.
|
||
* Updated pear/net_smtp from 1.11.1 to 1.12.1.
|
||
* Updated monolog/monolog from 2.9.2 to 2.9.3.
|
||
* Updated symfony/yaml from 5.4.35 to 5.4.39.
|
||
* …
|
||
|
||
===== Changed development-only external libraries =====
|
||
|
||
* Upgraded eslint-config-wikimedia from 0.26.0 to 0.27.0.
|
||
* Updated seld/jsonlint from 1.10.1 to 1.10.2.
|
||
* Updated doctrine/dbal from 3.7.2 to 3.8.4.
|
||
* Updated phpunit/phpunit from 9.6.16 to 9.6.19.
|
||
* …
|
||
|
||
==== Removed external libraries ====
|
||
|
||
* …
|
||
|
||
=== Bug fixes in 1.43 ===
|
||
|
||
* …
|
||
|
||
=== Action API changes in 1.43 ===
|
||
|
||
* APIQueryUserInfo now returns null in the field registrationdate for users
|
||
created before December 2005 (their registration date was not recorded).
|
||
* …
|
||
|
||
=== Action API internal changes in 1.43 ===
|
||
|
||
* …
|
||
|
||
=== Languages updated in 1.43 ===
|
||
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.
|
||
|
||
* (T290657) Added language support for Levantine Arabic (apc).
|
||
* (T364291) Added language support for Musi, also known as Palembang (mui).
|
||
* …
|
||
|
||
=== Breaking changes in 1.43 ===
|
||
|
||
* ErrorPageError public properties 'msg' and 'title' may now contain
|
||
any MessageSpecifier object, not just Message.
|
||
* Reset button functionality suppressReset() and $mShowReset from HTMLForm
|
||
was removed without replacement.
|
||
* UserGroupMembership::getGroupName(), deprecated in 1.38, and
|
||
UserGroupMembership::getGroupMemberName(), deprecated in 1.40, have
|
||
been removed.
|
||
* SerializedValueContainer::isUnified(), deprecated in 1.42, has been
|
||
removed.
|
||
* Parser::getFreshParser(), deprecated in 1.39, has been removed.
|
||
* ConfigFactory::getDefaultInstance(), deprecated since 1.27, has been
|
||
removed.
|
||
* IReadableDatabase::getReplicaPos() has been removed without deprecation
|
||
as it's not used anywhere.
|
||
* ILoadBalancer::laggedReplicaUsed() has been moved to ILoadBalancerForOwner::
|
||
effectively making it internal.
|
||
* Overriding MWException::getHTML(), ::getText(), ::getPageTitle(), and
|
||
::reportHTML() in order to display custom exception messages is no
|
||
longer supported.
|
||
* In PageHandlerTestTrait, the newRouter() method was renamed to
|
||
newRouterForPageHandler() to avoid a conflict with a method of the same
|
||
name in RestTestTrait. Also, PageHandlerTestTrait is no longer marked as
|
||
"stable to use". It was marked this way by accident, the functionality it
|
||
provides is specific to certain handlers implemented in MediaWiki core.
|
||
* TablePager::getBody(), final and deprecated since 1.24, has been removed.
|
||
Use ::getBodyOutput() or ::getFullOutput() instead.
|
||
* ImportableUploadRevisionImporter::downloadSource(), deprecated in 1.31, is now
|
||
private. Its only known external caller was removed in 1.40.
|
||
* The following methods in the User class have been removed:
|
||
* Deprecated in 1.33:
|
||
* User::isBlockedFrom()
|
||
* Deprecated in 1.34:
|
||
* User::isBlocked()
|
||
* Deprecated in 1.35:
|
||
* User::addGroup()
|
||
* User::getAllGroups()
|
||
* User::getGroups()
|
||
* User::getGroupMemberships()
|
||
* User::getImplicitGroups()
|
||
* User::getOption()
|
||
* User::removeGroup()
|
||
* Deprecated in 1.37:
|
||
* User::isBlockedFromCreateAccount()
|
||
* BotPassword::invalidateAllPasswordsForCentralId() and
|
||
BotPassword::removeAllPasswordsForCentralId(), deprecated in 1.37,
|
||
have been removed.
|
||
* Title::getBrokenLinksFrom(), deprecated in 1.42, has been removed.
|
||
* The $type parameter to Skin::getCopyright(), deprecated in 1.40, has been
|
||
removed.
|
||
* Skin::footerLink(), deprecated in 1.40, has been removed.
|
||
* Skin::getAction(), deprecated in 1.39, has been removed.
|
||
* Title::getCdnUrls() and Title::purgeSquid(), deprecated in 1.35, have been
|
||
removed.
|
||
* Constructing MWHttpRequest objects now requires timeout and connectTimeout to
|
||
be set; this was deprecated in 1.35.
|
||
* DatabaseBlock::purgeExpired, deprecated since 1.38, has been removed.
|
||
* AbstractBlock::getPermissionsError, deprecated since 1.35, has been removed.
|
||
* IDatabase::namedLocksEnqueue() has been removed without deprecation,
|
||
completely unused.
|
||
* WikiPage::doDeleteArticleBatched, hard deprecated since 1.37, has been
|
||
removed.
|
||
* SpecialEmailUser::submit, deprecated since 1.41, has been removed.
|
||
* SpecialEmailUser::validateTarget, deprecated since 1.41, has been removed.
|
||
* SpecialEmailUser::getPermissionsError, deprecated since 1.41 has been
|
||
removed.
|
||
* SpecialBlock::getTargetAndType, deprecated since 1.36, has been removed.
|
||
* ApiQueryBlockInfoTrait::addBlockInfoToQuery(), deprecated since 1.42, has been
|
||
removed.
|
||
* …
|
||
|
||
=== Deprecations in 1.43 ===
|
||
|
||
* The methods StatusValue::getErrors() and StatusValue::getErrorsByType(),
|
||
as well as Status::getErrorsArray() and Status::getWarningsArray(), have
|
||
been deprecated in favor of new method StatusValue::getMessages().
|
||
* SearchEngineConfig::getConfig() has been deprecated, use DI with
|
||
ServiceOptions to inject the required options.
|
||
* Using the "post" source in parameter declarations returned from
|
||
Handler::getParamSettings() is deprecated, use "body" instead.
|
||
* IMaintainableDatabase::textFieldSize() is now deprecated.
|
||
* ISQLPlatform::tableNamesN() is now deprecated.
|
||
* The implementation in SQLPlatform of ISQLPlatform::tableNames(), deprecated in
|
||
MediaWiki 1.39, now emits deprecation warnings.
|
||
* The following methods, previously deprecated, now emit deprecation warnings:
|
||
- ContentHandler::getDefaultModelFor(), deprecated since 1.33
|
||
- ContentHandler::getAllContentFormats(), deprecated since 1.35
|
||
- ContentHandler::getContentModels(), deprecated since 1.35
|
||
- ContentHandler::getForContent(), deprecated since 1.35
|
||
- ContentHandler::getForModelID(), deprecated since 1.35
|
||
- ContentHandler::getContentText(), deprecated since 1.37
|
||
* OutputPage::showFatalError() is deprecated, use showErrorPage() instead.
|
||
* LoadBalancer::getConnectionRef(), deprecated since 1.39, now emits deprecation
|
||
warnings. Use ::getConnection() instead.
|
||
* DBAccessObjectUtils::getDBOptions() is deprecated, use
|
||
SelectQueryBuilder::recency() instead.
|
||
* IDatabase::lockForUpdate is deprecated, use
|
||
SelectQueryBuilder::acquireRowLocks instead.
|
||
* wfGetUrlUtils() is deprecated; instead, get a UrlUtils from services.
|
||
* DerivedPageDataUpdater::getPreparedEdit(), provided for back-compatibility, is
|
||
now deprecated; use the getters directly, instead.
|
||
* AuthManager::forcePrimaryAuthenticationProviders(), provided for back-
|
||
compatibility, is now deprecated.
|
||
* WikiPage::hasDifferencesOutsideMainSlot(), provided as a stop-gap before
|
||
refactoring to support MCR, is now deprecated.
|
||
* ChangesList::getTimestamp() has been deprecated; use ::revDateLink() instead.
|
||
* SiteConfig::variants() has been deprecated; use ::variantsFor().
|
||
* ObjectCache::$instances and ::getInstance() have been deprecated; instead, use
|
||
ObjectCacheFactory::getInstance().
|
||
* ApiTestCase::setExpectedApiException() has been deprecated; instead, use
|
||
::expectApiErrorCode() to test error codes instead of messages.
|
||
* User::isBlockedGlobally(), deprecated since 1.40, now emits deprecation
|
||
warnings.
|
||
* User::isBlockedFromEmailuser() and User::canSendEmail(), deprecated since
|
||
1.41, now emit deprecation warnings.
|
||
* StatusValue will emit deprecation warnings when an error is given as
|
||
a MessageSpecifier combined with a parameters array, which is usually
|
||
a mistake, as the parameters have always been ignored.
|
||
* In StatusValue::replaceMessage(), ::hasMessage() and ::hasMessagesExcept()
|
||
passing MessageSpecifier or MessageValue as $source has been deprecated.
|
||
* DatabaseBlock::getQueryInfo() and DatabaseBlock::getRangeCond() are
|
||
deprecated and emit deprecation warnings. Use the equivalent methods in
|
||
DatabaseBlockStore.
|
||
* DatabaseBlockStore::getReadStage() and ::getWriteStage() are deprecated.
|
||
Use the new schema unconditionally.
|
||
* …
|
||
|
||
=== Other changes in 1.43 ===
|
||
|
||
* Class aliases to support the old PHPUnit 4 style un-namespaced `PHPUnit_`
|
||
classes (such as PHPUnit_Framework_Error) have been removed.
|
||
* [Temporary accounts] If $wgAutoCreateTempUser is enabled, then MediaWiki
|
||
will create a temporary account and log the user in for unsuccessful edit
|
||
attempts and null edits, in addition to edits that change content. This is
|
||
a change from the previous paradigm, where temporary accounts were created
|
||
only for successful edits. This change is done to support better logging
|
||
support and moderation, to ensure that hooks run in a pre-save context have
|
||
a user object to associate log entries and other actions with.
|
||
* Several entries have been removed from the default list of interwikis used
|
||
when installing new wikis. This does not affect existing wikis.
|
||
* User auto-creations are now performed as the target user instead of
|
||
anonymous IP user.
|
||
* …
|
||
|
||
== Compatibility ==
|
||
|
||
MediaWiki 1.43 requires PHP 8.1.0 or later and the following PHP extensions:
|
||
|
||
* ctype
|
||
* dom
|
||
* fileinfo
|
||
* iconv
|
||
* intl
|
||
* json
|
||
* mbstring
|
||
* openssl
|
||
* xml
|
||
|
||
MariaDB is the recommended database software. MySQL, PostgreSQL, or SQLite can
|
||
be used instead, but support for them is somewhat less mature.
|
||
|
||
The supported versions are:
|
||
|
||
* MariaDB 10.3 or higher
|
||
* MySQL 5.7.0 or higher
|
||
* PostgreSQL 10 or later
|
||
* SQLite 3.8.0 or later
|
||
|
||
== 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/postorius/lists/mediawiki-l.lists.wikimedia.org/>
|
||
|
||
A low-traffic announcements-only list is also available:
|
||
|
||
<https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/>
|
||
|
||
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.libera.chat.
|