Merge "Create Special:NewSection special page"
[lhc/web/wiklou.git] / RELEASE-NOTES-1.34
index 95db78a..5e4f61d 100644 (file)
@@ -36,6 +36,9 @@ For notes on 1.33.x and older releases, see HISTORY.
 * $wgEnableSpecialMute (T218265) - This configuration controls whether
   Special:Mute is available and whether to include a link to it on emails
   originating from Special:Email.
+* editmyuserjsredirect user right – users without this right now cannot edit JS
+  redirects in their userspace unless the target of the redirect is also in
+  their userspace. By default, this right is given to everyone.
 
 ==== Changed configuration ====
 * $wgUseCdn, $wgCdnServers, $wgCdnServersNoPurge, and $wgCdnMaxAge – These four
@@ -52,12 +55,29 @@ For notes on 1.33.x and older releases, see HISTORY.
 * Introduced $wgVerifyMimeTypeIE to allow disabling the MSIE 6/7 file type
   detection heuristic on upload, which is more conservative than the checks
   that were changed above.
+* $wgSkipSkin — Setting this instead of $wgSkipSkins, deprecated in 1.23, is now
+  hard-deprecated.
+* $wgLocalInterwiki — Setting this instead of $wgLocalInterwikis, deprecated in
+  1.23, is now hard-deprecated.
+* $wgProfileOnly — Setting this, deprecated in 1.23, is now hard-deprecated.
+  Instead, set the log file in $wgDebugLogGroups['profileoutput'].
+* $wgProxyList — Setting this to an array with IP addresses in the array keys,
+  which was deprecated in 1.30, no longer works. Instead, $wgProxyList should be
+  an array with IP addresses as the values, or a string path to a file
+  containing one IP address per line.
 * …
 
 ==== Removed configuration ====
 * $wgWikiDiff2MovedParagraphDetectionCutoff — If you still want a custom change
   size threshold, please specify in php.ini, using the configuration variable
   wikidiff2.moved_paragraph_detection_cutoff.
+* $wgDebugPrintHttpHeaders - The default of including HTTP headers in the
+  debug log channel is no longer configurable. The debug log itself remains
+  configurable via $wgDebugLogFile.
+* $wgPasswordSalt – This setting, used for migrating exceptionally old, insecure
+  password setups and deprecated since 1.24, is now removed.
+* $wgDBOracleDRCP - If you must use persistent connections, set DBO_PERSISTENT
+  in the 'flags' field for servers in $wgDBServers (or $wgLBFactoryConf).
 
 === New user-facing features in 1.34 ===
 * Special:Mute has been added as a quick way for users to block unwanted emails
@@ -69,8 +89,14 @@ For notes on 1.33.x and older releases, see HISTORY.
   the target manually.
 
 === New developer features in 1.34 ===
+* The ImgAuthModifyHeaders hook was added to img_auth.php to allow modification
+  of headers in private wikis.
 * Language::formatTimePeriod now supports the new 'avoidhours' option to output
   strings like "5 days ago" instead of "5 days 13 hours ago".
+* (T220163) Added SpecialMuteModifyFormFields hook to allow extensions
+  to add fields to Special:Mute.
+* (T100896) Skin authors can define custom OOUI themes using OOUIThemePaths.
+  See <https://www.mediawiki.org/wiki/OOUI/Themes> for details.
 
 === External library changes in 1.34 ===
 
@@ -79,7 +105,7 @@ For notes on 1.33.x and older releases, see HISTORY.
 
 ==== Changed external libraries ====
 * Updated Mustache from 1.0.0 to v3.0.1.
-* Updated OOUI from v0.31.3 to v0.32.1.
+* Updated OOUI from v0.31.3 to v0.33.4.
 * Updated composer/semver from 1.4.2 to 1.5.0.
 * Updated composer/spdx-licenses from 1.4.0 to 1.5.1 (dev-only).
 * Updated mediawiki/codesniffer from 25.0.0 to 26.0.0 (dev-only).
@@ -87,9 +113,10 @@ For notes on 1.33.x and older releases, see HISTORY.
 * Updated wikimedia/at-ease from 1.2.0 to 2.0.0.
 * Updated wikimedia/remex-html from 2.0.1 to 2.0.3.
 * Updated monolog/monolog from 1.22.1 to 1.24.0 (dev-only).
