jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/370321 )

Change subject: Enable Squiz.WhiteSpace.OperatorSpacing
......................................................................


Enable Squiz.WhiteSpace.OperatorSpacing

The new sniffs are autofixable

Added a test case and fix failure in this repository

Bug: T171393
Change-Id: Iad652c1e767bc55d5cb8f1f2cb380e7a2ae4b003
---
M MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php
M MediaWiki/Sniffs/ControlStructures/AssignmentInControlStructuresSniff.php
M MediaWiki/Sniffs/NamingConventions/LowerCamelFunctionsNameSniff.php
M MediaWiki/Sniffs/NamingConventions/ValidGlobalNameSniff.php
M MediaWiki/Sniffs/Usage/ReferenceThisSniff.php
M MediaWiki/Sniffs/WhiteSpace/MultipleEmptyLinesSniff.php
M MediaWiki/Sniffs/WhiteSpace/SpaceBeforeClassBraceSniff.php
M MediaWiki/Sniffs/WhiteSpace/SpaceBeforeControlStructureBraceSniff.php
M MediaWiki/Sniffs/WhiteSpace/SpaceBeforeSingleLineCommentSniff.php
M MediaWiki/Tests/files/Usage/goto_usage.php
M MediaWiki/Tests/files/generic_fail.php
M MediaWiki/Tests/files/generic_fail.php.expect
M MediaWiki/Tests/files/generic_fail.php.fixed
M MediaWiki/ruleset.xml
14 files changed, 88 insertions(+), 43 deletions(-)

Approvals:
  Krinkle: Looks good to me, but someone else must approve
  Legoktm: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php 
b/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php
index 9fdc490..5dfb7b4 100644
--- a/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php
+++ b/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php
@@ -63,7 +63,7 @@
                        return;
                }
                $tokens = $phpcsFile->getTokens();
-               $funcName = $tokens[$stackPtr+2];
+               $funcName = $tokens[$stackPtr + 2];
                if ( in_array( $funcName['content'], $this->skipStandardMethods 
) ) {
                        // Don't require documentation for an obvious method
                        return;
@@ -88,7 +88,7 @@
                        }
                }
 
