MediaWiki 1.37.0

MediaWiki is a free and open-source wiki software package written in PHP. It serves as the platform for Wikipedia and the other Wikimedia projects, used by hundreds of millions of people each month. MediaWiki is localised in over 350 languages and its reliability and robust feature set have earned it a large and vibrant community of third-party users and developers. MediaWiki is: feature-rich and extensible, both on-wiki and with hundreds of extensions; scalable and suitable for both small and large sites; simple to install, working on most hardware/software combinations; and available in your language.

Tags wiki php
License GNU GPLv3
State mature

Recent Releases

1.37.020 Nov 2021 22:24 minor feature: I am happy to announce the availability of the general release of MediaWiki 1.37! Tarballs have already been uploaded, and the git tag has been pushed. Please note that MediaWiki 1.37 (as did 1.36) now requires the PHP internationalization extension, commonly referred to as Intl, ext-intl, or php-intl. As a reminder, 1.31 (the old LTS) became end of life in September 2021. 1.35 (the new LTS) is supported until September 2023. Note that the patches in comparison rc.2 are much larger than usual due to the re-introduction of translation backports. This only includes updates for MediaWiki core and bundled skins. Extension updates will follow in the next point release (along with further updates for MediaWiki core and the bundled skins). MediaWiki 1.37 will be supported until November 2022. MediaWiki 1.38 is due to be released in May 2022. === Changes since MediaWiki 1.37.0-rc.2 === * Remove justinrainbow/json-schema from vendor. * Updated pear/mail_mime from 1.10.9 to 1.10.11. * Update deprecated Guzzle Psr7 function calls. * (T281972) UserIdentityValue: Correct @since tags. * Updated wikimedia/parsoid from v0.14.0-a19 to v0.14.0. * Localisation updates. * Tweak error message for missing composer dependencies.
1.35.101 Apr 2021 07:50 minor feature: This is a maintenance release of the MediaWiki 1.35 branch. While normally running update.php isn't required for point releases, it is recommended to run it for 1.35.1 so that sites.site_language is updated to take 35 characters. Watchlist Expiry is no longer considered experimental, but is off by default. To enable it, set wgWatchlistExpiry = true; in your LocalSettings.php. === Changes since MediaWiki 1.35.0 === * (T263929) purgeList.php Fix all-namespaces option to match one used in code. * (T248719) ParserCache::get - fix wfDeprecated call. * (T261430) WatchlistExpiryWidget: Move focus to expiry dropdown after hitting Tab. * Preload mediawiki.watchstar.widgets before api request. * (T261030) ApiEditPage: Show existing watchlist expiry if status is not being changed. * (T264502) Fix PHP 8 compat with strcspn() length parameter exceeding string. * (T248925) Remove final modifier on private function. * (T264683) Remove ipb_anon_only from ipb_address_unique index addition. * (T261415) Add days left messages to changes-lists' clock icons. * Fix order of wfDeprecated parameters in ExternalStoreDB::getSlave. * (T261260) Preload class used in HeaderCallback. * (T260868, T260009) Normalize WatchedItem expiry field. * (T264683) Remove doTable check from (Mysql Sqlite)Updater::indexHasFields. * (T264534) ApiPageSet: Avoid infinite loop when merging redirects. * (T196906) Empty Monolog loggers are now real blackholes. * (T258649) WatchAction: avoid UPDATE when old and new watch period is indefinite. * Parser: Adjust typehint to show that getTitle can return null. * (T263592) media: Fix case of FlashPixVersion in FormatMetadata::makeFormattedData(). * (T265223) BaseTemplate: Guard against passing zero arg to array_merge(). * (T264965) Fix base path handling for MessagePosterModule registration. * (T252183) Fix Database::getTempTableWrites for multi table DDLs. * (T182546) Fix switch/case indentation per mediawiki coding conventions. * Flip Yoda conditionals. * (T26
1.35.029 Sep 2020 12:05 minor feature: Merge "rdbms: Mark the Database class as stable for subclassing" . rcfilters: focus order on the limit/duration popup. . Merge "rcfilters: focus order on the limit/duration popup". . MediaSearchWidget: Added aria-label for screen reader for the search . . Merge "make prefetch for dumps work with large revisions for multiple . . mediawiki.ui: Deprecate `@colorProgressive*` `@colorDestructive*` v . . Merge "mediawiki.ui: Deprecate `@colorProgressive*` `@colorDestruct . . mediawiki.ui: Deprecate message (boxes) related variables. . mediawiki.ui: Deprecate `@colorMediumSevere` `@colorLowSevere` vars. . Add REL1_35 sub-modules. . RELEASE-NOTES-1.35: Note that this is now pre-testing, not alpha. . Merge "Add REL1_35 sub-modules" into REL1_35. . registration: string "true" in extension v2 schema. . EditPage: handle undoafter param properly. . Update git submodules. . composer: Lock Parsoid version to specific 0.12.0-a22 release. . Merge "composer: Lock Parsoid version to specific 0.12.0-a22 release" . . Bump Parsoid to v0.12.0-a23. . Update git submodules. . Merge "Bump Parsoid to v0.12.0-a23" into REL1_35. . installer: Undeprecate WebInstaller::getInfoBox(), still used. . Update git submodules. . Remove the obsolete populateContentModel script. . Clarify hook definition in extension.json. . Add overlay to mw.notify area. . Add watchlist expiry support to applicable APIs. . Merge "Add overlay to mw.notify area" into REL1_35. . Update the hooks documentation included with MediaWiki. . Remove obsolete findHooks.php script. . vue: Add unminified version of vue.common.prod.js. . shell: Expand documentation in firejail.profile. . Deprecate printableversion=yes. . Add import/export round trip test. . MCR import. . Check for unknown slot. . PageUpdater: handling of null edits. . registration: Sync v2 and v1 schemas. . Merge "PageUpdater: handling of null edits" into REL1_35. . OOUI: Backport I3d88853fdf9915d2b08063c80ecaf7d92828a5df. .
1.34.425 Sep 2020 03:15 minor feature: PHPCS. phan in ActorMigration. . Prep 1.34.4. . Add documentation to ActorMigration::getExistingActorId().
1.35.0-rc.305 Sep 2020 12:45 minor feature: mediawiki.visibleTimeout: Update the nextVisibleTimeoutId value . Update git submodules. . Update git submodules. . Remove maintenance/createCommonPasswordCdb.php. . Add missing comma to ValidSkinNames code example. . Increase "sites.site_global_key" to varbinary(64). . Merge "Remove maintenance/createCommonPasswordCdb.php" into REL1_35. . Merge "mediawiki.visibleTimeout: Update the nextVisibleTimeoutId valu . . shell edge-cases in Windows. . Drop PHP 7.2 support in MediaWiki 1.35; require 7.3.19. . Update RELEASE-NOTES-1.35. . Add CentralIdLookup::factoryNonLocal(). . CentralIdLookup: Add @SInCE to factoryNonLocal(). . User::pingLimiter: add user-global rate limit type. . Update git submodules. . User: enforce pingLimiter() expiry time. . Remove maintenance/storage/drop_content_model_info.sql. . Rest: Handle Uri constructor exception. . RequestFromGlobalsTest failing in Travis CI. . Rest: Use try/catch to handle URIs with embedded colon. . Few more RELEASE-NOTES items. . Bump MW_VERSION to 1.35.0-rc.3.
1.35.0-rc.222 Aug 2020 11:45 minor feature: uuid: filenames on Windows . Remove Gruntfile.js from the tarball. . Remove package-lock.json from the tarball. . firejail: Strengthen by copying from Wikimedia's profile. . Merge "firejail: Strengthen by copying from Wikimedia's profile" into . . ResourceLoaderOOUIImageModule: loadOOUIDefinition() may return false. . installer: PostgreSQL installer should respect a custom port. . Update git submodules. . bad use of ` =` PHP bit operation where `= ` bool is intended. . SpecialBlock: Show error if a block could not be inserted or found. . UserOptionsManager: options reset. . Merge "SpecialBlock: Show error if a block could not be inserted or f . . Merge "UserOptionsManager: options reset." into REL1_35. . WatchAction: avoid unnecessary UPDATEs when expiry is unchanged. . Allow skins to override mediawiki.page.ready initialisation. . mediawiki.page.ready: Allow skins to disable search lazy load. . Followup to 34c1661: mediawiki.page.ready: Allow skins to disable sea . . Update language in watchlist expiry. . Use IPset in MWRestrictions::checkIP. . Merge "Update language in watchlist expiry" into REL1_35. . race condition on edit page. . Hide watchlist expiry label in edit form. . Merge "Allow skins to override mediawiki.page.ready initialisation" i . . Merge "mediawiki.page.ready: Allow skins to disable search lazy load" . . Merge "Followup to 34c1661: mediawiki.page.ready: Allow skins to disa . . mime: docs of MIME_EXTENSIONS, they're arrays, not space-seperated. . Add application/font-sfnt to MimeMap for ttf files. . WatchedItemStore: Cache single WatchedItems with preexisting expiry. . Add a maintenance script to create bot passwords. . SpecialBlock: Make error more generic if block not inserted/found. . Add Traditional Chinese zh-hant as fallback for Amis (ami). . Improve wfParseUrl docs. . Add multi index fields in ImageListPager for unique paginate. . Guard against 'Widget not found' error. . Merge "Add Traditional Chinese zh
1.35.0-rc.108 Aug 2020 14:45 minor feature: RecentChanges watchlist filters when WatchlistExpiry is off . Update time period for watchlist expiry pop-up. . expiry dropdown not getting disabled on edit page. . Merge "RecentChanges watchlist filters when WatchlistExpiry is of . . Merge "expiry dropdown not getting disabled on edit page." into R . . Merge "Update time period for watchlist expiry pop-up" into REL1_35. . resources: Add license information for promise-polyfill. . maintenance: Remove executable bit from scripts without shebang. . bold of watched items on Special:RecentChangesLinked. . Edit page expiry dropdown should keep state after disabling/enabling. . Merge "bold of watched items on Special:RecentChangesLinked" into . . Translate expiry period in pop-up message for watchlist expiry. . Add watchlist clock icon to RecentChanges. . Merge "Add watchlist clock icon to RecentChanges" into REL1_35. . Update git submodules. . Permit temporary table writes on replica DB connections. . Add UI support in Special:EditWatchlist for watchlist expiry. . Disable wgLegacyJavaScriptGlobals by default. . Merge "Add UI support in Special:EditWatchlist for watchlist expiry" . . Add Edge to MediaWiki:Clearyourcache. . Add mediawiki.ui Less variable deprecation note. . AutoLoader: Remove entry for Wikimedia Services. . UserFactory method for getting anonymous user. . Merge "UserFactory method for getting anonymous user" into REL1_35. . reassignEdits: Update script to use User::newFromName for anon users. . Merge "AutoLoader: Remove entry for Wikimedia Services" into REL1_35. . Flesh out RELEASE-NOTES for changes since 1.35.0-rc.0. . Default to using watchlist expiry of old page when moving pages. . Two more RELEASE-NOTES-1.35 entries. . Bump MW_VERSION to 1.35.0-rc.1.
1.35.0-rc.001 Aug 2020 11:45 minor feature: Merge "Improve logging for "main slot of revision not found in databa . resourceloader: Mark ResourceLoaderModule as stable for subclassing. . Merge "Annotate newable classes". . Merge "resourceloader: Mark ResourceLoaderModule as stable for subcla . . Stability annotations for interfaces. . User: Move per-user logic in pingLimiter() r together. . Localisation updates from https://translatewiki.net. . Merge "HISTORY: Remove empty `Removed and replaced external libraries . . Merge "User: Move per-user logic in pingLimiter() r together". . Merge "MediaWikiServicesTest: newMediaWikiServices never has paramete . . Merge "Localisation updates from https://translatewiki.net.". . Merge "Add default deletion reason for deleting broken redirects.". . Split patch-drop-user-fields.sql into patch per table. . Mark API base classes as extensible. . Mark pager base classes as stable for subclassing. . Mark action base classes as extensible. . Add purgeExpiredBlocks maintenance script. . Mark additional classes as newable for now. . Update CREDITS file ahead of 1.35.0 release. . Merge "Split patch-drop-user-fields.sql into patch per table". . Merge "Update CREDITS file ahead of 1.35.0 release". . Merge "Mark additional classes as newable for now.". . Merge "Mark action base classes as extensible". . resourceloader: Improve perf of VueComponentParser's use of Remex. . Mark methods in authentication base classes as stable for overriding. . Merge "Mark pager base classes as stable for subclassing.". . resourceloader: Document that ResourceLoader::applyFilter can return . . Mark exceptions as @newable. . Merge "resourceloader: Document that ResourceLoader::applyFilter can . . Merge "Mark methods in authentication base classes as stable for over . . Merge "Mark exceptions as @newable". . Mark search base classes as stable for subclassing. . GlobalFunctions,WebRequest: Remove use of AtEase for parse_url(). . Merge "GlobalFunctions,WebRequest: Remove u
1.34.226 Jun 2020 00:05 minor feature: API: Use ConvertibleTimestamp::setFakeTime for testing curtimestamp . Merge "Fill GenderCache for used pages in action=query prop=fileusage". . installer: Deprecate WebInstaller::getInfoBox, getWarningBox and getE . . Merge "newRevisionsFromBatch: don't throw on duplicate row.". . Merge "You are reviewing an old revision should be a warningbox". . Merge "Clean up ar_usertext_timestamp index mess". . Merge "installer: Deprecate WebInstaller::getInfoBox, getWarningBox a . . resourceloader: Add modules parameter to makeVersionQuery(). . Add a run mode to wgDisableQueryPageUpdate. . filerepo: make FileRepo::store/storeBatch() accept FSFile as similar . . Merge "Add a run mode to wgDisableQueryPageUpdate". . Merge "Add.pipeline/ with dev image variant". . Merge "filebackend: avoid use of wfWikiId() in FileBackendGroup". . Merge "objectcache: fully respect "pcTTL" in WANObjectCache instead o . . In recompressTracked.php, the names of things related to child pr . . resourceloader: Add type hints for type ResourceLoaderContext. . Localisation updates from https://translatewiki.net. . Speed up ApiQuerySiteinfoTest:testContinuation. . Remove MySQL index aliasing for user_newtalk indexes. . MWTestCase: include table prein domain for temp table only mode. . Force usage of MCR aware database schema. . Merge "API: Use ConvertibleTimestamp::setFakeTime for testing curtime . . Merge "Speed up ApiQuerySiteinfoTest:testContinuation". . docs: typo on Doxygen main page. . Merge "MWTestCase: include table prein domain for temp table only . . Merge "Split down patch-comment-table.sql". . resourceloader: Add context to static functions in ResourceLoader. . Remove Revision::getRevisionText and gated pre-MCR schema access. . rdbms: Remove obsolete comment in LoadBalancerSingle. . permission check on protection log. . .pipeline/config.yaml: rename dev stage to publish. . Merge "Force usage of MCR aware database schema". . RevisionStore: Introduce getConte
1.34.131 Mar 2020 05:45 minor feature: resourceloader: Convert ImageModule test to stricter unit test . Add.pipeline/ with dev image variant. . Replace infobox usages and extend successbox, warningbox and errorbox. . Merge "Avoid uses of wfWikiId() in maintenance/". . Merge "Make Special:Contributions use OOUI". . Merge "Replace infobox usages and extend successbox, warningbox and e . . Pass "services" through from coreRoutes.json to ObjectFactory. . Special:Contributions form collapsed when offset is defined. . filebackend: avoid use of wfWikiId() in FileBackendGroup. . Merge "Special:Contributions form collapsed when offset is defined". . Merge "resourceloader: Convert ImageModule test to stricter unit test". . Localisation updates from https://translatewiki.net. . Merge "Updated wikimedia/avro from 1.8.0 to 1.9.0". . rdbms: active GTID filtering in DatabaseMysqlBase. . Merge "Pass "services" through from coreRoutes.json to ObjectFactory". . Fill GenderCache for used pages in action=query prop=fileusage. . You are reviewing an old revision should be a warningbox. . filebackend: Convert trigger_error to PSR log warning. . Localisation updates from https://translatewiki.net. . exception: Let MediaWiki.php control final output for ErrorPageError. . CommentStore: Accept SCHEMA_COMPAT_ constants. . Merge "Parser: Use 'Special:Badtitle/Parser' instead of 'NO TITLE'". . Parser: Add Title type hints. . API: Use ConvertibleTimestamp::setFakeTime for testing curtimestamp. . Merge "Fill GenderCache for used pages in action=query prop=fileusage". . installer: Deprecate WebInstaller::getInfoBox, getWarningBox and getE . . Merge "newRevisionsFromBatch: don't throw on duplicate row.". . Merge "You are reviewing an old revision should be a warningbox". . Merge "Clean up ar_usertext_timestamp index mess". . Merge "installer: Deprecate WebInstaller::getInfoBox, getWarningBox a . . resourceloader: Add modules parameter to makeVersionQuery(). . Add a run mode to wgDisableQueryPageUpdate. .
1.34.020 Dec 2019 03:15 minor feature: resourceloader: Remove redundant closure of some startup and base files . resourceloader: Reduce severity of unknown page module warning. . Merge "resourceloader: Remove redundant closure of some startup and b . . Merge "resourceloader: Reduce severity of unknown page module warning". . Localisation updates from https://translatewiki.net. . Mark wgMainPageIsDomainRoot as experimental. . objectcache: fully respect "pcTTL" in WANObjectCache instead of using . . LogPager: Add IGNORE INDEX to avoid MariaDB optimizer. resourceloader: Remove "expected error" noise from mw.loader tests. . build: Lower default Karma logLevel during local development. . Improve documentation of newRevisionsFromBatch(). . Merge "LogPager: Add IGNORE INDEX to avoid MariaDB optimizer ". . newRevisionsFromBatch: don't throw on duplicate row. . phan: Removed PhanUndeclaredTypeParameter suppression. . Improve the top section of Special:Watchlist for small screens. . Merge "Improve documentation of newRevisionsFromBatch()". . Enable preservation of grapheme clusters in highlightQuery. . Merge "resourceloader: Remove "expected error" noise from mw.loader t . . Merge "Simplify NewFilesPager::getQueryInfo". . Merge "Improve the top section of Special:Watchlist for small screens". . Merge "phan: Removed PhanUndeclaredTypeParameter suppression". . Merge "Enable preservation of grapheme clusters in highlightQuery". . Avoid uses of wfWikiId() in maintenance/. . Merge "exception: Add missing early return for UserNotLoggedIn error . . Merge "Maintenance.php: mwdeerror". . resourceloader: Convert ImageModule test to stricter unit test. . Add.pipeline/ with dev image variant. . Replace infobox usages and extend successbox, warningbox and errorbox. . Merge "Avoid uses of wfWikiId() in mai
1.34.0-rc.106 Nov 2019 03:15 minor feature: rdbms: Restore detoolbar "Queries" feature . Setup RELEASE-NOTES for commits after 1.34.0-rc.0. . profiler: Deprecate ProfilerOutputDb and profileinfo.php. . localisation: Log demessage for backend of MessageCache. . Update git submodules. . example Kask configuration in RESTBagOStuff class comment. . Don't apply styling for Special:Contributions on other pages. . Update git submodules. . session: Add demessage for the used store class. . Use varargs for MessageLocalizer::msg and similar. . Use real variargs for variadic methods. . PPFrame: Use explicit varargs in method parameters. . Use splat operator in signature, not func_get_args. . BaseTemplate: Use explicit varargs in method parameters. . build: Upgrade mediawiki-codesniffer from 26.0.0 to 28.0.0. . Revert "Parser: Add Title type hints". . Deprecate setting Parser::mTitle to null. . Update RELEASE-NOTES-1.34 for various backports. . Deprecate 'jquery.tabIndex' module. . resources: Collapse all jQuery UI modules into one deprecated mega-mo . . docs for GetUserBlock hooks. . Merge "resources: Collapse all jQuery UI modules into one deprecated . . Update git submodules. . Update git submodules. . Add release notes for discontinuation of IE6/7 support. . Parser: Hard deprecate getConverterLanguage. . Deprecate Parser implementation methods (will be private in next rele . . Deprecate Parser::areSubpagesAllowed() / Parser::maybeDoSubpageLink(). . Deprecate Parser::splitWhitespace() / Parser::createAssocArgs(). . Deprecate Parser::replaceLinkHolders / replaceLinkHoldersText. . Deprecate additional public methods of Parser. . Merge "Parser: Hard deprecate getConverterLanguage" into REL1_34. . Disable wgServer autodetection to prevent cache poisoning attacks. .
1.34.0-rc.016 Oct 2019 03:15 minor feature: tests: Prefer assertSame() when comparing the integer 0 . Refactor MediaWikiIntegrationTestCase::resetDB() for readability. . Remove Revision::getRevisionText from ApiQueryDeletedrevs. . Merge "Sync up with Parsoid parserTests.txt". . Merge "Remove Revision::getRevisionText from ApiQueryDeletedrevs". . using null for a non-nullable argument. . Use BlobStore::getBlobBatch for RevisionStore::newRevisionsFromBatch. . docs: Avoid some scalar juggling. . export: Align docs of (Rename/Reopen) methods. . title: Improve docs of get*URL(). . Merge "export: Align docs of (Rename/Reopen) methods". . phan: Enable PhanTypeMismatchArgument. LogPager: separate getter from query filter. . Use mw.util.getUrl( null ) to get the default mw.config.get( 'wgPageN . . Merge "Add assertFileContains to MediaWikiTestCaseTrait". . Merge "LogPager: separate getter from query filter". . Merge "title: Improve docs of get*URL()". . Messages collected above the form are meant to live as boxed messages. . Merge "Log entries can be rendered with parentheses in HTML". . Mark consistently with any edit summaries. . Localisation updates from https://translatewiki.net. . Merge "import: Update docs about WikiRevision requiring a Config". . Merge "Use BlobStore::getBlobBatch for RevisionStore::newRevisionsFro . . namespace handling on Special:PagesWithProp. . Merge "namespace handling on Special:PagesWithProp". . Merge "phan: Enable PhanTypeMismatchArgument ". . Merge "Refactor MediaWikiIntegrationTestCase::resetDB() for readability". . Gallery: Don't fire wikipage.content hook twice during init. . tests: Prefer PHPUnit's assertSame() when comparing empty strings. . Merge "tests: Prefer assertSame() when comparing the integer 0". . Merge "tests: Prefer PHPUnit's assertS
1.33.109 Oct 2019 22:19 minor feature: