Merge "A major update to MessagesSah.php from HalanTul"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 3 Sep 2018 06:33:29 +0000 (06:33 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 3 Sep 2018 06:33:29 +0000 (06:33 +0000)
12 files changed:
RELEASE-NOTES-1.32
includes/EditPage.php
includes/libs/rdbms/exception/DBQueryError.php
includes/search/SearchResultSet.php
languages/data/Names.php
languages/i18n/en.json
languages/i18n/qqq.json
resources/src/mediawiki.user.js
tests/phpunit/documentation/ReleaseNotesTest.php
tests/phpunit/includes/user/UserTest.php
tests/qunit/suites/resources/mediawiki/mediawiki.test.js
thumb.php

index ab008db..34dbfd9 100644 (file)
@@ -6,42 +6,49 @@ MediaWiki 1.32 is an alpha-quality branch and is not recommended for use in
 production.
 
 === Configuration changes in 1.32 ===
-* (T115414) The $wgEnableAPI and $wgEnableWriteAPI settings, deprecated in 1.31,
-  have been removed.
-* The $wgUseAjax setting, deprecated in 1.31, is now ignored.
-* The $wgSiteSupportPage setting, unused since 1.5, was removed.
-* The $wgBrowserBlacklist setting, deprecated in 1.30, was removed.
-* The default quality of JPEG thumbnails generated by GD was reduced from 95 to
-  80. The quality of JPEG thumbnails is now configurable through the new setting
-  $wgJpegQuality (default 80). This aligns the quality to what ImageMagick uses.
-* $wgExperimentalHtmlIds, deprecated since 1.30, has been removed. The
-  'html5-legacy' value for $wgFragmentMode is no longer accepted.
-* The experimental Html5Internal and Html5Depurate tidy drivers were removed.
-  RemexHtml, which is the default, should be used instead.
-* (T135963) You can now define a Content Security Policy for your wiki. This
-  adds a defense-in-depth feature to stop an attacker who has found a bug in
-  the parser allowing them to insert malicious attributes. Disabled by default,
-  you can configure this via $wgCSPHeader and $wgCSPReportOnlyHeader.
-* New configuration variable has been added: $wgCookieSetOnIpBlock.
-  This determines whether to set a cookie when an IP user is blocked. Doing so
-  means that a blocked user, even after moving to a new IP address, will still
-  be blocked.
-* The archive table's ar_rev_id field is now unique.
-* Special:BotPasswords now requires reauthentication.
-* (T194414) The default watchlist view time has been increased from 3 to 7 days.
-* The right to edit sitewide Javascript (e.g. MediaWiki:Common.js), CSS or JSON
-  was separated from 'editinterface' and is available under
-  'editsitejs'/'editsitecss'/'editsitejson'. Having 'editinterface' is still
-  necessary to edit such pages.
-* A new user group, 'interface-admin', is added for controlling access to
-  sitewide CSS/JS (and editing other users' CSS/JS). No other group has
-  'editsitecss', 'editusercss', 'editsitejs' or 'edituserjs' by default.
-* A new grant group, 'editsiteconfig', is added for granting the above rights.
-* The $wgPasswordSenderName setting, ignored since 1.23 by MediaWiki and almost
-  all extensions, is no longer set at all. Instead, you can modify the system
-  message `emailsender`.
-* A new configuration setting, $wgRawHtmlMessages, is added, for listing
+
+==== New configuration ====
+* $wgJpegQuality – The quality of JPEG thumbnails is now configurable through
+  this setting. The default is 80, which matches the quality of JPEG thumbnails
+  previously generated by ImageMagick. The quality of JPEG thumbnails generated
+  by GD was previously 95, but now uses the $wgJpegQuality setting as well.
+* $wgCookieSetOnIpBlock - This determines whether to set a cookie when an IP
+  user is blocked. Doing so means that a blocked user, even after moving to a
+  new IP address, will still be blocked.
+* $wgRawHtmlMessages – This new configuration setting is added for listing
   messages which are displayed as raw HTML.
+* $wgCSPHeader and $wgCSPReportOnlyHeader – You can now define a
+  "Content Security Policy" for your wiki. This adds a defense-in-depth feature
+  to stop an attacker who has found a bug in the parser allowing them to insert
+  malicious attributes. Disabled by default. (T135963)
+* $wgGroupPermissions – A new user group, 'interface-admin', is added for
+  controlling access to sitewide CSS/JS (and editing other users' CSS/JS). No
+  other group has 'editsitecss', 'editusercss', 'editsitejs' or 'edituserjs'
+  by default.
+* $wgGrantPermissions – A new grant group, 'editsiteconfig', is added for
+  granting the above rights.
+
+==== Changed configuration ====
+* $wgUseAjax – This setting, deprecated in 1.31, is now ignored.
+* $wgDefaultUserOptions – The default watchlist view time (watchlistdays) has
+  been increased from 3 to 7 days. (T194414)
+* $wgGroupPermissions – The right to edit sitewide Javascript
+  (e.g. MediaWiki:Common.js), CSS or JSON was separated from 'editinterface'
+  and is available under 'editsitejs'/'editsitecss'/'editsitejson'. Having
+  'editinterface' is still necessary to edit such pages.
+
+==== Removed configuration ====
+* $wgEnableAPI and $wgEnableWriteAPI – These settings, deprecated in 1.31,
+  have been removed. (T115414)
+* $wgSiteSupportPage – This setting, unused since 1.5, was removed.
+* $wgBrowserBlacklist – This setting, deprecated in 1.30, was removed.
+* $wgExperimentalHtmlIds – This setting, deprecated since 1.30, was removed.
+  The 'html5-legacy' value for $wgFragmentMode is no longer accepted.
+* $wgPasswordSenderName - This setting, ignored since 1.23 by MediaWiki and
+  most extensions, is no longer set. Instead, you can modify the system
+  message `emailsender`.
+* $wgTidyConfig – The experimental Html5Internal and Html5Depurate tidy drivers
+  were removed. RemexHtml, which is the default, should be used instead.
 
 === New features in 1.32 ===
 * (T112474) Generalized the ResourceLoader mechanism for overriding modules
@@ -84,10 +91,13 @@ production.
   updated for the changed method signature.
 
 === External library changes in 1.32 ===
+
+==== New external libraries ====
+* Added wikimedia/xmp-reader 0.6.0
 * …
 
-==== Upgraded external libraries ====
-* Updated QUnit from 2.4.0 to 2.6.0.
+==== Changed external libraries ====
+* Updated qunitjs from 2.4.0 to 2.6.0.
 * Updated wikimedia/scoped-callback from 1.0.0 to 2.0.0.
 ** ScopedCallback objects can no longer be serialized.
 * Updated wikimedia/wrappedstring from 2.3.0 to 3.0.1.
@@ -97,11 +107,7 @@ production.
 * Updated wikimedia/timestamp from 1.0.0 to 2.0.0.
 * Updated wikimedia/remex-html from 1.0.3 to 2.0.0.
 
-==== New external libraries ====
-* Added wikimedia/xmp-reader 0.6.0
-* …
-
-==== Removed and replaced external libraries ====
+==== Removed external libraries ====
 * …
 
 === Bug fixes in 1.32 ===
@@ -411,6 +417,8 @@ because of Phabricator reports.
 * OOUI HTMLForm will now display help text inline after the input field,
   rather than in a popup. Previous behavior can be restored by using
   `'help-inline' => false`.
+* The archive table's ar_rev_id field is now unique.
+* Special:BotPasswords now requires reauthentication.
 * …
 
 == Compatibility ==
index 6b4dcc2..ef111c4 100644 (file)
@@ -3786,7 +3786,7 @@ ERROR;
 
        /**
         * Get the last log record of this page being deleted, if ever.  This is
-        * used to detect whether a delete occured during editing.
+        * used to detect whether a delete occurred during editing.
         * @return bool|stdClass
         */
        protected function getLastDelete() {
index 4bdd8f6..b1353b7 100644 (file)
@@ -45,7 +45,7 @@ class DBQueryError extends DBExpectedError {
        public function __construct( IDatabase $db, $error, $errno, $sql, $fname, $message = null ) {
                if ( $message === null ) {
                        if ( $db instanceof Database && $db->wasConnectionError( $errno ) ) {
-                               $message = "A connection error occured. \n" .
+                               $message = "A connection error occurred. \n" .
                                         "Query: $sql\n" .
                                         "Function: $fname\n" .
                                         "Error: $errno $error\n";
index 14d5c4b..2f1a5c2 100644 (file)
@@ -127,7 +127,7 @@ class SearchResultSet implements Countable, IteratorAggregate {
        /**
         * Some search modes will run an alternative query that it thinks gives
         * a better result than the provided search. Returns true if this has
-        * occured.
+        * occurred.
         *
         * @return bool
         */
index a5b0188..4a648f9 100644 (file)
@@ -202,7 +202,7 @@ class Names {
                'ht' => 'Kreyòl ayisyen', # Haitian Creole French
                'hu' => 'magyar', # Hungarian
                'hu-formal' => "magyar (formal)\u{200E}", # Hungarian formal address
-               'hy' => 'Õ\80Õ¡ÕµÕ¥Ö\80Õ¥Õ¶', # Armenian
+               'hy' => 'Õ°Õ¡ÕµÕ¥Ö\80Õ¥Õ¶', # Armenian, T202611
                'hyw' => 'արեւմտահայերէն', # Western Armenian, T201276
                'hz' => 'Otsiherero', # Herero
                'ia' => 'interlingua', # Interlingua (IALA)
index 57b0cde..18dc51a 100644 (file)
        "customcssprotected": "You do not have permission to edit this CSS page because it contains another user's personal settings.",
        "customjsonprotected": "You do not have permission to edit this JSON page because it contains another user's personal settings.",
        "customjsprotected": "You do not have permission to edit this JavaScript page because it contains another user's personal settings.",
-       "sitecssprotected": "You do not have permission to edit this CSS page because it may affect all visitors",
-       "sitejsonprotected": "You do not have permission to edit this JSON page because it may affect all visitors",
-       "sitejsprotected": "You do not have permission to edit this JavaScript page because it may affect all visitors",
+       "sitecssprotected": "You do not have permission to edit this CSS page because it may affect all visitors.",
+       "sitejsonprotected": "You do not have permission to edit this JSON page because it may affect all visitors.",
+       "sitejsprotected": "You do not have permission to edit this JavaScript page because it may affect all visitors.",
        "mycustomcssprotected": "You do not have permission to edit this CSS page.",
        "mycustomjsonprotected": "You do not have permission to edit this JSON page.",
        "mycustomjsprotected": "You do not have permission to edit this JavaScript page.",
        "searchdisabled": "{{SITENAME}} search is disabled.\nYou can search via Google in the meantime.\nNote that their indexes of {{SITENAME}} content may be out of date.",
        "googlesearch": "<form method=\"get\" action=\"//www.google.com/search\" id=\"googlesearch\">\n\t<input type=\"hidden\" name=\"domains\" value=\"{{SERVER}}\" />\n\t<input type=\"hidden\" name=\"num\" value=\"50\" />\n\t<input type=\"hidden\" name=\"ie\" value=\"$2\" />\n\t<input type=\"hidden\" name=\"oe\" value=\"$2\" />\n\n\t<input type=\"text\" name=\"q\" size=\"31\" maxlength=\"255\" value=\"$1\" />\n\t<input type=\"submit\" name=\"btnG\" value=\"$3\" />\n  <div>\n\t<input type=\"radio\" name=\"sitesearch\" id=\"gwiki\" value=\"{{SERVER}}\" checked=\"checked\" /><label for=\"gwiki\">{{SITENAME}}</label>\n\t<input type=\"radio\" name=\"sitesearch\" id=\"gWWW\" value=\"\" /><label for=\"gWWW\">WWW</label>\n  </div>\n</form>",
        "search-error": "An error has occurred while searching: $1",
-       "search-warning": "A warning has occured while searching: $1",
+       "search-warning": "A warning has occurred while searching: $1",
        "opensearch-desc": "{{SITENAME}} ({{CONTENTLANGUAGE}})",
        "preferences": "Preferences",
        "preferences-summary": "",
index 1a0e8c8..8330801 100644 (file)
        "searchdisabled": "{{doc-singularthey}}\nIn this sentence, \"their indexes\" refers to \"Google's indexes\".\n\nShown on [[Special:Search]] when the internal search is disabled.",
        "googlesearch": "{{notranslate}}\nShown when [[mw:Manual:$wgDisableTextSearch|$wgDisableTextSearch]] is set to true and no [[mw:Manual:$wgSearchForwardUrl|$wgSearchForwardUrl]] is set.\n\nParameters:\n* $1 - the search term\n* $2 - \"UTF-8\" (hard-coded)\n* $3 - the message {{msg-mw|Searchbutton}}",
        "search-error": "Shown when an error has occurred when performing a search. Parameters:\n* $1 - the localized error that was returned",
-       "search-warning": "Shown when a warning has occured when performing a search. Parameters:\n* $1 - the localized warning that was returned.",
+       "search-warning": "Shown when a warning has occurred when performing a search. Parameters:\n* $1 - the localized warning that was returned.",
        "opensearch-desc": "{{ignored}}Link description of the [www.opensearch.org/ OpenSearch] link in the HTML head of pages.",
        "preferences": "Title of the [[Special:Preferences]] page.\n{{Identical|Preferences}}",
        "preferences-summary": "{{doc-specialpagesummary|preferences}}",
index 9f6f845..5e96485 100644 (file)
@@ -79,7 +79,7 @@
                 * cached within this class (also known as a page view token).
                 *
                 * @since 1.32
-                * @return {string} 64 bit integer in hex format, padded
+                * @return {string} 80 bit integer in hex format, padded
                 */
                getPageviewToken: function () {
                        if ( !pageviewRandomId ) {
index 4de071d..ac100af 100644 (file)
@@ -45,7 +45,7 @@ class ReleaseNotesTest extends MediaWikiTestCase {
                                $this->assertLessThanOrEqual(
                                        // FILE_IGNORE_NEW_LINES drops the \n at the EOL, so max length is 80 not 81.
                                        80,
-                                       strlen( $line ),
+                                       mb_strlen( $line ),
                                        "Release notes file '$fileName' line $i is longer than 80 chars:\n\t'$line'"
                                );
                        }
index 3b8e710..f86987a 100644 (file)
@@ -524,13 +524,13 @@ class UserTest extends MediaWikiTestCase {
 
                $touched = $user->getDBTouched();
                $this->assertTrue(
-                       $user->checkAndSetTouched(), "checkAndSetTouched() succeded" );
+                       $user->checkAndSetTouched(), "checkAndSetTouched() succedeed" );
                $this->assertGreaterThan(
                        $touched, $user->getDBTouched(), "user_touched increased with casOnTouched()" );
 
                $touched = $user->getDBTouched();
                $this->assertTrue(
-                       $user->checkAndSetTouched(), "checkAndSetTouched() succeded #2" );
+                       $user->checkAndSetTouched(), "checkAndSetTouched() succedeed #2" );
                $this->assertGreaterThan(
                        $touched, $user->getDBTouched(), "user_touched increased with casOnTouched() #2" );
        }
index 83e695f..37b6c88 100644 (file)
                assert.strictEqual( conf.set( 'undef' ), false, 'Map.set requires explicit value (no undefined default)' );
 
                assert.strictEqual( conf.set( 'undef', undefined ), true, 'Map.set allows setting value to `undefined`' );
-               assert.strictEqual( conf.get( 'undef', 'fallback' ), undefined, 'Map.get supports retreiving value of `undefined`' );
+               assert.strictEqual( conf.get( 'undef', 'fallback' ), undefined, 'Map.get supports retrieving value of `undefined`' );
 
                assert.strictEqual( conf.set( funky, 'Funky' ), false, 'Map.set returns boolean false if key was invalid (Function)' );
                assert.strictEqual( conf.set( arry, 'Arry' ), false, 'Map.set returns boolean false if key was invalid (Array)' );
index cc74c89..7032909 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -500,7 +500,7 @@ function wfGenerateThumbnail( File $file, array $params, $thumbName, $thumbPath
        }
 
        /** @noinspection PhpUnusedLocalVariableInspection */
-       $done = true; // no PHP fatal occured
+       $done = true; // no PHP fatal occurred
 
        if ( !$thumb || $thumb->isError() ) {
                // Randomize TTL to reduce stampedes