123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357 |
- = 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.
- * The "error-json" channel, configurable via $wgDebugLogGroups, has been
- removed. For structured logging, use the "error" channel directly instead.
- Since MediaWiki 1.25, structured logging is supported via Monolog for all
- channels, including the "error" channel. For silenced errors, you use the
- "silenced-error" channel added in MediaWiki 1.42. (T193472)
- * …
- ==== 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
- * (T242346) Special:TalkPage is a new special page that will redirect to the
- associated talk namespace page, e.g. [[Special:TalkPage/Foo]] redirects to
- [[Talk:Foo]]; [[Special:TalkPage/Project:Foo]] goes to [[Project talk:Foo]].
- This allows for links by templates and tools without having to parse what
- namespaces are valid and have associated talk pages.
- * …
- === 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.6.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.
- * Hooks that were run from SpecialContributions are now run from the parent,
- ContributionsSpecialPage. The page passed in is a ContributionsSpecialPage
- type, and documentation and type comparisons may need to be updated. Affected
- hooks are: ContributionsBeforeMainOutputHook, ContributionsToolLinksHook,
- SpecialContributions__getForm__filtersHook.
- * Hooks that were run from ContribsPager are now run from the parent,
- ContributionsPager. If a pager is passed in, it is a ContributionsPager type,
- and documentation and type comparisons may need to be updated. Affected
- hooks are: ContribsPager__reallyDoQueryHook, ContribsPager__getQueryInfoHook,
- ContributionsLineEndingHook, SpecialContributions__formatRow__flagsHook.
- * 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.
- * IDatabase::getTopologyBasedServerId() has been removed without deprecation.
- Use IDatabase::getServerName() instead.
- * 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.
- * Linker::makeHeadline(), Linker::generateTOC(), Linker::tocIndent(),
- Linker::tocUnindent(), Linker::tocLine(), Linker::tocLineEnd(), and
- Linker::tocList(), deprecated in 1.42, have been removed.
- * Linker::formatComment(), Linker::formatLinksInComment(),
- Linker::commentBlock(), and Linker::revComment(), deprecated in 1.38,
- have been removed.
- * DummyLinker has been removed. The former DummyLinker parameter
- to the 'ImageBeforeProduceHTML' hook is now null.
- * …
- === 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.
|