-* Updated wikimedia/object-factory from 1.0.0 to 2.0.0.
+* Updated wikimedia/object-factory from 1.0.0 to 2.1.0.
 * Updated wikimedia/timestamp from 2.2.0 to 3.0.0.
 * Updated wikimedia/xmp-reader from 0.6.2 to 0.6.3.
+* Updated mediawiki/mediawiki-phan-config from 0.6.0 to 0.6.1 (dev-only).
 * …
 
 ==== Removed external libraries ====
@@ -223,6 +250,8 @@ because of Phabricator reports.
   specified, deprecated in 1.30, have been removed.
 * BufferingStatsdDataFactory::getBuffer(), deprecated in 1.30, has been removed.
 * The constant DB_SLAVE, deprecated in 1.28, has been removed. Use DB_REPLICA.
+* The constants NS_IMAGE and NS_IMAGE_TALK, deprecated in 1.14, have been
+  removed. Use NS_FILE and NS_FILE_TALK respectively.
 * Replacer, DoubleReplacer, HashtableReplacer and RegexlikeReplacer
   (deprecated in 1.32) have been removed. Closures should be used instead.
 * OutputPage::addWikiText(), ::addWikiTextWithTitle(), ::addWikiTextTitleTidy(),
@@ -252,6 +281,65 @@ because of Phabricator reports.
   Use MediaWiki\Session\SessionManager instead.
 * The wfGetLBFactory global function, deprecated in 1.27, has been removed.
   Use MediaWikiServices::getInstance()->getDBLoadBalancerFactory().
+* The internal method OutputPage->addScriptFile() will no longer silently drop
+  calls that use an invalid path (i.e., something other than an absolute path,
+  protocol-relative URL, or full scheme URL), and will instead pass them to the
+  client where they will likely 404. This usage was deprecated in 1.24.
+* Database::reportConnectionError, deprecated in 1.32, has been removed.
+* APIEditBeforeSave hook, deprecated in 1.28, has been removed. Please see
+  EditFilterMergedContent hook for an alternative way to use this feature.
+* API module methods getDescription(), getParamDescription(), & getExamples(),
+  all deprecated in 1.25 and ignored, have been removed.
+* The API module method getDescriptionMessage(), deprecated in 1.30, has been
+  removed.
+* The JavaScript global variable wgLoadScript has been removed. Use
+  mw.util.wikiScript( 'load' ) instead.
+* ResourceLoader no longer creates the 'mw.legacy' placeholder object. It has
+  been unused since 1.16 and was deprecated in 1.22. To deprecate a property
+  in JavaScript, use mw.log.deprecate() instead.
+* The 'user.groups' module, deprecated in 1.28, was removed.
+  Use the 'user' module instead.
+* The ResourceLoaderContext::expandModuleNames method, deprecated in 1.33, was
+  removed. Use ResourceLoader::expandModuleNames instead.
+* The ability to override User::$mRights has been removed. Use
+  PermissionManager::addTemporaryUserRights() instead.
+* Previously, when iterating ResultWrapper with foreach() or a similar
+  construct, the range of the index was 1..numRows. This has been fixed to be
+  0..(numRows-1).
+* The ChangePasswordForm hook, deprecated in 1.27, has been removed. Use the
+  AuthChangeFormFields hook or security levels instead.
+* WikiMap::getWikiIdFromDomain(), deprecated in 1.33, has been removed.
+  Use WikiMap::getWikiIdFromDbDomain() instead.
+* The config variables $wgHtml5, $wgJsMimeType, and $wgXhtmlDefaultNamespace,
+  which were deprecated and ignored by core since 1.22, are no longer set to any
+  value, and SkinTemplate no longer emits a 'jsmimetype' key. Any extensions not
+  updated since 2013 to cope with this deprecation may now break.
+* (T222637) Passing ResourceLoaderModule objects to ResourceLoader::register()
+  or $wgResourceModules is no longer supported.
+  Use the 'class' or 'factory' option of the array format instead.
+* The parameter $lang of the functions generateTOC and tocList in Linker and
+  DummyLinker must be in type Language when present. Other types are
+  deprecated since 1.33.
+* The static properties mw.Api.errors and mw.Api.warnings, deprecated in 1.29,
+  have been removed.
+* ParserOption::getSpeculativeRevIdCallback(), deprecated in 1.28, has been
+  removed.
+* The UploadVerification hook, deprecated in 1.28, has been removed. Instead,
+  use the UploadVerifyFile hook.
+* UploadBase:: and UploadFromChunks::stashFileGetKey() and stashSession(),
+  deprecated in 1.28, have been removed. Instead, please use the getFileKey()
+  method on the response from doStashFile().
+* LBFactory::setDomainPrefix() and LoadBalancer::setDomainPrefix(), deprecated
+  in 1.33, have been removed. Use setLocalDomainPrefix() instead.
+* IDatabase::implicitGroupby(), deprecated in 1.30, has been removed.
+* IDatabase::doneWrites(), deprecated in 1.31, has been removed.
+  Use IDatabase::lastDoneWrites() instead.
+* Database::reportConnectionError(), deprecated in 1.32, has been removed.
+* LoadBalancer::laggedSlaveUsed(), deprecated in 1.28, has been removed.
+  Use LoadBalancer::laggedReplicaUsed() instead.
+* Database::getProperty(), deprecated in 1.28, has been removed.
+* IDatabase::getWikiId(), deprecated in 1.30, has been removed.
+  Use IDatabase::getDomainID() instead.
 * …
 
 === Deprecations in 1.34 ===
