123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852 |
- = 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:
- * MediaWiki now requires Composer 2.x, and any related (vendor) files generated
- by Composer must be generated by Composer 2.x. Composer 1.x is mostly end of
- life by upstream, and using it will result in slower actions when downloading
- and installing packages. See the upstream blog post at
- https://blog.packagist.com/deprecating-composer-1-support/ for further
- information.
- * …
- For notes on 1.41.x and older releases, see HISTORY.
- === Configuration changes for system administrators in 1.42 ===
- * Composer 1.x is no longer supported, and can no longer be used with MediaWiki.
- * …
- ==== 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.
- * $wgConditionalUserOptions: Makes it possible to define user properties with
- defaults varying by user, without growing the user_properties table. Typical
- use-case is to enable a feature only for users created after a certain date.
- * $wgGrantRiskGroups: Grant risk levels, used to indicate on various UIs which
- grants should be considered risky. (T290790)
- * $wgTempAccountCreationThrottle: Like AccountCreationThrottle, but for managing
- temporary account creations.
- * …
- ==== Changed configuration ====
- * $wgAutoCreateTempUser: 'matchPattern' now supports multiple match patterns.
- * $wgLogActionsHandlers is now ObjectFactory compatible.
- * $wgBotPasswordsCluster and $wgBotPasswordsDatabase have been deprecated
- use $wgVirtualDomainsMapping['virtual-botpasswords'] instead.
- * The MainPageIsDomainRoot setting is no longer considered experimental.
- * $wgAutoCreateTempUser is updated to use a different format for temporary
- accounts. This configuration value is marked as unstable, so breaking
- changes were expected. If your wiki used temporary accounts before
- 1.42, you will need to override the configuration value to also match
- the old format of *$1.
- * …
- ==== 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.
- * $wgLogoHD, deprecated since 1.35, has been removed. Use $wgLogo instead.
- * $wgContentHandlerTextFallback, deprecated since 1.37, has been removed.
- No longer customizable.
- * $wgSquidPurgeUseHostHeader, deprecated since 1.33, has been removed.
- No longer customizable and always true.
- * $wgAllowImageTag, deprecated since 1.35, has been removed.
- Register an extension tag named <img> instead.
- * $wgMinimalPasswordLength and $wgMaximalPasswordLength, deprecated since 1.26
- have been dropped. Use $wgPasswordPolicy instead.
- * $wgUseMediaWikiUIEverywhere has been removed.
- * $wgHTMLFormAllowTableFormat has been removed.
- * $wgOpenSearchTemplate, deprecated since 1.25, has been removed
- Use $wgOpenSearchTemplates['application/x-suggestions+json'] instead.
- * $wgUseSameSiteLegacyCookies has been removed.
- * …
- === New user-facing features in 1.42 ===
- * (T308160) filter: is now allowed in inline CSS in wikitext
- * …
- === 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.
- * (T350054) MediaWiki's ResourceLoader has been updated to add basic support
- for code-splitting (aka "tree-shaking") when using the Codex component
- library. A ResourceLoader module can now specify a list of "codexComponents"
- in its module defintion and ensure that only the code for those components
- gets sent to the client. More information:
- https://www.mediawiki.org/wiki/Codex#Subset_of_components
- * (T345185) The SessionProviderInterface now allows defining providers that
- are exempt from rights checks when auto creating users.
- * …
- === External library changes in 1.42 ===
- ==== New external libraries ====
- * Added mediawiki/json-codec at v2.2.1.
- * Added mck89/peast at v1.16.2.
- * …
- ===== New development-only external libraries =====
- * …
- ==== Changed external libraries ====
- * Updated OOUI from v0.48.1 to v0.49.1.
- * Updated OOjs Router from 0.3.0 to 0.5.0.
- * Updated codex, codex-design-tokens and codex-icons
- from v1.0.0 to v1.3.6.
- * Updated Vue from v3.2.37-compat to v3.3.9.
- * Updated composer/semver from 3.3.2 to 3.4.0.
- * Updated guzzlehttp/guzzle from 7.5.3 to 7.7.1.
- * Updated monolog/monolog from 2.2.0 to 2.9.2.
- * Updated pear/mail from 1.5.1 to 1.6.0.
- * Updated pear/mail_mime from 1.10.11 to 1.10.12.
- * Updated pear/net_smtp from 1.10.1 to 1.11.1.
- * Updated psr/http-message from 1.0.1 to 1.1.
- * Updated symfony/polyfill-php80 from 1.28.0 to 1.29.0.
- * Updated symfony/polyfill-php81 from 1.28.0 to 1.29.0.
- * Updated symfony/polyfill-php82 from 1.28.0 to 1.29.0.
- * Updated symfony/polyfill-php83 from 1.28.0 to 1.29.0.
- * Updated symfony/yaml from 5.4.23 to 5.4.35.
- * Updated wikimedia/less.php from 4.1.1 to 4.2.1.
- * Updated wikimedia/remex-html from 4.0.1 to 4.1.0.
- * Updated wikimedia/minify from 2.5.1 to 2.7.0.
- * Updated wikimedia/relpath from 3.0.0 to 4.0.0.
- * Updated wikimedia/shellbox from 4.0.0 to 4.0.1.
- * …
- ===== Changed development-only external libraries =====
- * Updated QUnit from v2.19.4 to v2.20.0.
- * Updated composer/spdx-licenses from 1.5.7 to 1.5.8.
- * Updated doctrine/dbal from 3.4.2 to 3.7.2.
- * Updated doctrine/sql-formatter from 1.1.1 to 1.1.3.
- * Updated grunt-banana-checker from 0.11.0 to 0.11.1.
- * Updated mediawiki/mediawiki-codesniffer from 42.0.0 to 43.0.0.
- * Updated mediawiki/mediawiki-phan-config from 0.13.0 to 0.14.0.
- * Updated php-parallel-lint/php-parallel-lint from 1.3.2 to 1.4.0.
- * Updated phpunit/phpunit from 9.5.28 to 9.6.16.
- * Updated psy/psysh from ^0.11.1 to ^0.12.3.
- * Updated seld/jsonlint from 1.8.3 to 1.10.1.
- * Updated wikimedia/testing-access-wrapper from 2.0.0 to 3.0.0.
- * …
- ==== 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.
- * (T352776) Updated autonym spelling for the Mon language (mnw).
- * (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).
- * (T354519) Added language support for Tooro (ttj).
- * (T354926) Added language support for Nyoro (nyo).
- * (T356616) Added language support for Chinook Jargon (chn).
- * (T357879) Added language support for Ibibio (ibb).
- * …
- === Breaking changes in 1.42 ===
- * (T340802) ResourceLoader: The targets system is no longer active; all modules
- will load on all platforms even if they are marked as desktop- or mobile-only
- in the 'targets' field, which is no longer read. As part of this, the internal
- methods RL\Module::setTarget() & ::getTargets(), and OutputPage::setTarget(),
- have been removed.
- * TitleArray, deprecated since 1.41, has been removed.
- * UserRightsProxy, deprecated since 1.38, has been removed.
- * SiteConfiguration::getConfig(), deprecated in 1.41, 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.
- * All classes that implemented IDBAccessObject interface and all interfaces
- that extended it, no longer do that. See https://w.wiki/9DAX for more info.
- * BagOStuff::setNewPreparedValues() now emits deprecation warnings.
- * The type of the last parameter of BeforeInitializeHook::onBeforeInitialize
- and MediaWikiPerformActionHook::onMediaWikiPerformAction changed from
- MediaWiki to ActionEntryPoint. Relevant methods are still available on
- the object.
- * Classes that override Maintenance::finalSetup() must now declare the
- $settings parameter and pass it on when calling the parent implementation.
- MaintenanceRunner will always provide this parameter when calling
- finalSetup().
- * WebResponse::disableForPostSend() is no longer static.
- * 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()
- * User::blockedFor() and AbstractBlock::getReason(), deprecated in 1.35, have
- been removed. Use AbstractBlock::getReasonComment() instead.
- * SerializedValueContainer::newUnified(), deprecated in 1.41 has been removed.
- * Use of ActorMigration for any of the following tables, deprecated since 1.34,
- is no longer supported:
- - archive
- - image
- - oldimage
- - filearchive
- - recentchanges
- - logging
- - ipblocks
- * ParserOutput::setFlag() and ::getFlag(), deprecated in 1.38, were removed. You
- should use ::setOutputFlag() and ::getOutputFlag() instead.
- * ParserOutput::getCategories(), deprecated in 1.40, has been removed. You
- should use ::getCategoryNames() and ::getCategorySortKey() instead.
- * ParserOutput::getTOCHTML(), deprecated in 1.40, has been removed. You should
- use ::getTOCData() instead.
- * The parser does not substitute the default category sort key at
- parse time; this is substituted when the category links table is
- updated instead. As a result {{DEFAULTSORT}} will affect all the
- contents of the page (not just categories added after the location
- of {{DEFAULTSORT}} in the article) and
- ParserOutput::getCategorySortKey() will return the empty string
- (still meaning "use the default sort key") instead of the immediate
- value of {{DEFAULTSORT}}. ParserOutput::getCategorySortKey() will
- directly reflect the category link contents, instead of having
- postprocessing done to it (character references decoded, newlines
- replaced, language conversion). That postprocessing is now done
- when the category links table is updated, and so it consistently
- applies even when categories are added directly via API.
- * 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.
- * The unused method CommentStore::getFields() has been removed without
- depreaction.
- * 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.
- * Passing a custom database connection to DatabaseBlockStore::insertBlock(),
- deprecated since 1.41, is no longer supported.
- * 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.
- * UserOptionsLookup::getDefaultOptions() and
- UserOptionsLookup::getDefaultOption() now accept an UserIdentity, to
- take conditional defaults for user properties into account. When conditional
- defaults are used, calling those methods without the UserIdentity might
- produce unexpected results.
- * Installer related classes have been namespaced without having aliases added.
- The following have been moved to MediaWiki\Installer:
- - CliInstaller
- - DatabaseInstaller
- - InstallDocFormatter
- - Installer
- - InstallerOverrides
- - InstallerSessionProvider
- - LocalSettingsGenerator
- - MysqlInstaller
- - PostgresInstaller
- - PostgresUpdater
- - SqliteInstaller
- - SqliteUpdater
- - WebInstaller
- - WebInstallerComplete
- - WebInstallerCopying
- - WebInstallerDBConnect
- - WebInstallerDBSettings
- - WebInstallerDocument
- - WebInstallerExistingWikis
- - WebInstallerInstall
- - WebInstallerLanguage
- - WebInstallerName
- - WebInstallerOptions
- - WebInstallerOutput
- - WebInstallerPage
- - WebInstallerReleaseNotes
- - WebInstallerRestart
- - WebInstallerUpgrade
- - WebInstallerUpgradeDoc
- - WebInstallerWelcome
- * mediawiki.ui/variables.less, deprecated since 1.41, has been removed in
- favor of mediawiki.skin.variables.less.
- * The module `jquery.cookie` (deprecated as of 1.41) has been removed. Please
- use `mediawiki.cookie` instead
- * The no-op module `es6-polyfills` (deprecated as of 1.41) has been removed.
- * Log formatters (as defined in $wgLogActionsHandlers) are now created by
- ObjectFactory, which means their constructors must be public. Legacy log
- formatters using callbacks instead of class names are no longer supported.
- * The old aliases for the namespaced ResourceLoader classes, deprecated since
- they were moved in MediaWiki 1.39, have now been dropped:
- - ResourceLoader – use MediaWiki\ResourceLoader\ResourceLoader
- - ResourceLoaderCircularDependencyError
- – use MediaWiki\ResourceLoader\CircularDependencyError
- - ResourceLoaderClientHtml – use MediaWiki\ResourceLoader\ClientHtml
- - ResourceLoaderCodexModule – use MediaWiki\ResourceLoader\CodexModule
- - ResourceLoaderContext – use MediaWiki\ResourceLoader\Context
- - ResourceLoaderFileModule – use MediaWiki\ResourceLoader\FileModule
- - ResourceLoaderFilePath – use MediaWiki\ResourceLoader\FilePath
- - ResourceLoaderForeignApiModule
- – use MediaWiki\ResourceLoader\ForeignApiModule
- - ResourceLoaderImage – use MediaWiki\ResourceLoader\Image
- - ResourceLoaderImageModule – use MediaWiki\ResourceLoader\ImageModule
- - ResourceLoaderLessVarFileModule
- – use MediaWiki\ResourceLoader\LessVarFileModule
- - ResourceLoaderModule – use MediaWiki\ResourceLoader\Module
- - ResourceLoaderMwUrlModule – use MediaWiki\ResourceLoader\MwUrlModule
- - ResourceLoaderOOUIFileModule – use MediaWiki\ResourceLoader\OOUIFileModule
- - ResourceLoaderOOUIIconPackModule
- – use MediaWiki\ResourceLoader\OOUIIconPackModule
- - ResourceLoaderOOUIImageModule
- – use MediaWiki\ResourceLoader\OOUIImageModule
- - ResourceLoaderOOUIModule – use MediaWiki\ResourceLoader\OOUIModule
- - ResourceLoaderSiteModule – use MediaWiki\ResourceLoader\SiteModule
- - ResourceLoaderSiteStylesModule
- – use MediaWiki\ResourceLoader\SiteStylesModule
- - ResourceLoaderSkinModule – use MediaWiki\ResourceLoader\SkinModule
- - ResourceLoaderStartUpModule – use MediaWiki\ResourceLoader\StartUpModule
- - ResourceLoaderUserModule – use MediaWiki\ResourceLoader\UserModule
- - ResourceLoaderUserOptionsModule
- – use MediaWiki\ResourceLoader\UserOptionsModule
- - ResourceLoaderUserStylesModule
- – use MediaWiki\ResourceLoader\UserStylesModule
- - ResourceLoaderWikiModule – use MediaWiki\ResourceLoader\WikiModule
- - DerivativeResourceLoaderContext
- – use MediaWiki\ResourceLoader\DerivativeContext
- - MessageBlobStore – use MediaWiki\ResourceLoader\MessageBlobStore
- - VueComponentParser – use MediaWiki\ResourceLoader\VueComponentParser
- * (T318989) Skin::lastModified, deprecated since 1.40, has been removed.
- * Composer 1.x is no longer supported, and can no longer be used with MediaWiki.
- * Title::GAID_FOR_UPDATE, deprecated in 1.34, has been removed. Instead, your
- code should use IDBAccessObject::READ_LATEST.
- * Six private Title class members, deprecated in 1.37, are now fully private;
- use their corresponding accessor methods:
- - $mTextform -> getText()
- - $mUrlform -> getPartialURL()
- - $mDbkeyform -> getDBkey()
- - $mNamespace -> getNamespace()
- - $mInterwiki -> getInterwiki()
- - $mFragment -> getFragment()
- * Skin::bottomScripts, deprecated since 1.37, has been removed.
- * Fallback index and options have been removed from
- DBAccessObjectUtils::getDBOptions() without deprecation.
- * The deprecated class aliases for now-namespaced or renamed PHP classes that
- were added in or before 1.39 LTS have now been removed:
- - Blob -> Wikimedia\Rdbms\Blob
- - Block -> MediaWiki\Block\DatabaseBlock
- - DBAccessError -> Wikimedia\Rdbms\DBAccessError
- - DBConnectionError -> Wikimedia\Rdbms\DBConnectionError
- - DBError -> Wikimedia\Rdbms\DBError
- - DBExpectedError -> Wikimedia\Rdbms\DBExpectedError
- - DBQueryError -> Wikimedia\Rdbms\DBQueryError
- - DBReadOnlyError -> Wikimedia\Rdbms\DBReadOnlyError
- - DBReplicationWaitError -> Wikimedia\Rdbms\DBReplicationWaitError
- - DBTransactionError -> Wikimedia\Rdbms\DBTransactionError
- - DBTransactionSizeError -> Wikimedia\Rdbms\DBTransactionSizeError
- - DBUnexpectedError -> Wikimedia\Rdbms\DBUnexpectedError
- - DatabaseMysqlBase -> Wikimedia\Rdbms\DatabaseMySQL
- - DatabaseMysqli -> Wikimedia\Rdbms\DatabaseMySQL
- - EasyDeflate -> Deflate
- - Field -> Wikimedia\Rdbms\Field
- - IMaintainableDatabase -> Wikimedia\Rdbms\IMaintainableDatabase
- - LinksDeletionUpdate -> MediaWiki\Deferred\LinksUpdate\LinksDeletionUpdate
- - LinksUpdate -> MediaWiki\Deferred\LinksUpdate\LinksUpdate
- - LoadBalancer -> Wikimedia\Rdbms\LoadBalancer
- - LoadBalancerSingle -> Wikimedia\Rdbms\LoadBalancerSingle
- - RCFeedEngine -> FormattedRCFeed
- - RandomPage -> MediaWiki\Specials\SpecialRandomPage
- * The return value of IDatabase::upsert(), deprecated since 1.33, has been
- removed.
- * Instancing MediaWiki\Specials\SpecialRandomPage without injected services has
- been removed.
- * mediawiki.ui/utilities.less with its three layout CSS classes has been removed
- * SpecialPage::listed() and ::setListed(), deprecated since 1.35, have both been
- removed. Use ::isListed() to read, and over-ride by implementing isListed() or
- by sub-classing UnlistedSpecialPage.
- * BlockListPager::getTotalAutoblocks() was removed.
- * …
- === Deprecations in 1.42 ===
- * (T273239) wfGetDB(), deprecated in 1.39, now emits deprecation warnings. Most
- code can migrate to MediaWikiServices::getInstance()->getConnectionProvider()
- ->getReplicaDatabase() or …->getPrimaryDatabase() as appropriate.
- * (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\Cache:
- - BacklinkCache
- - FileCacheBase
- - GenderCache
- - HTMLCacheUpdater (and fix case for consistency with HTMLFileCache)
- - LinkBatch
- - LinkCache
- - UserCache
- - MediaWiki\Context:
- - ContextSource
- - DerivativeContextSource
- - IContextSource
- - MutableContext
- - RequestContext
- - 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\HTMLForm:
- - CodexHTMLForm
- - CollapsibleFieldsetLayout
- - HTMLForm
- - HTMLFormActionFieldLayout
- - HTMLFormElement
- - HTMLFormField
- - HTMLFormFieldLayout
- - HTMLFormFieldRequiredOptionsException
- - HTMLNestedFilterable
- - OOUIHTMLForm
- - VFormHTMLForm
- - MediaWiki\HTMLForm\Field:
- - HTMLApiField
- - HTMLAutoCompleteSelectField
- - HTMLButtonField
- - HTMLCheckField
- - HTMLCheckMatrix
- - HTMLComboboxField
- - HTMLDateTimeField
- - HTMLEditTools
- - HTMLExpiryField
- - HTMLFileField
- - HTMLFloatField
- - HTMLFormFieldCloner
- - HTMLFormFieldWithButton
- - HTMLHiddenField
- - HTMLInfoField
- - HTMLIntField
- - HTMLMultiSelectField
- - HTMLNamespacesMultiselectField
- - HTMLRadioField
- - HTMLRestrictionsField
- - HTMLSelectAndOtherField
- - HTMLSelectField
- - HTMLSelectLanguageField
- - HTMLSelectLimitField
- - HTMLSelectNamespace
- - HTMLSelectNamespaceWithButton
- - HTMLSelectOrOtherField
- - HTMLSizeFilterField
- - HTMLSubmitField
- - HTMLTagFilter
- - HTMLTagMultiselectField
- - HTMLTextAreaField
- - HTMLTextField
- - HTMLTextFieldWithButton
- - HTMLTimezoneField
- - HTMLTitleTextField
- - HTMLTitlesMultiselectField
- - HTMLToggleSwitchField
- - HTMLUserTextField
- - HTMLUsersMultiselectField
- - MediaWiki\Installer:
- - DatabaseUpdater
- - MysqlUpdater
- - MediaWiki\LinkedData:
- - PageDataRequestHandler
- - MediaWiki\Maintenance:
- - Version
- - MediaWiki\Message:
- - Message
- - MediaWiki\Parser:
- - Parser
- - ParserOutput
- - MediaWiki\PoolCounter:
- - PoolCounter
- - PoolCounterNull
- - PoolCounterRedis
- - PoolCounterWork
- - PoolCounterWorkViaCallback
- - PoolWorkArticleView
- - PoolWorkArticleViewCurrent
- - PoolWorkArticleViewOld
- - MediaWiki\Site:
- - CachingSiteStore
- - DBSiteStore
- - HashSiteStore
- - MediaWikiSite
- - Site
- - SiteExporter
- - SiteImporter
- - SiteList
- - SiteLookup
- - SiteStore
- - (T352284) MediaWiki\User\Options:
- - DefaultOptionsLookup
- - UserOptionsLookup
- - UserOptionsManager
- - StaticUserOptionsLookup
- * Some hook classes have been moved from the generic MediaWiki\Hooks namespace
- to live closer to the code which uses them:
- - MediaWiki\Output\Hook:
- - AfterBuildFeedLinksHook
- - AfterFinalPageOutputHook
- - BeforePageDisplayHook
- - BeforePageRedirectHook
- - GetCacheVaryCookiesHook
- - LanguageLinksHook
- - MakeGlobalVariablesScriptHook
- - OutputPageAfterGetHeadLinksArrayHook
- - OutputPageBeforeHTMLHook
- - OutputPageBodyAttributesHook
- - OutputPageCheckLastModifiedHook
- - OutputPageMakeCategoryLinksHook
- - OutputPageParserOutputHook
- * API modules using ApiBase::requirePostedParameters() must also override
- mustBePosted() to return true.
- * Overriding MWException::getHTML(), ::getText(), ::getPageTitle(), and
- ::reportHTML() in order to display custom exception messages is now
- deprecated. Provide the error message when constructing the Exception,
- or if you need a whole custom error page, use ErrorPageError instead.
- * 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.
- * The global variable $wgCommandLineMode is deprecated. In most cases checks
- for `$wgCommandLineMode` can be replaced with `MW_ENTRY_POINT === 'cli'`.
- * The global function wfUnpack is deprecated and emits deprecation
- warnings. Use StringUtils::unpack instead.
- * SpecialEmailUser::getTarget() has been deprecated.
- * 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.
- * Html::buttonAttributes() and Html::getTextInputAttributes() methods
- no longer do anything and have been deprecated.
- * DatabaseBlock::doAutoblock and ::updateTimestamp are now deprecated, use
- DatabaseBlockStore::doAutoblock and ::updateTimestamp instead.
- * The MediaWiki class has been deprecated. Type hints in hooks should be
- changed to refer to MediaWikiEntryPoint instead. Note that extensions should
- not define their own entry points and should not interfere with the state of
- MediaWikiEntryPoint instances.
- * Various methods in ObjectCache have been deprecated and their equivalent made
- available in ObjectCacheFactory, use them instead:
- - ::getInstance() -> ObjectCacheFactory::getInstance()
- - ::newFromParams() -> ObjectCacheFactory::newFromParams()
- - ::newAnything() -> ObjectCacheFactory::newInstance(
- ObjectCache::getAnythingId() )
- - ::getLocalServerInstance() -> ObjectCacheFactory::getLocalServerInstance()
- - ::clear() -> ObjectCacheFactory::clear()
- - In addition, the ObjectCache::$instances member has been deprecated as well.
- * 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.
- * Linker::makeHeadline() has been deprecated.
- * SerializedValueContainer::isUnified() has been deprecated and now emits
- deprecation warnings since 1.42.
- * Linker::generateTOC(), Linker::tocIndent(), Linker::tocUnindent(),
- Linker::tocLine(), Linker::tocLineEnd(), Linker::tocList() are deprecated.
- * Title::getBrokenLinksFrom() has been deprecated.
- * LogFormatter subclasses now emit deprecation warnings unless they are
- constructed using LogFormatterFactory.
- * ReplicatedBagOStuff has been deprecated since 1.42.
- * The third argument to ContentRenderer::getParserOutput() now accepts a
- RevisionRecord or WikiRevision; passing an integer revision id has been
- deprecated and emits a warning.
- * Passing a null value to ParserOutput::setPageProperty() has been deprecated
- and emits a warning; pass an empty string or use `::unsetPageProperty()`
- instead.
- * Passing a non-string value to ParserOutput::setPageProperty() has been
- deprecated; use ::setNumericPageProperty() instead.
- * Passing a non-scalar value to ParserOutput::setPageProperty() will emit
- a warning (it has never worked).
- * ParserOutput::setLanguageLinks() has been deprecated.
- * ParserOutput::getTimestamp() and ::setTimestamp() have been deprecated; use
- ::getRevisionTimestamp() and ::setRevisionTimestamp() instead.
- * ParserOutput::setText() has been deprecated; use ::setRawText() instead which
- matches the name of the corresponding getter, ParserOutput::getRawText().
- * ParserOutput::addTemplate() will emit a deprecation warning if it is called
- with a non-local title, such as an interwiki link. In a future release
- it will throw InvalidArgumentException.
- * The use of dynamic properties of Parser has been deprecated and will emit
- deprecation warnings.
- * The following deprecated public properties of Parser will emit deprecation
- warnings:
- - Parser::$ot, deprecated since 1.35
- - Parser::$mTitle, deprecated since 1.35
- - Parser::$mOptions, deprecated since 1.35
- * The following deprecated public properties of Parser are now marked
- for internal use only:
- - Parser::$mPPNodeCount, deprecated since 1.35
- - Parser::$mHighestExpansionDepth, deprecated since 1.35
- * 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 LocalisationCache helper class GlobalDependency has been deprecated,
- use MainConfigDependency instead.
- * The module `mediawiki.icon` has been deprecated. Use the Codex mixin instead
- (T351681).
- * ConfigRepository::class and MediaWikiServices::getConfigRepository() have been
- deprecated, they are unused.
- * Passing a WikiPage to PageEditStash::parseAndCache() has been deprecated.
- Use PageUpdater instance.
- * SpecialBlock::getSuggestedDurations() has been deprecated, use
- Language::getBlockDurations() instead.
- * MediaWikiServices::getBlockErrorFormatter() has been deprecated, use
- MediaWikiServices::getFormatterFactory()->getBlockErrorFormatter() instead.
- * DummyLinker has been deprecated. The DummyLinker parameter to the
- 'ImageBeforeProduceHTML' hook will become null in the future.
- * 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.
- * (T207621) UserMailer::rfc822Phrase() has been hard deprecated.
- * TempUserConfig::getMatchPattern has been deprecated, use
- TempUserConfig::getMatchPatterns instead.
- * (T230025) Title::purgeSquid(), deprecated in 1.35, now emits warnings.
- * Title::getCdnUrls(), deprecated in 1.35, now emits warnings.
- * The rarely-used convenience method Xml::wrapClass() is now deprecated. Instead
- you can use Xml::tags('span', ['class'=>'foo'], 'bar').
- * WebRequest::getCrossSiteCookie() has been deprecated due to the removal of
- $wgUseSameSiteLegacyCookies. It will emit deprecation warnings. Use
- WebRequest::getCookie().
- * Using the array_merge_recursive merge strategy in extension.json and skin.json
- has been hard deprecated.
- * DBAccessObjectUtils::getDBFromIndex() is now deprecated, use
- ::getDBFromRecency() instead.
- * Many Xml methods that are specific to HTML but not XML are deprecated:
- - Xml::buildForm
- - Xml::buildTable
- - Xml::buildTableRow
- - Xml::check
- - Xml::checkLabel
- - Xml::dateMenu
- - Xml::fieldset
- - Xml::input
- - Xml::inputLabel
- - Xml::inputLabelSep
- - Xml::label
- - Xml::languageSelector
- - Xml::listDropdown
- - Xml::listDropdownOptions
- - Xml::listDropdownOptionsOoui
- - Xml::monthSelector
- - Xml::option
- - Xml::password
- - Xml::radio
- - Xml::radioLabel
- - Xml::span
- - Xml::submitButton
- - Xml::textarea
- - Xml::attrib (only for use in HTML, not XML contexts)
- * IMaintainableDatabase::truncate() has been deprecated. Use truncateTable()
- instead.
- * TextConflictHelper->incrementStatsByUserEdits() is now deprecated. The
- action this function previously handled should be moved into
- incrementConflictStats() and incrementResolvedStats().
- * SQLPlatform::getQueryVerb() is now deprecated.
- * …
- === 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/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.
|