391 lines
15 KiB
Text
391 lines
15 KiB
Text
= MediaWiki 1.42 =
|
|
|
|
== MediaWiki 1.42.0-PRERELEASE ==
|
|
|
|
THIS IS NOT A RELEASE YET
|
|
|
|
MediaWiki 1.42 is an alpha-quality development branch, and is not recommended
|
|
for use in production.
|
|
|
|
== Upgrading notes for 1.42 ==
|
|
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.42 upgrades are below:
|
|
* …
|
|
|
|
For notes on 1.41.x and older releases, see HISTORY.
|
|
|
|
=== Configuration changes for system administrators in 1.42 ===
|
|
* …
|
|
|
|
==== New configuration ====
|
|
* $wgMicroStashType: The object cache backend for the MicroStash service.
|
|
* $wgEditRecoveryExpiry: Number of seconds to keep edit recovery data
|
|
after the edit is stored.
|
|
* $wgDjvuUseBoxedCommand and $wgDjvuShell: A temporary flag to control whether
|
|
or not to use BoxedCommand when wrapping DejaVu rendering, and the command to
|
|
call if so.
|
|
* …
|
|
|
|
==== Changed configuration ====
|
|
* …
|
|
|
|
==== Removed configuration ====
|
|
* $wgDisableCookieCheck has been removed.
|
|
* $wgStatsCacheType has been removed. Set $wgMicroStashType instead.
|
|
* $wgJobSerialCommitThreshold has been removed without deprecation,
|
|
it wasn't used anywhere according to codesearch and any setups using this
|
|
config will perform just fine but might be less performant.
|
|
* …
|
|
|
|
=== New user-facing features in 1.42 ===
|
|
* …
|
|
|
|
=== New features for sysadmins in 1.42 ===
|
|
* …
|
|
|
|
=== New developer features in 1.42 ===
|
|
* (T326466) MediaWikiIntegrationTestCase's database and set-up code now avoids
|
|
using dynamic properties, which was causing deprecation warnings in PHP 8.2.
|
|
* (T13555) MediaWiki now includes styles that allow more accessible markup for
|
|
section headings. MediaWiki's own HTML output will be changed in the future.
|
|
More information: https://www.mediawiki.org/wiki/Heading_HTML_changes
|
|
* (T193472) PHP Notice and Warning errors that are silenced (e.g. by the "@"
|
|
operator, error_reporting directive, or Wikimedia\AtEase) are now logged to
|
|
a new "silenced-error" channel.
|
|
* (T347347) The CLI installer accepts a "--with-developmentsettings" argument
|
|
to require the DevelopmentSettings.php file at install time.
|
|
* …
|
|
|
|
=== External library changes in 1.42 ===
|
|
|
|
==== New external libraries ====
|
|
* Added mediawiki/json-codec at v2.2.1
|
|
* …
|
|
|
|
===== New development-only external libraries =====
|
|
* …
|
|
|
|
==== Changed external libraries ====
|
|
* Updated OOUI from v0.48.1 to v0.48.3.
|
|
* Updated codex, codex-design-tokens and codex-icons
|
|
from v1.0.0 to v1.2.0.
|
|
* Updated wikimedia/minify from v2.5.1 to v2.7.0.
|
|
* Updated Vue from v3.2.37-compat to v3.3.9.
|
|
* Updated pear/mail from 1.5.1 to 1.6.0.
|
|
* Updated pear/net_smtp from 1.10.1 to 1.11.1.
|
|
* Updated symfony/yaml from 5.4.23 to 5.4.31.
|
|
* Updated wikimedia/relpath from 3.0.0 to 4.0.0.
|
|
* Updated guzzlehttp/guzzle from 7.5.3 to 7.7.1.
|
|
* Updated psr/http-message from 1.0.1 to 1.1.
|
|
* …
|
|
|
|
===== Changed development-only external libraries =====
|
|
* Upgraded QUnit from v2.19.4 to v2.20.0.
|
|
* Upgraded wikimedia/testing-access-wrapper from 2.0.0 to 3.0.0.
|
|
* Upgraded psy/psysh from ^0.11.1 to ^0.12.0.
|
|
* Upgraded composer/spdx-licenses from 1.5.7 to 1.5.8.
|
|
* Upgraded doctrine/sql-formatter from 1.1.1 to 1.1.3.
|
|
* Upgraded doctrine/dbal from 3.4.2 to 3.7.2.
|
|
* Upgraded seld/jsonlint from 1.8.3 to 1.10.1.
|
|
* …
|
|
|
|
==== Removed external libraries ====
|
|
* …
|
|
|
|
=== Bug fixes in 1.42 ===
|
|
* …
|
|
|
|
=== Action API changes in 1.42 ===
|
|
* APIQueryTags now includes "software" in the "source" array for software
|
|
generated tags. Reliance on the "extension" entries in this array is now
|
|
deprecated, but they will remain for backwards compatibility.
|
|
* …
|
|
|
|
=== Action API internal changes in 1.42 ===
|
|
* …
|
|
|
|
=== Languages updated in 1.42 ===
|
|
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.
|
|
|
|
* (T268143) Language variant conversion has been removed for Kazakh.
|
|
* (T351874) Added language support for Komering (kge).
|
|
* (T351992) Added language support for Efik (efi).
|
|
* (T352954) Added language support for Rutul (rut).
|
|
* (T353058) Added language support for Arbëresh (aae).
|
|
* (T353307) Added language support for Guadeloupean Creole (gcf).
|
|
* (T353500) Added language support for Southeastern Kolami (nit).
|
|
* …
|
|
|
|
=== Breaking changes in 1.42 ===
|
|
* TitleArray, deprecated since 1.41, has been removed.
|
|
* UserRightsProxy, deprecated since 1.38, has been removed.
|
|
* UserLoginCompleteHook is always called with its $direct parameter set to
|
|
boolean true. The false case has been removed.
|
|
* MagicWord::load() has been marked @internal and may change in the future
|
|
without further notice.
|
|
* BagOStuff::setNewPreparedValues() now emits deprecation warnings.
|
|
* MediaWiki's virtualrest internal library has been removed in favor of the
|
|
HTTP library like: Guzzle, MultiHttpClient or MwHttpRequest.
|
|
* Several deprecated methods have been removed from the Content interface,
|
|
in favor of the respective methods in ContentHandlers. Callers should
|
|
use a more narrow interface like ContentRenderer or ContentTransformer
|
|
when possible. The following methods have been removed from Content:
|
|
- getParserOutput()
|
|
- preSaveTransform()
|
|
- preloadTransform()
|
|
- prepareSave()
|
|
* ParserOutput::setFlag() and ::getFlag(), deprecated in 1.38, were removed. You
|
|
should use ::setOutputFlag() and ::getOutputFlag() instead.
|
|
* PostgresUpdater::addPgEnumValue() unused everywhere, have been removed
|
|
without deprecation. Use of ENUM is highly discouraged.
|
|
* ILoadBalancer::getAnyOpenConnection() has been removed without deprecation,
|
|
use ::getConnection() instead.
|
|
* LanguageConverter's internal properties, all deprecated in 1.35 or 1.36, have
|
|
now had their deprecated property accessors dropped:
|
|
- mConvRuleTitle
|
|
- mUserVariant
|
|
- mHeaderVariant
|
|
- mMaxDepth
|
|
- mVarSeparatorPattern
|
|
- mLangObj
|
|
- mTablesLoaded
|
|
- mTables
|
|
- mVariants
|
|
- mMainLanguageCode
|
|
- mVariantFallbacks
|
|
- mFlags
|
|
- mVariantNames
|
|
- mDescCodeSep
|
|
- mDescVarSep
|
|
* OutputPage::addParserOutputText has been marked @internal since there are no
|
|
known users of it. Its old behavior has been deprecated and will change
|
|
in the future without further notice.
|
|
* A some methods of ConnectionManager and SessionConsistentConnectionManager,
|
|
previously deprecated, have been removed:
|
|
- ::releaseConnection(), deprecated in 1.38; do not use
|
|
- ::getWriteConnectionRef(), deprecated in 1.39; use getWriteConnection()
|
|
- ::getReadConnectionRef(), deprecated in 1.38; use getReadConnection()
|
|
- ::getLazyWriteConnectionRef(), deprecated in 1.39; use getWriteConnection()
|
|
- ::getLazyReadConnectionRef(), deprecated in 1.38; use getReadConnection()
|
|
* CoreParserFunctions::mwnamespace(), deprecated in 1.39, has been removed. Use
|
|
CoreParserFunctions::namespace() instead.
|
|
* Processor:: and ExtensionProcessor::getExtraAutoloaderPaths(), deprecated in
|
|
1.39, have been removed; use ::getExtractedAutoloadInfo() instead.
|
|
* MWExceptionHandler::rollbackMasterChangesAndLog(), deprecated in 1.37, has
|
|
been removed. Use ::rollbackPrimaryChangesAndLog() instead.
|
|
* LanguageConverterFactory::isTitleConversionDisabled(), deprecated in 1.36,
|
|
has been removed. Use ::isLinkConversionDisabled() instead.
|
|
* MediaWikiIntegrationTestCase::$tablesUsed has been deprecated. The framework
|
|
now detects these automatically.
|
|
* Passing an actor id to the constructor of UserIdentityValue, deprecated
|
|
since 1.36, is no longer being supported.
|
|
* Support for setting dynamic property on StatusValue object has been removed.
|
|
To pass your arbitrary data along the object, use StatusValue::statusData
|
|
property (which is always declared).
|
|
* The global function wfReportTime(), deprecated since 1.40, has been removed.
|
|
* The skin template parameter 'reporttime', deprecated since 1.41, has been
|
|
removed.
|
|
* WikiPage::getPageIsRedirectField(), deprecated since 1.41, has been removed.
|
|
* WikiPage::insertRedirect(), deprecated since 1.41, has been removed.
|
|
* Several methods in PageArchive, all deprecated in 1.38, have been removed:
|
|
- ::listRevisions()
|
|
- ::getRevisionRecordByTimestamp()
|
|
- ::getArchivedRevisionRecord()
|
|
- ::getPreviousRevisionRecord()
|
|
- ::getLastRevisionId()
|
|
- ::isDeleted()
|
|
- ::getFileStatus()
|
|
- ::getRevisionStatus()
|
|
* Database, DatabaseInstaller, DatabaseUpdater, DBPrimaryPos, ResultWrapper and
|
|
SQLPlatform are no longer stable to extend. It is not possible to define
|
|
database types in an extension.
|
|
* UserDef::PARAM_ALLOWED_USER_TYPES now differentiates between temporary account
|
|
usernames and user accounts. Any endpoints that want temp users to be
|
|
valid but were passing a name through will break. Temp users must now be
|
|
explicitly allowed.
|
|
* The Hooks class, a legacy wrapper for HooksContainer, has been removed. All of
|
|
its contents have been previously deprecated in 1.35 (or 1.41 for ::runner()):
|
|
- ::register()
|
|
- ::clear(),
|
|
- ::isRegistered()
|
|
- ::getHandlers()
|
|
- ::run()
|
|
- ::runWithoutAbort()
|
|
- ::runner()
|
|
* Article::__get(), ::__set(), deprecated since 1.35, have been removed.
|
|
* Several API calls have been updated to return a 'temp' user flag:
|
|
- ApiQueryImageInfo
|
|
- ApiQueryLogEvents
|
|
- ApiQueryRecentChanges
|
|
- APIs extended from ApiQueryRevisionsBase
|
|
* Parser::getCustomDefaultSort() and ::setDefaultSort(), deprecated since 1.38,
|
|
have been removed.
|
|
* …
|
|
|
|
=== Deprecations in 1.42 ===
|
|
* (T166010) All PHP code in MediaWiki is slowly being moved to be in a class
|
|
namespace as appropriate, so that we can use PSR-4 auto-loading, which will
|
|
speed up general code loading of MediaWiki. The old global namespace class
|
|
names are being left behind as deprecated aliases.
|
|
|
|
In this release of MediaWiki, XYZ classes now have a namespace and XYZ do
|
|
not yet (XYZ% done, up from 63% in MediaWiki 1.41.0). The following have newly
|
|
been moved:
|
|
- MediaWiki\Deferred:
|
|
- AtomicSectionUpdate
|
|
- AutoCommitUpdate
|
|
- CdnCacheUpdate
|
|
- DataUpdate
|
|
- DeferrableCallback
|
|
- DeferrableUpdate
|
|
- DeferredUpdates
|
|
- DeferredUpdatesScope
|
|
- DeferredUpdatesScopeMediaWikiStack
|
|
- DeferredUpdatesScopeStack
|
|
- EnqueueableDataUpdate
|
|
- HtmlFileCacheUpdate
|
|
- JobQueueEnqueueUpdate
|
|
- MWCallableUpdate
|
|
- MergeableUpdate
|
|
- MessageCacheUpdate
|
|
- SearchUpdate
|
|
- SendPasswordResetEmailUpdate
|
|
- SiteStatsUpdate
|
|
- TransactionRoundAwareUpdate
|
|
- TransactionRoundDefiningUpdate
|
|
- UserEditCountInfo
|
|
- UserEditCountUpdate
|
|
- MediaWiki\Parser:
|
|
- ParserOutput
|
|
- MediaWiki\PoolCounter:
|
|
- PoolCounter
|
|
- PoolCounterNull
|
|
- PoolCounterRedis
|
|
- PoolCounterWork
|
|
- PoolCounterWorkViaCallback
|
|
- PoolWorkArticleView
|
|
- PoolWorkArticleViewCurrent
|
|
- PoolWorkArticleViewOld
|
|
- MediaWiki\Site:
|
|
- CachingSiteStore
|
|
- DBSiteStore
|
|
- HashSiteStore
|
|
- MediaWikiSite
|
|
- Site
|
|
- SiteExporter
|
|
- SiteImporter
|
|
- SiteList
|
|
- SiteLookup
|
|
- SiteStore
|
|
* API modules using ApiBase::requirePostedParameters() must also override
|
|
mustBePosted() to return true.
|
|
* Using `new ImportReporter( … )` or `new ApiImportReporter( … )` without
|
|
the $context parameter is now deprecated.
|
|
* Using `WikiImporterFactory::getWikiImporter()` without the $performer
|
|
parameter is now deprecated.
|
|
* BlockManager::getUserBlock() was deprecated. Instead use
|
|
BlockManager::getBlock(), which expects the caller to do ipblock-exempt
|
|
checking.
|
|
* The `composer phpunit:entrypoint` entrypoint has been deprecated, along with
|
|
bootstrap.integration.php and suite.xml. Run tests with `composer phpunit`
|
|
instead, or simply `vendor/bin/phpunit`, which use bootstrap.php and
|
|
phpunit.xml.dist.
|
|
* User::isBlocked(), ::isBlockedFromCreateAccount() and ::isBlockedFrom() now
|
|
emit deprecation warnings. They were deprecated since 1.34, 1.37 and 1.33
|
|
respectively.
|
|
* DatabaseBlock::newFromID() was deprecated and will emit deprecation warnings.
|
|
Instead use DatabaseBlockStore::newFromID().
|
|
* DatabaseBlock::getAutoblockExpiry() was deprecated without replacement.
|
|
* MagicWord::getId() has been deprecated.
|
|
* MagicWordFactory::getSubstIDs() has been deprecated.
|
|
* Status::setMessageLocalizer is deprecated. Callers that want to control the
|
|
localization of the Status object should obtain a StatusFormatter from
|
|
the StatusFormatterFactory.
|
|
* Vuex has been deprecated in favor of its successor, Pinia. Though deprecated,
|
|
Vuex 4 will remain accessible for the foreseeable future. Pinia should be used
|
|
for new projects.
|
|
* Title::getBrokenLinksFrom() has been deprecated.
|
|
* ReplicatedBagOStuff has been deprecated since 1.42.
|
|
* ParserOutput::setLanguageLinks() has been deprecated.
|
|
* ApiQueryBlockInfoTrait::addBlockInfoToQuery() will emit deprecation warnings
|
|
and will soon stop working due to schema changes. Instead use
|
|
addDeletedUserFilter() or getBlockDetailsForRows().
|
|
* UploadBase::getImageInfo was deprecated, subclasses of ApiUpload can use
|
|
ApiUpload::getUploadImageInfo() instead.
|
|
* DatabaseBlockStore::updateTimestamp() is now internal and should not be
|
|
called.
|
|
* The module `mediawiki.icon` has been deprecated. Use the Codex mixin instead
|
|
(T351681).
|
|
* Passing a WikiPage to PageEditStash::parseAndCache() has been deprecated.
|
|
Use PageUpdater instance.
|
|
* SpecialBlock::getSuggestedDurations() has been deprecated, use
|
|
Language::getBlockDurations() instead.
|
|
* (T352284) Some user options-related classes were moved over to the existing
|
|
MediaWiki\User\Options namespace. Old names are deprecated and kept as
|
|
aliases for backwards-compatibility:
|
|
- DefaultOptionsLookup
|
|
- UserOptionsLookup
|
|
- UserOptionsManager
|
|
- StaticUserOptionsLookup
|
|
* Database::listViews() has been deprecated. This was previously used to filter
|
|
views out of the return value of Database::listTables(). Now listTables()
|
|
will not include views. MediaWiki does not use views.
|
|
* …
|
|
|
|
=== Other changes in 1.42 ===
|
|
* Gallery: Image captions are no longer wrapped in <p> tags. Skins that
|
|
customize rendering for galleries may need to tweak their CSS.
|
|
* Scripts under maintenance/dev/, for quickly setup a local MediaWiki for
|
|
development purposes, have been removed, see DEVELOPERS.md for alternatives.
|
|
* …
|
|
|
|
== Compatibility ==
|
|
|
|
MediaWiki 1.42 requires PHP 7.4.3 or later and the following PHP extensions:
|
|
|
|
* ctype
|
|
* dom
|
|
* fileinfo
|
|
* iconv
|
|
* intl
|
|
* json
|
|
* mbstring
|
|
* 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/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.libera.chat.
|