-               $find   = Tokens::$methodPrefixes;
+               $find = Tokens::$methodPrefixes;
                $find[] = T_WHITESPACE;
                $commentEnd = $phpcsFile->findPrevious( $find, ( $stackPtr - 1 
), null, true );
                if ( $tokens[$commentEnd]['code'] === T_COMMENT ) {
@@ -174,7 +174,7 @@
                                continue;
                        }
                        if ( $token['code'] === T_RETURN ) {
-                               if ( isset( $tokens[$i+1] ) && 
$tokens[$i+1]['code'] === T_SEMICOLON ) {
+                               if ( isset( $tokens[$i + 1] ) && $tokens[$i + 
1]['code'] === T_SEMICOLON ) {
                                        // This is a `return;` so it doesn't 
need documentation
                                        continue;
                                }
@@ -256,7 +256,7 @@
                                continue;
                        }
                        $exception = null;
-                       $comment   = null;
+                       $comment = null;
                        if ( $tokens[( $tag + 2 )]['code'] === 
T_DOC_COMMENT_STRING ) {
                                $matches = [];
                                preg_match( '/([^\s]+)(?:\s+(.*))?/', $tokens[( 
$tag + 2 )]['content'], $matches );
@@ -285,38 +285,38 @@
         */
        protected function processParams( File $phpcsFile, $stackPtr, 
$commentStart ) {
                $tokens = $phpcsFile->getTokens();
-               $params  = [];
+               $params = [];
                $maxType = 0;
-               $maxVar  = 0;
+               $maxVar = 0;
                foreach ( $tokens[$commentStart]['comment_tags'] as $pos => 
$tag ) {
                        if ( $tokens[$tag]['content'] !== '@param' ) {
                                continue;
                        }
-                       $type      = '';
+                       $type = '';
                        $typeSpace = 0;
-                       $var       = '';
-                       $varSpace  = 0;
-                       $comment   = '';
+                       $var = '';
+                       $varSpace = 0;
+                       $comment = '';
                        if ( $tokens[( $tag + 2 )]['code'] === 
T_DOC_COMMENT_STRING ) {
                                $matches = [];
                                preg_match( 
'/([^$&.]+)(?:((?:\.\.\.)?(?:\$|&)[^\s]+)(?:(\s+)(.*))?)?/',
                                        $tokens[( $tag + 2 )]['content'], 
$matches );
-                               $typeLen   = strlen( $matches[1] );
-                               $type      = trim( $matches[1] );
+                               $typeLen = strlen( $matches[1] );
+                               $type = trim( $matches[1] );
                                $typeSpace = ( $typeLen - strlen( $type ) );
-                               $typeLen   = strlen( $type );
+                               $typeLen = strlen( $type );
                                if ( $typeLen > $maxType ) {
                                        $maxType = $typeLen;
                                }
                                if ( isset( $matches[2] ) === true ) {
-                                       $var    = $matches[2];
+                                       $var = $matches[2];
                                        $varLen = strlen( $var );
                                        if ( $varLen > $maxVar ) {
                                                $maxVar = $varLen;
                                        }
                                        if ( isset( $matches[4] ) === true ) {
                                                $varSpace = strlen( $matches[3] 
);
-                                               $comment  = $matches[4];
+                                               $comment = $matches[4];
                                                // Any strings until the next 
tag belong to this comment.
                                                if ( isset( 
$tokens[$commentStart]['comment_tags'][( $pos + 1 )] ) === true ) {
                                                        $end = 
$tokens[$commentStart]['comment_tags'][( $pos + 1 )];
@@ -343,16 +343,16 @@
                        }
                        // end if
                        $params[] = [
-                               'tag'        => $tag,
-                               'type'       => $type,
-                               'var'        => $var,
-                               'comment'    => $comment,
+                               'tag' => $tag,
+                               'type' => $type,
+                               'var' => $var,
+                               'comment' => $comment,
                                'type_space' => $typeSpace,
-                               'var_space'  => $varSpace,
+                               'var_space' => $varSpace,
                        ];
                }
                // end foreach
-               $realParams  = $phpcsFile->getMethodParameters( $stackPtr );
+               $realParams = $phpcsFile->getMethodParameters( $stackPtr );
                $foundParams = [];
                // We want to use ... for all variable length arguments, so 
added
                // this prefix to the variable name so comparisons are easier.
@@ -374,13 +374,13 @@
                        $spaces = 1;
                        if ( $param['type_space'] !== $spaces ) {
                                $error = 'Expected %s spaces after parameter 
type; %s found';
-                               $data  = [
+                               $data = [
                                        $spaces,
                                        $param['type_space'],
                                ];
                                $fix = $phpcsFile->addFixableError( $error, 
$param['tag'], 'SpacingAfterParamType', $data );
                                if ( $fix === true ) {
-                                       $content  = $param['type'];
+                                       $content = $param['type'];
                                        $content .= str_repeat( ' ', $spaces );
                                        $content .= $param['var'];
                                        $content .= str_repeat( ' ', 
$param['var_space'] );
@@ -400,7 +400,7 @@
                                        $error = 'Doc comment for parameter %s 
does not match ';
                                        if ( strtolower( $param['var'] ) === 
strtolower( $realName ) ) {
                                                $error .= 'case of ';
-                                               $code   = 
'ParamNameNoCaseMatch';
+                                               $code = 'ParamNameNoCaseMatch';
                                        }
                                        $error .= 'actual variable name %s';
                                        $phpcsFile->addError( $error, 
$param['tag'], $code, $data );
@@ -420,13 +420,13 @@
                        if ( $param['var_space'] !== $spaces &&
                                ltrim( $param['comment'] ) !== '' ) {
                                $error = 'Expected %s spaces after parameter 
name; %s found';
-                               $data  = [
+                               $data = [
                                        $spaces,
                                        $param['var_space'],
                                ];
                                $fix = $phpcsFile->addFixableError( $error, 
$param['tag'], 'SpacingAfterParamName', $data );
                                if ( $fix === true ) {
-                                       $content  = $param['type'];
+                                       $content = $param['type'];
                                        $content .= str_repeat( ' ', 
$param['type_space'] );
                                        $content .= $param['var'];
                                        $content .= str_repeat( ' ', $spaces );
@@ -444,7 +444,7 @@
                $diff = array_diff( $realNames, $foundParams );
                foreach ( $diff as $neededParam ) {
                        $error = 'Doc comment for parameter "%s" missing';
-                       $data  = [ $neededParam ];
+                       $data = [ $neededParam ];
                        $phpcsFile->addError( $error, $commentStart, 
'MissingParamTag', $data );
                }
        }
diff --git 
a/MediaWiki/Sniffs/ControlStructures/AssignmentInControlStructuresSniff.php 
b/MediaWiki/Sniffs/ControlStructures/AssignmentInControlStructuresSniff.php
index 754caa2..31cdabc 100644
--- a/MediaWiki/Sniffs/ControlStructures/AssignmentInControlStructuresSniff.php
+++ b/MediaWiki/Sniffs/ControlStructures/AssignmentInControlStructuresSniff.php
@@ -36,10 +36,10 @@
         */
        public function process( File $phpcsFile, $stackPtr ) {
                $tokens = $phpcsFile->getTokens();
-               $token  = $tokens[$stackPtr];
+               $token = $tokens[$stackPtr];
 
                $next = $token['parenthesis_opener'] + 1;
-               $end  = $token['parenthesis_closer'];
+               $end = $token['parenthesis_closer'];
                while ( $next < $end ) {
                        $code = $tokens[$next]['code'];
                        // Check if any assignment operator was used. Allow 
T_DOUBLE_ARROW as that can
diff --git 
a/MediaWiki/Sniffs/NamingConventions/LowerCamelFunctionsNameSniff.php 
b/MediaWiki/Sniffs/NamingConventions/LowerCamelFunctionsNameSniff.php
index 0b09cc0..63c2d5e 100644
--- a/MediaWiki/Sniffs/NamingConventions/LowerCamelFunctionsNameSniff.php
+++ b/MediaWiki/Sniffs/NamingConventions/LowerCamelFunctionsNameSniff.php
@@ -66,7 +66,7 @@
         */
        public function process( File $phpcsFile, $stackPtr ) {
                $tokens = $phpcsFile->getTokens();
-               $functionContent = $tokens[$stackPtr+2]['content'];
+               $functionContent = $tokens[$stackPtr + 2]['content'];
                $lowerFunctionName = strtolower( $functionContent );
                foreach ( $tokens[$stackPtr]['conditions'] as $scope => $code ) 
{
                        if ( isset( self::$scopeList[$code] ) === true &&
diff --git a/MediaWiki/Sniffs/NamingConventions/ValidGlobalNameSniff.php 
b/MediaWiki/Sniffs/NamingConventions/ValidGlobalNameSniff.php
index 27c1ae5..894bf63 100644
--- a/MediaWiki/Sniffs/NamingConventions/ValidGlobalNameSniff.php
+++ b/MediaWiki/Sniffs/NamingConventions/ValidGlobalNameSniff.php
@@ -48,8 +48,8 @@
        public function process( File $phpcsFile, $stackPtr ) {
                $tokens = $phpcsFile->getTokens();
 
-               $nameIndex  = $phpcsFile->findNext( T_VARIABLE, $stackPtr + 1 );
-               $semicolonIndex  = $phpcsFile->findNext( T_SEMICOLON, $stackPtr 
+ 1 );
+               $nameIndex = $phpcsFile->findNext( T_VARIABLE, $stackPtr + 1 );
+               $semicolonIndex = $phpcsFile->findNext( T_SEMICOLON, $stackPtr 
+ 1 );
 
                while ( $nameIndex < $semicolonIndex ) {
                        if ( $tokens[ $nameIndex ][ 'code' ] !== T_WHITESPACE
diff --git a/MediaWiki/Sniffs/Usage/ReferenceThisSniff.php 
b/MediaWiki/Sniffs/Usage/ReferenceThisSniff.php
index 97e3b0f..05267e1 100644
--- a/MediaWiki/Sniffs/Usage/ReferenceThisSniff.php
+++ b/MediaWiki/Sniffs/Usage/ReferenceThisSniff.php
@@ -46,7 +46,7 @@
         */
        public function process( File $phpcsFile, $stackPtr ) {
                $tokens = $phpcsFile->getTokens();
-               $next = $tokens[$stackPtr+1];
+               $next = $tokens[$stackPtr + 1];
                if ( $next['code'] === T_VARIABLE && $next['content'] === 
'$this' ) {
                        $after = $phpcsFile->findNext( T_WHITESPACE, $stackPtr 
+ 2, null, true );
                        if ( $after !== false &&
diff --git a/MediaWiki/Sniffs/WhiteSpace/MultipleEmptyLinesSniff.php 
b/MediaWiki/Sniffs/WhiteSpace/MultipleEmptyLinesSniff.php
index 709aebf..001920d 100644
--- a/MediaWiki/Sniffs/WhiteSpace/MultipleEmptyLinesSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/MultipleEmptyLinesSniff.php
@@ -42,7 +42,7 @@
                                        // If the next non T_WHITESPACE token 
is more than 1 line away,
                                        // then there were multiple empty lines.
                                        $error = 'Multiple empty lines should 
not exist in a row; found %s consecutive empty lines';
-                                       $fix   = $phpcsFile->addFixableError(
+                                       $fix = $phpcsFile->addFixableError(
                                                $error,
                                                $stackPtr,
                                                'MultipleEmptyLines',
diff --git a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeClassBraceSniff.php 
b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeClassBraceSniff.php
index 5eca1d8..13b3db5 100644
--- a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeClassBraceSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeClassBraceSniff.php
@@ -36,7 +36,7 @@
                }
                $openBrace = $tokens[$stackPtr]['scope_opener'];
                // Find previous non-whitespace token from the opening brace
-               $pre = $phpcsFile->findPrevious( T_WHITESPACE, ( $openBrace -1 
), null, true );
+               $pre = $phpcsFile->findPrevious( T_WHITESPACE, ( $openBrace - 1 
), null, true );
 
                if ( $tokens[$openBrace]['line'] - $tokens[$stackPtr]['line'] 
>= 2 ) {
                        // If the class ... { statement is more than two lines, 
then
diff --git 
a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeControlStructureBraceSniff.php 
b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeControlStructureBraceSniff.php
index 8231a90..2100461 100644
--- a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeControlStructureBraceSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeControlStructureBraceSniff.php
@@ -79,7 +79,7 @@
                $tokens = $phpcsFile->getTokens();
                $phpcsFile->recordMetric( $stackPtr, 'Control Structs opening 
brace placement', 'new line' );
                $error = 'Opening brace should be on the same line as the 
declaration';
-               $fix   = $phpcsFile->addFixableError( $error, $openBrace, 
'BraceOnNewLine' );
+               $fix = $phpcsFile->addFixableError( $error, $openBrace, 
'BraceOnNewLine' );
                if ( $fix === true ) {
                        $phpcsFile->fixer->beginChangeset();
                        $i = $closeBracket + 1;
diff --git a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeSingleLineCommentSniff.php 
b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeSingleLineCommentSniff.php
index 2e32476..68b1a49 100644
--- a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeSingleLineCommentSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeSingleLineCommentSniff.php
@@ -27,7 +27,7 @@
        public function process( File $phpcsFile, $stackPtr ) {
                $tokens = $phpcsFile->getTokens();
                $currToken = $tokens[$stackPtr];
-               $preToken = $phpcsFile->findPrevious( T_WHITESPACE, 
$stackPtr-1, null, true );
+               $preToken = $phpcsFile->findPrevious( T_WHITESPACE, $stackPtr - 
1, null, true );
                if ( $preToken !== false &&
                        $tokens[$preToken]['line'] === 
$tokens[$stackPtr]['line']
                ) {
@@ -35,7 +35,7 @@
                                'Comments should start on new line.',
                                $stackPtr,
                                'NewLineComment'
-                               );
+                       );
                }
                if ( $currToken['code'] === T_COMMENT ) {
                        // Accounting for multiple line comments, as single 
line comments
diff --git a/MediaWiki/Tests/files/Usage/goto_usage.php 
b/MediaWiki/Tests/files/Usage/goto_usage.php
index 5154bd9..0ddf5c6 100644
--- a/MediaWiki/Tests/files/Usage/goto_usage.php
+++ b/MediaWiki/Tests/files/Usage/goto_usage.php
@@ -5,7 +5,7 @@
  * @return void
  */
 function wfFailedExamples() {
-       for ( $i=0; $i < 20; $i++ ) {
+       for ( $i = 0; $i < 20; $i++ ) {
                if ( $i == 15 ) {
                        goto endloop;
                }
@@ -19,7 +19,7 @@
  * @return void
  */
 function wfPassedExamples() {
-       for ( $i=0; $i < 20; $i++ ) {
+       for ( $i = 0; $i < 20; $i++ ) {
                if ( $i == 15 ) {
                        break;
                }
diff --git a/MediaWiki/Tests/files/generic_fail.php 
b/MediaWiki/Tests/files/generic_fail.php
index cb38983..bbdc410 100644
--- a/MediaWiki/Tests/files/generic_fail.php
+++ b/MediaWiki/Tests/files/generic_fail.php
@@ -15,3 +15,5 @@
                Foo::doStuff();
        }
 }
+
+$s =  $sum/( ( 1<<16 )-1 )+2*-1*3-4^3%10;
diff --git a/MediaWiki/Tests/files/generic_fail.php.expect 
b/MediaWiki/Tests/files/generic_fail.php.expect
index de41f0c..39c50ba 100644
--- a/MediaWiki/Tests/files/generic_fail.php.expect
+++ b/MediaWiki/Tests/files/generic_fail.php.expect
@@ -10,5 +10,43 @@
     |       |     (Generic.PHP.BacktickOperator.Found)
  15 | ERROR | [x] Must use "self::" for local static member reference
     |       |     (Squiz.Classes.SelfMemberReference.NotUsed)
+ 19 | ERROR | [x] Expected 1 space after "="; 2 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.SpacingAfter)
+ 19 | ERROR | [x] Expected 1 space before "/"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceBefore)
+ 19 | ERROR | [x] Expected 1 space after "/"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfter)
+ 19 | ERROR | [x] Expected 1 space before "<<"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceBefore)
+ 19 | ERROR | [x] Expected 1 space after "<<"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfter)
+ 19 | ERROR | [x] Expected 1 space before "-"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceBefore)
+ 19 | ERROR | [x] Expected 1 space after "-"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfter)
+ 19 | ERROR | [x] Expected 1 space before "+"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceBefore)
+ 19 | ERROR | [x] Expected 1 space after "+"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfter)
+ 19 | ERROR | [x] Expected 1 space before "*"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceBefore)
+ 19 | ERROR | [x] Expected 1 space after "*"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfter)
+ 19 | ERROR | [x] Expected 1 space before "*"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceBefore)
+ 19 | ERROR | [x] Expected 1 space after "*"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfter)
+ 19 | ERROR | [x] Expected 1 space before "-"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceBefore)
+ 19 | ERROR | [x] Expected 1 space after "-"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfter)
+ 19 | ERROR | [x] Expected 1 space before "^"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceBefore)
+ 19 | ERROR | [x] Expected 1 space after "^"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfter)
+ 19 | ERROR | [x] Expected 1 space before "%"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceBefore)
+ 19 | ERROR | [x] Expected 1 space after "%"; 0 found
+    |       |     (Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfter)
 
-PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
+PHPCBF CAN FIX THE 20 MARKED SNIFF VIOLATIONS AUTOMATICALLY
diff --git a/MediaWiki/Tests/files/generic_fail.php.fixed 
b/MediaWiki/Tests/files/generic_fail.php.fixed
index c65c443..cd0a4cb 100644
--- a/MediaWiki/Tests/files/generic_fail.php.fixed
+++ b/MediaWiki/Tests/files/generic_fail.php.fixed
@@ -15,3 +15,5 @@
                self::doStuff();
        }
 }
+
+$s = $sum / ( ( 1 << 16 ) - 1 ) + 2 * -1 * 3 - 4 ^ 3 % 10;
diff --git a/MediaWiki/ruleset.xml b/MediaWiki/ruleset.xml
index e0289be..b12a7da 100644
--- a/MediaWiki/ruleset.xml
+++ b/MediaWiki/ruleset.xml
@@ -102,8 +102,11 @@
                        ->quux();
                <rule ref="Squiz.WhiteSpace.ObjectOperatorSpacing" />
        -->
-       <!-- There is no consensus on how to apply this rule, so disabled -->
-       <!--rule ref="Squiz.WhiteSpace.OperatorSpacing" /-->
+       <rule ref="Squiz.WhiteSpace.OperatorSpacing">
+               <properties>
+                       <property name="ignoreNewlines" value="true" />
+               </properties>
+       </rule>
        <rule ref="Squiz.WhiteSpace.ScopeClosingBrace" />
        <rule ref="Squiz.WhiteSpace.ScopeKeywordSpacing" />
        <rule ref="Squiz.WhiteSpace.SemicolonSpacing" />

-- 
To view, visit https://gerrit.wikimedia.org/r/370321
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Iad652c1e767bc55d5cb8f1f2cb380e7a2ae4b003
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/tools/codesniffer
Gerrit-Branch: master
Gerrit-Owner: Umherirrender <umherirrender_de...@web.de>
Gerrit-Reviewer: Addshore <addshorew...@gmail.com>
Gerrit-Reviewer: Krinkle <krinklem...@gmail.com>
Gerrit-Reviewer: Legoktm <lego...@member.fsf.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to