@@ -313,6 +401,47 @@ because of Phabricator reports.
   instead.
 * Sanitizer::attributeWhitelist() and Sanitizer::setupAttributeWhitelist()
   have been deprecated; they will be made private in the future.
+* SearchResult::termMatches() method is deprecated. It was unreliable because
+  only populated by few search engine implementations. Use
+  SqlSearchResult::getTermMatches() if really needed.
+* SearchResult::getTextSnippet( $terms ) the $terms param is being deprecated
+  and should no longer be passed. Search engine implemenations should be
+  responsible for carrying relevant information needed for highlighting with
+  their own SearchResultSet/SearchResult sub-classes.
+* SearchResultSet::free() method is deprecated.
+* SearchEngine::$searchTerms protected field is deprecated. Moved to
+  SearchDatabase.
+* The use of the $terms param in the ShowSearchHit and ShowSearchHitTitle
+  hooks is highly discouraged as it's only populated by SearchDatabase search
+  engines.
+* Skin::escapeSearchLink() is deprecated. Use Skin::getSearchLink() or the skin
+  template option 'searchaction' instead.
+* LoadBalancer::haveIndex() and LoadBalancer::isNonZeroLoad() have
+  been deprecated.
+* FileBackend::getWikiId() has been deprecated.
+  Use FileBackend::getDomainId() instead.
+* User::getRights() and User::$mRights have been deprecated. Use
+  PermissionManager::getUserPermissions() instead.
+* The LocalisationCacheRecache hook no longer allows purging of message blobs
+  to be prevented. Modifying the $purgeBlobs parameter now has no effect.
+* SVGMetadataExtractor::getMetadata has been deprecated. Instead, you should
+  use SVGReader->getMetadata() directly.
+* The following public properties on AbstractBlock are deprecated: $mReason,
+  $mTimestamp, $mExpiry, $mHideName. Use the getters/setters instead.
+* The following public properties on DatabaseBlock are deprecated: $mAuto,
+  $mParentBlockId. To check for an autoblock use DatabaseBlock::getType; to
+  check for the parent ID, use DatabaseBlock::getParentBlockId.
+* SearchEngine::userHighlightPrefs() is deprecated, simply stop passing
+  $contextlines and $contextchars to the SearchHighlighter methods, they will
+  use proper defaults defined in SearchHighlighter::DEFAULT_CONTEXT_LINES and
+  DEFAULT_CONTEXT_CHARS.
+* SearchUpdate constructor: passing a string as the title param and or a boolean
+  or a string as the content will produce a deprecation warning.
+* SearchEngine::getTextFromContent() is deprecated, use getTextForSearchIndex()
+  directly from the Content object.
+* SearchEngine::textAlreadyUpdatedForIndex() is deprecated, given the
+  deprecation above this method is no longer needed/called and should not be
+  implemented by SearchEngine implementation.
 
 === Other changes in 1.34 ===
 * …