wiki.techinc.nl/RELEASE-NOTES-1.35
James D. Forrester 112b6f305b Drop MagicWord static getters, deprecated in 1.32
Depends-On: I7c4400f5f84088572bad2f2aac09f24203c9bb89
Depends-On: I8322471cf35d387ebd320116360bc60e6296ec51
Change-Id: I9c790a8438f88e3a731781e25408e6bdd5f7f894
2020-01-17 01:22:59 +00:00

336 lines
16 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

= MediaWiki 1.35 =
== MediaWiki 1.35.0-PRERELEASE ==
THIS IS NOT A RELEASE YET
MediaWiki 1.35 is an alpha-quality development branch, and is not recommended
for use in production.
== Upgrading notes for 1.35 ==
1.35 has several database changes since 1.34, and will not work without schema
updates. Note that due to changes to some very large tables like the revision
table, the schema update may take quite long (minutes on a medium sized site,
many hours on a large site).
Don't forget to always back up your database before upgrading!
See the file UPGRADE for more detailed upgrade instructions, including
important information when upgrading from versions prior to 1.11.
Some specific notes for MediaWiki 1.35 upgrades are below:
* …
For notes on 1.34.x and older releases, see HISTORY.
=== Configuration changes for system administrators in 1.35 ===
==== New configuration ====
* $wgDiffEngine can be used to specify the difference engine to use, rather
than choosing the first of $wgExternalDiffEngine, wikidiff2, or php that
is usable.
* $wgSearchMatchRedirectPreference  This configuration setting controls whether
users can set a new preference, search-match-redirect, which decides if search
should redirect them to exact matches is available. By default, this is set to
false, which maintains the previous behaviour without preference bloat. Change
your site's default by setting $wgDefaultUserOptions['search-match-redirect'].
* Per-user concurrency in SpecialContributions can now be limited by setting
$wgPoolCounterConf['SpecialContributions'] appropriately.
* Added new PasswordPolicyCheck: PasswordCannotBeSubstringInUsername. Similar
to the existing PasswordCannotMatchUsername check, this check ensures that
a user's (case-insensitive) password cannot be a part of their username.
e.g. password = MyPassword, username = ThisUsersPasswordIsMyPassword.
* …
==== Changed configuration ====
* $wgResourceLoaderMaxage (T235314) - This configuration array controls the
max-age for HTTP caching through the Cache-Control header. It has uses the
"versioned" key for urls that do have a version parameter, and the
"unversioned" key for urls without a version parameter. The sub keys for
"client" and "server" are no longer supported in MediaWiki 1.35.
* $wgEnableOpenSearchSuggest - This boolean variable is deprecated and no longer
used. The OpenSearch API is now always enabled.
* …
==== Removed configuration ====
* $wgSysopEmailBans — This setting, deprecated in 1.34, was removed. To let
sysops block email access, use $wgGroupPermissions['sysop']['blockemail'].
* $wgDBWindowsAuthentication — This setting had no effect anymore after support
for SQL Server was removed in 1.34. (T230418)
* $wgProfileOnly — This setting, deprecated in 1.23, was removed. The log
file should instead be set using $wgDebugLogGroups['profileoutput'].
* $wgSkipSkin - This setting, deprecated in 1.23, was removed. To disable a
skin from being shown, use $wgSkipSkins.
* …
=== New user-facing features in 1.35 ===
* (T13456) Special:EditPage, Special:PageHistory, Special:PageInfo, and
Special:Purge have been created as shortcuts for each action.
Special:EditPage/Foo redirects to title=foo&action=edit, with PageHistory,
PageInfo, and Purge corresponding to action= history, info, and purge
respectively. When linked to, its subpage is used as the target. Otherwise,
it displays a basic interface to allow the end user to specify the target
manually.
* …
=== New developer features in 1.35 ===
* If CSP is enabled, extensions can now add additional sources using the
ContentSecurityPolicy::addDefaultSource, ::addStyleSrc and ::addScriptSrc
methods (e.g. $context->getOutput()->getCSP()->addDefaultSrc( 'example.com' ))
* Extensions can now specify classes and namespaces to be autoloaded by the
test autoloader, by setting the "TestAutoloadNamespaces" and
"TestAutoloadClasses" properties in extension.json. (T196090)
* Added getters for OutputPage's robot, index and follow policies;
getRobotPolicy() returns the entire policy as a string in the form
<index policy>,<follow policy> while getIndexPolicy() and getFollowPolicy()
return their respective policies as a string.
* The ResourceLoaderSiteModulePages and ResourceLoaderSiteStylesModulePages
hooks were added to allow changing which wiki pages these modules contain.
* …
=== External library changes in 1.35 ===
* …
==== New external libraries ====
* Added doctrine/dbal 2.9.3 (dev-only).
* Added wikimedia/ip-utils 1.0.0.
* …
==== Changed external libraries ====
* symfony/yaml was upgraded from 3.4.28 to 4.3.4
* pear/mail_mime was upgraded from 1.10.2 to 1.10.4
* wikimedia/less.php was upgrade from 1.8.0 to 1.8.2
* Updated OOUI from 0.35.1 to 0.36.2.
* zordius/lightncandy was upgraded from 0.23.0 to 1.2.4
* Updated nikic/php-parser from 3.1.5 to 4.3.0 (dev-only).
* Updated jQuery from v3.3.1 to v3.4.1.
* Updated jQuery Migrate from v3.0.1 to v3.1.0.
* Updated jakub-onderka/php-console-highlighter from v0.3.2 to v0.4 (dev-only).
* Updated wikimedia/assert from 0.2.2 to 0.4.0.
* Updated psy/psysh from 0.9.9 to 0.9.12 (dev-only).
* Updated pear/net_smtp from 1.8.1 from to 1.9.0.
* Updated psr/log from 1.0.2 to 1.1.2.
* Updated monolog/monolog from 1.24.0 to 1.25.2 (dev-only).
* Updated jquery.i18n from 1.0.5 to 1.0.7.
* Upgrade mediawiki-codesniffer from 28.0.0 to 29.0.0 (dev-only).
* Updated composer/spdx-licenses from 1.5.1 to 1.5.2 (dev-only).
* Updated guzzlehttp/guzzle from 6.3.3 to 6.5.2.
* Updated monolog/monolog from 1.25.2 to 1.25.3 (dev-only).
* Updated wikimedia/xmp-reader from 0.6.3 to 0.7.0.
Fixes error log spam with too-large XMP data, and adds support for GPano tags.
* …
==== Removed external libraries ====
* …
=== Bug fixes in 1.35 ===
* …
=== Action API changes in 1.35 ===
* The 'suggest' parameter of action=opensearch has been deprecated.
The API behaves the same with and without this parameter.
It was previously used by $wgEnableOpenSearchSuggest to partially
disable the API if set to false. Specifically, it would deny internal
frontend requests carrying this parameter, whilst accepting other requests.
* …
=== Action API internal changes in 1.35 ===
* …
=== Languages updated in 1.35 ===
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.
* …
=== Breaking changes in 1.35 ===
* ResourceLoader::getLessVars(), deprecated in 1.32, was removed.
Use ResourceLoaderModule::getLessVars() instead.
* The jquery.tabIndex module, deprecated in 1.34, has been removed.
* The mediawiki.RegExp module alias, deprecated in 1.34, was removed.
Use the mediawiki.util module instead.
* The easy-deflate.inflate module, unused since 1.32, was removed.
* The easy-deflate.deflate module was removed. Use the mediawiki.deflate
module instead.
* (T219604) The "jquery.ui.*" and "jquery.effects.*" module aliases,
deprecated in 1.34, have been removed. Use "jquery.ui" instead.
* The internal variable $constructorOptions for the Parser & SpecialPageFactory,
exposed only for integration purposes, are now each replaced by a const called
CONSTRUCTOR_OPTIONS. This was a breaking change made without deprecation.
* ObjectCache::getWANInstance, deprecated in 1.34, was removed.
Use MediaWikiServices::getMainWANObjectCache instead.
* ObjectCache::newWANCacheFromParams, deprecated in 1.34, was removed.
Construct WANObjectCache directly instead, or use MediaWikiServices.
* (T231366) The ProfilerOutputDb class and profileinfo.php entry point,
deprecated in 1.34, was removed.
* ApiQueryUserInfo::getBlockInfo, deprecated in 1.34, was removed. Use
ApiBlockInfoTrait::getBlockDetails instead.
* Password::equals(), deprecated in 1.33, was removed. Use Password::verify().
* QuickTemplate::setRef(), deprecated in 1.31, was removed. Use set().
* The mediawiki.ui.text module, deprecated in 1.28 and unused, was removed.
* AbstractBlock::mReason, deprecated in 1.34, is no longer public.
* The GetBlockedStatus, deprecated in 1.34, has been removed. Instead, use the
GetUserBlock hook.
* Parser::disableCache(), deprecated in 1.28, has been removed.
* Parser::serializeHalfParsedText() and the helper functions
Parser::unserializeHalfParsedText(), Parser::isValidHalfParsedText(),
StripState::getSubState() and StripState::merge(), deprecated in 1.31, have
been removed. The helper functions LinkHolderArray::mergeForeign() and
LinkHolderArray::getSubArray() were also removed.
* Parser::getConverterLanguage(), deprecated in 1.32, was removed. Use
Parser::getTargetLanguage() instead.
* Parser::getTitle() will throw a TypeError if Parser::$mTitle is
uninitialized. This was deprecated in 1.34.
* A number of public methods of Parser were exposed only for
historical reasons. They were deprecated in 1.34 and have now been
made private or removed: doMagicLinks, doDoubleUnderscore,
doHeadings, doAllQuotes, replaceExternalLinks, replaceInternalLinks,
replaceInternalLinks2, getVariableValue, initialiseVariables,
formatHeadings, testPst, testPreprocess, testSrvus,
areSubpagesAllowed, maybeDoSubpageLink, splitWhitespace,
createAssocArgs, armorLinks, makeKnownLinkHolder, getImageParams,
parseLinkParameter, stripAltText, replaceLinkHoldersText.
* MediaWikiTestCase::prepareServices(), deprecated in 1.32, has been removed
* The method ContentHandler::getSlotDiffRendererInternal is replaced with
ContentHandler::getSlotDiffRendererWithOptions. This breaks consumers which
call parent::getSlotDiffRendererInternal (no instances of which are known).
* TextContent::getHighlightHtml, deprecated since 1.24, has been removed. Use
TextContent::getHtml instead.
* ExtensionRegistry::load(), deprecated in 1.34, was removed.
Use ::queue() instead.
* MWMessagePack class, deprecated in 1.34, was removed.
* User::addNewUserLogEntryAutoCreate, deprecated in 1.27, was removed.
* FileBasedSiteLookup class, deprecated in 1.33, was removed.
* The wfGlobalCacheKey global function, deprecated in 1.30, was removed.
* CannotReplaceActiveServiceException, ContainerDisabledException,
DestructibleService, NoSuchServiceException, SalvageableService,
ServiceAlreadyDefinedException, ServiceContainer and ServiceDisabledException
in the global namespace, deprecated in 1.33, were removed. Use the classes in
the MediaWiki\\Services namespace instead.
* OutputPage::parse() and OutputPage::parseInline(), deprecated in 1.32, have
been removed. Use ::parseAsContent() or ::parseAsInterface(), as
appropriate.
* ContentHandler::makeParserOptions(), deprecated in 1.32, was removed. Use
WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
* The remaining static methods for MagicWord, deprecated in 1.32, were removed.
These were MagicWord::get(), ::getSubstIDs(), ::getDoubleUnderscoreArray(),
::getVariableIDs(), and ::getCacheTTL(). Instead, use MagicWordFactory (via
MediaWikiServices).
* …
=== Deprecations in 1.35 ===
* The PHPUnit4And6Compat class, used to provide compatibility with PHPUnit 4, is
now deprecated. MediaWiki support for PHPUnit 4 ended with the removal of HHVM
support.
* Revision::getRevisionText(), deprecated in 1.32, now emits deprecation alerts.
* LockManagerGroup::getDefault() and LockManagerGroup::getAny() are deprecated.
They seem to be unused. Just use get() directly, and catch any exception.
* AbstractBlock::getPermissionsError and AbstractBlock::getBlockErrorParams are
deprecated. Use BlockErrorFormatter::getMessage instead.
* The IP class is deprecated. Please instead use the Wikimedia\IPUtils class
from the new wikimedia/ip-utils library instead. Additionally, the RE_IP_*
constants are also deprecated. RE_IP_BYTE can be replaced with a class
constant on the IPUtils class, while the others will eventually be made
private.
* The following Language methods are deprecated: getFallbackFor,
getFallbacksFor, getFallbacksIncludingSiteLanguage. Use the corresponding new
methods on the LanguageFallback class: getFirst, getAll, and
getAllIncludingSiteLanguage.
* FileJournal::factory is deprecated. Use the constructor directly instead.
* AbstractBlock methods setBlocker(), getBlocker() are deprecated and will
become internal implementation of DatabaseBlock.
* Title::countRevisionsBetween has been deprecated and moved into RevisionStore.
* FileBackendGroup::singleton() is deprecated. Use MediaWikiServices instead.
* FileBackendGroup::destroySingleton() is deprecated. Test frameworks should
instead reset MediaWikiServices between test runs.
(MediaWikiIntegrationTestCase does this automatically.)
* MediaWikiIntegrationTest::setContentLang() has been deprecated. Use
setMwGlobals( 'wgLanguageCode', 'xxx' ) to set a different site language
code, or setService( 'ContentLanguage', $myObj ) to set a specific Language
object. Service resets and $wgContLang will be handled automatically.
* AbstractBlock::getReason is deprecated, since reasons are actually stored as
CommentStoreComments, and getReason returns a string with no caller control
over language or formatting. Instead use AbstractBlock::getReasonComment,
which returns the CommentStoreComment.
* The global function wfGetRusage() is deprecated and will now always call the
getrusage() function without checking for its existence.
* The properties User::mBlock, User::mBlockedby and User::mHideName are
deprecated. Instead, use User::getBlock to get the block, then use
AbstractBlock::getByName or AbstractBlock::getHideName.Use the GetUserBlock
hook to set, unset or modify a block, including hiding or unhiding a user.
* Language::factory() and Language::getParentLanguage() are deprecated, and so
is directly calling the Language constructor. Use the new LanguageFactory
class instead.
* Language::classFromCode() is deprecated. There is no reason it should be used
outside the Language class itself.
* Language::clearCaches() is deprecated. Instead, reset all services and set
Language::$mLangObjCache = [].
* Language::$mLangObjCache is deprecated and should be removed in 1.36. Use
MediaWikiServices instead to get a LanguageFactory.
* Language::getMessagesFor(), getMessageFor(), and getMessageKeysFor() are
deprecated. Use LocalisationCache's getItem(), getSubitem(), and
getSubitemList() methods directly.
* OutputPage::getCSPNonce() is deprecated, use OutputPage::getCSP()->getNonce()
instead.
* Skin::makeI18nUrl() and makeNSUrl() have been deprecated, no longer used.
* Title::countAuthorsBetween and Title::getAuthorsBetween have been deprecated.
Use respective methods in RevisionStore instead.
* Remove deprecated SkinCopyrightFooter &$forContent parameter
* The following Language class static variables have been replaced with
constants and deprecated: $mWeekdayMsgs, $mWeekdayAbbrevMsgs, $mMonthMsgs,
$mMonthGenMsgs, $mMonthAbbrevMsgs, $mIranianCalendarMonthMsgs,
$mHebrewCalendarMonthMsgs, $mHebrewCalendarMonthGenMsgs,
$mHijriCalendarMonthMsgs and $durationIntervals.
* As part of dropping security support for IE 6 and IE 7,
WebRequest::checkUrlExtension() has been deprecated, and now always returns
true.
* …
=== Other changes in 1.35 ===
* …
== Compatibility ==
MediaWiki 1.35 requires PHP 7.2.9 or later, and the following PHP extensions:
* ctype
* dom
* fileinfo
* iconv
* json
* mbstring
* xml
MySQL/MariaDB is the recommended DBMS. PostgreSQL or SQLite can also be used,
but support for them is somewhat less mature.
The supported versions are:
* MySQL 5.5.8 or later
* PostgreSQL 9.2 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.freenode.net.