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

Change subject: includes: Replace implicit Bugzilla bug numbers with Phab ones
......................................................................


includes: Replace implicit Bugzilla bug numbers with Phab ones

It's unreasonable to expect newbies to know that "bug 12345" means "Task T14345"
except where it doesn't, so let's just standardise on the real numbers.

Change-Id: I6f59febaf8fc96e80f8cfc11f4356283f461142a
---
M includes/Block.php
M includes/Category.php
M includes/DefaultSettings.php
M includes/EditPage.php
M includes/FeedUtils.php
M includes/HistoryBlob.php
M includes/Html.php
M includes/Linker.php
M includes/MagicWord.php
M includes/MediaWiki.php
M includes/MovePage.php
M includes/NoLocalSettings.php
M includes/OutputPage.php
M includes/Preferences.php
M includes/PrefixSearch.php
M includes/Revision.php
M includes/Sanitizer.php
M includes/Setup.php
M includes/Title.php
M includes/WatchedItemQueryService.php
M includes/WebRequest.php
M includes/WebStart.php
M includes/cache/BacklinkCache.php
M includes/changes/ChangesFeed.php
M includes/changes/OldChangesList.php
M includes/collation/CollationEt.php
M includes/collation/IcuCollation.php
M includes/content/ContentHandler.php
M includes/content/TextContentHandler.php
M includes/context/RequestContext.php
M includes/db/CloneDatabase.php
M includes/deferred/LinksUpdate.php
M includes/diff/DifferenceEngine.php
M includes/exception/ErrorPageError.php
M includes/exception/MWExceptionHandler.php
M includes/exception/UserNotLoggedIn.php
M includes/filerepo/FileRepo.php
M includes/filerepo/file/File.php
M includes/filerepo/file/LocalFile.php
M includes/http/MWHttpRequest.php
M includes/import/WikiImporter.php
M includes/installer/DatabaseUpdater.php
M includes/installer/Installer.php
M includes/installer/MysqlUpdater.php
M includes/installer/PostgresUpdater.php
M includes/installer/WebInstaller.php
M includes/installer/WebInstallerName.php
M includes/installer/WebInstallerPage.php
M includes/installer/WebInstallerUpgrade.php
M includes/jobqueue/JobQueueDB.php
M includes/jobqueue/jobs/DoubleRedirectJob.php
M includes/jobqueue/jobs/PublishStashedFileJob.php
M includes/logging/LogFormatter.php
M includes/logging/LogPager.php
M includes/mail/EmailNotification.php
M includes/media/Bitmap.php
M includes/media/MediaHandler.php
M includes/media/SVGMetadataExtractor.php
M includes/objectcache/SqlBagOStuff.php
M includes/page/Article.php
M includes/page/ImagePage.php
M includes/page/WikiPage.php
M includes/parser/BlockLevelPass.php
M includes/parser/CoreParserFunctions.php
M includes/parser/ParserCache.php
M includes/parser/ParserOptions.php
M includes/parser/ParserOutput.php
M includes/parser/Preprocessor_DOM.php
M includes/parser/Preprocessor_Hash.php
M includes/poolcounter/PoolWorkArticleView.php
M includes/profiler/output/ProfilerOutputDb.php
M includes/resourceloader/ResourceLoader.php
M includes/resourceloader/ResourceLoaderClientHtml.php
M includes/resourceloader/ResourceLoaderContext.php
M includes/resourceloader/ResourceLoaderModule.php
M includes/resourceloader/ResourceLoaderStartUpModule.php
M includes/resourceloader/ResourceLoaderWikiModule.php
M includes/skins/Skin.php
M includes/skins/SkinTemplate.php
M includes/specialpage/ChangesListSpecialPage.php
M includes/specialpage/LoginSignupSpecialPage.php
M includes/specialpage/QueryPage.php
M includes/specialpage/SpecialPageFactory.php
M includes/upload/UploadBase.php
M includes/user/PasswordReset.php
M includes/user/User.php
86 files changed, 181 insertions(+), 178 deletions(-)

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



diff --git a/includes/Block.php b/includes/Block.php
index 66b9ff0..0cbb287 100644
--- a/includes/Block.php
+++ b/includes/Block.php
@@ -265,7 +265,7 @@
                }
 
                # Be aware that the != '' check is explicit, since empty values 
will be
-               # passed by some callers (bug 29116)
+               # passed by some callers (T31116)
                if ( $vagueTarget != '' ) {
                        list( $target, $type ) = self::parseTarget( 
$vagueTarget );
                        switch ( $type ) {
@@ -358,7 +358,7 @@
                if ( $end === null ) {
                        $end = $start;
                }
-               # Per bug 14634, we want to include relevant active 
rangeblocks; for
+               # Per T16634, we want to include relevant active rangeblocks; 
for
                # rangeblocks, we want to include larger ranges which enclose 
the given
                # range. We know that all blocks must be smaller than 
$wgBlockCIDRLimit,
                # so we can improve performance by filtering on a LIKE clause
@@ -553,7 +553,7 @@
                $affected = $dbw->affectedRows();
 
                if ( $this->isAutoblocking() ) {
-                       // update corresponding autoblock(s) (bug 48813)
+                       // update corresponding autoblock(s) (T50813)
                        $dbw->update(
                                'ipblocks',
                                $this->getAutoblockUpdateArray(),
@@ -1117,7 +1117,7 @@
                } elseif ( $target === null && $vagueTarget == '' ) {
                        # We're not going to find anything useful here
                        # Be aware that the == '' check is explicit, since 
empty values will be
-                       # passed by some callers (bug 29116)
+                       # passed by some callers (T31116)
                        return null;
 
                } elseif ( in_array(
diff --git a/includes/Category.php b/includes/Category.php
index d558dbc..ece32ea 100644
--- a/includes/Category.php
+++ b/includes/Category.php
@@ -96,7 +96,7 @@
                $this->mSubcats = $row->cat_subcats;
                $this->mFiles = $row->cat_files;
 
-               # (bug 13683) If the count is negative, then 1) it's obviously 
wrong
+               # (T15683) If the count is negative, then 1) it's obviously 
wrong
                # and should not be kept, and 2) we *probably* don't have to 
scan many
                # rows to obtain the correct figure, so let's risk a one-time 
recount.
                if ( $this->mPages < 0 || $this->mSubcats < 0 || $this->mFiles 
< 0 ) {
diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php
index 791d024..1e167b0 100644
--- a/includes/DefaultSettings.php
+++ b/includes/DefaultSettings.php
@@ -1337,7 +1337,7 @@
  * to reduce disk usage, limits can only be selected from a list.
  * The user preference is saved as an array offset in the database, by default
  * the offset is set with $wgDefaultUserOptions['imagesize']. Make sure you
- * change it if you alter the array (see bug 8858).
+ * change it if you alter the array (see T10858).
  * This is the list of settings the user can choose from:
  */
 $wgImageLimits = [
@@ -3357,7 +3357,7 @@
  *
  * Currently this appears to work fine in all browsers, but it's disabled by
  * default because it normalizes id's a bit too aggressively, breaking 
preexisting
- * content (particularly Cite).  See bug 27733, bug 27694, bug 27474.
+ * content (particularly Cite).  See T29733, T29694, T29474.
  */
 $wgExperimentalHtmlIds = false;
 
@@ -4081,7 +4081,7 @@
  * Attempting to create a redirect to any of the pages in this array
  * will make the redirect fail.
  * Userlogout is hard-coded, so it does not need to be listed here.
- * (bug 10569) Disallow Mypage and Mytalk as well.
+ * (T12569) Disallow Mypage and Mytalk as well.
  *
  * As of now, this only checks special pages. Redirects to pages in
  * other namespaces cannot be invalidated by this variable.
@@ -8372,7 +8372,7 @@
 /**
  * Port where you have HTTPS running
  * Supports HTTPS on non-standard ports
- * @see bug 65184
+ * @see T67184
  * @since 1.24
  */
 $wgHttpsPort = 443;
diff --git a/includes/EditPage.php b/includes/EditPage.php
index 34062c0..8a253b9 100644
--- a/includes/EditPage.php
+++ b/includes/EditPage.php
@@ -993,7 +993,7 @@
                        $this->recreate = false;
 
                        // When creating a new section, we can preload a 
section title by passing it as the
-                       // preloadtitle parameter in the URL (Bug 13100)
+                       // preloadtitle parameter in the URL (T15100)
                        if ( $this->section == 'new' && $request->getVal( 
'preloadtitle' ) ) {
                                $this->sectiontitle = $request->getVal( 
'preloadtitle' );
                                // Once wpSummary isn't being use for setting 
section titles, we should delete this.
@@ -1911,7 +1911,7 @@
 
                        // Don't save a new page if it's blank or if it's a 
MediaWiki:
                        // message with content equivalent to default (allow 
empty pages
-                       // in this case to disable messages, see bug 50124)
+                       // in this case to disable messages, see T52124)
                        $defaultMessageText = 
$this->mTitle->getDefaultMessageText();
                        if ( $this->mTitle->getNamespace() === NS_MEDIAWIKI && 
$defaultMessageText !== false ) {
                                $defaultText = $defaultMessageText;
@@ -2729,7 +2729,7 @@
                if ( $this->hasPresetSummary ) {
                        // If a summary has been preset using &summary= we 
don't want to prompt for
                        // a different summary. Only prompt for a summary if 
the summary is blanked.
-                       // (Bug 17416)
+                       // (T19416)
                        $this->autoSumm = md5( '' );
                }
 
diff --git a/includes/FeedUtils.php b/includes/FeedUtils.php
index 071a3db..1a78b53 100644
--- a/includes/FeedUtils.php
+++ b/includes/FeedUtils.php
@@ -196,7 +196,7 @@
 
                        if ( $html === null ) {
 
-                               // Omit large new page diffs, bug 29110
+                               // Omit large new page diffs, T31110
                                // Also use diff link for non-textual content
                                $diffText = self::getDiffLink( $title, $newid );
                        } else {
diff --git a/includes/HistoryBlob.php b/includes/HistoryBlob.php
index 3d86201..56cf815 100644
--- a/includes/HistoryBlob.php
+++ b/includes/HistoryBlob.php
@@ -590,7 +590,7 @@
 
        /**
         * Compute a binary "Adler-32" checksum as defined by LibXDiff, i.e. 
with
-        * the bytes backwards and initialised with 0 instead of 1. See bug 
34428.
+        * the bytes backwards and initialised with 0 instead of 1. See T36428.
         *
         * @param string $s
         * @return string|bool False if the hash extension is not available
diff --git a/includes/Html.php b/includes/Html.php
index b46ea81..972f62d 100644
--- a/includes/Html.php
+++ b/includes/Html.php
@@ -759,7 +759,7 @@
                $attribs['name'] = $name;
 
                if ( substr( $value, 0, 1 ) == "\n" ) {
-                       // Workaround for bug 12130: browsers eat the initial 
newline
+                       // Workaround for T14130: browsers eat the initial 
newline
                        // assuming that it's just for show, but they do keep 
the later
                        // newlines, which we may want to preserve during 
editing.
                        // Prepending a single newline
diff --git a/includes/Linker.php b/includes/Linker.php
index 94b145e..d470942 100644
--- a/includes/Linker.php
+++ b/includes/Linker.php
@@ -590,7 +590,7 @@
 
                # ThumbnailImage::toHtml() already adds page= onto the end of 
DjVu URLs
                # So we don't need to pass it here in $query. However, the URL 
for the
-               # zoom icon still needs it, so we make a unique query for it. 
See bug 14771
+               # zoom icon still needs it, so we make a unique query for it. 
See T16771
                $url = $title->getLocalURL( $query );
                if ( $page ) {
                        $url = wfAppendQuery( $url, [ 'page' => $page ] );
@@ -892,7 +892,7 @@
                        if ( $altUserName === false ) {
                                $altUserName = IP::prettifyIP( $userName );
                        }
-                       $classes .= ' mw-anonuserlink'; // Separate link class 
for anons (bug 43179)
+                       $classes .= ' mw-anonuserlink'; // Separate link class 
for anons (T45179)
                } else {
                        $page = Title::makeTitle( NS_USER, $userName );
                }
@@ -1086,7 +1086,7 @@
        ) {
                # Sanitize text a bit:
                $comment = str_replace( "\n", " ", $comment );
-               # Allow HTML entities (for bug 13815)
+               # Allow HTML entities (for T15815)
                $comment = Sanitizer::escapeHtmlAllowEntities( $comment );
 
                # Render autocomments and make links:
@@ -1155,7 +1155,7 @@
                                                $section = str_replace( '[[', 
'', $section );
                                                $section = str_replace( ']]', 
'', $section );
 
-                                               $section = 
Sanitizer::normalizeSectionNameWhitespace( $section ); # bug 22784
+                                               $section = 
Sanitizer::normalizeSectionNameWhitespace( $section ); # T24784
                                                if ( $local ) {
                                                        $sectionTitle = 
Title::newFromText( '#' . $section );
                                                } else {
@@ -1364,7 +1364,7 @@
                        } else {
                                $suffix = '';
                        }
-                       # bug 7425
+                       # T9425
                        $target = trim( $target );
                        # Look at the first character
                        if ( $target != '' && $target[0] === '/' ) {
@@ -1787,7 +1787,7 @@
 
                if ( $context->getRequest()->getBool( 'bot' ) ) {
                        $query['bot'] = '1';
-                       $query['hidediff'] = '1'; // bug 15999
+                       $query['hidediff'] = '1'; // T17999
                }
 
                $disableRollbackEditCount = false;
diff --git a/includes/MagicWord.php b/includes/MagicWord.php
index 09317d7..f29ec3d 100644
--- a/includes/MagicWord.php
+++ b/includes/MagicWord.php
@@ -502,7 +502,7 @@
                        # multiple matched parts (variable match); some will be 
empty because of
                        # synonyms. The variable will be the second non-empty 
one so remove any
                        # blank elements and re-sort the indices.
-                       # See also bug 6526
+                       # See also T8526
 
                        $matches = array_values( array_filter( $matches ) );
 
diff --git a/includes/MediaWiki.php b/includes/MediaWiki.php
index cfe4965..521c02c 100644
--- a/includes/MediaWiki.php
+++ b/includes/MediaWiki.php
@@ -73,7 +73,7 @@
                if ( $request->getCheck( 'search' ) ) {
                        // Compatibility with old search URLs which didn't use 
Special:Search
                        // Just check for presence here, so blank requests still
-                       // show the search page when using ugly URLs (bug 8054).
+                       // show the search page when using ugly URLs (T10054).
                        $ret = SpecialPage::getTitleFor( 'Search' );
                } elseif ( $curid ) {
                        // URLs like this are generated by RC, because rc_title 
isn't always accurate
@@ -183,7 +183,7 @@
                $unused = null; // To pass it by reference
                Hooks::run( 'BeforeInitialize', [ &$title, &$unused, &$output, 
&$user, $request, $this ] );
 
-               // Invalid titles. Bug 21776: The interwikis must redirect even 
if the page name is empty.
+               // Invalid titles. T23776: The interwikis must redirect even if 
the page name is empty.
                if ( is_null( $title ) || ( $title->getDBkey() == '' && 
!$title->isExternal() )
                        || $title->isSpecial( 'Badtitle' )
                ) {
@@ -203,7 +203,7 @@
                        ? [] // relies on HMAC key signature alone
                        : $title->getUserPermissionsErrors( 'read', $user );
                if ( count( $permErrors ) ) {
-                       // Bug 32276: allowing the skin to generate output with 
$wgTitle or
+                       // T34276: allowing the skin to generate output with 
$wgTitle or
                        // $this->context->title set to the input title would 
allow anonymous users to
                        // determine whether a page exists, potentially leaking 
private data. In fact, the
                        // curid and oldid request  parameters would allow page 
titles to be enumerated even
@@ -520,7 +520,7 @@
                        try {
                                $this->main();
                        } catch ( ErrorPageError $e ) {
-                               // Bug 62091: while exceptions are convenient 
to bubble up GUI errors,
+                               // T64091: while exceptions are convenient to 
bubble up GUI errors,
                                // they are not internal application faults. As 
with normal requests, this
                                // should commit, print the output, do deferred 
updates, jobs, and profiling.
                                $this->doPreOutputCommit();
diff --git a/includes/MovePage.php b/includes/MovePage.php
index ae12ba5..9a83d35 100644
--- a/includes/MovePage.php
+++ b/includes/MovePage.php
@@ -501,7 +501,7 @@
                $defaultContentModelChanging = ( $oldDefault !== $newDefault
                        && $oldDefault === $contentModel );
 
-               // bug 57084: log_page should be the ID of the *moved* page
+               // T59084: log_page should be the ID of the *moved* page
                $oldid = $this->oldTitle->getArticleID();
                $logTitle = clone $this->oldTitle;
 
@@ -550,13 +550,13 @@
                );
 
                if ( !$redirectContent ) {
-                       // Clean up the old title *before* reset article id - 
bug 45348
+                       // Clean up the old title *before* reset article id - 
T47348
                        WikiPage::onArticleDelete( $this->oldTitle );
                }
 
                $this->oldTitle->resetArticleID( 0 ); // 0 == non existing
                $nt->resetArticleID( $oldid );
-               $newpage->loadPageData( WikiPage::READ_LOCKING ); // bug 46397
+               $newpage->loadPageData( WikiPage::READ_LOCKING ); // T48397
 
                $newpage->updateRevisionOn( $dbw, $nullRevision );
 
@@ -581,7 +581,7 @@
                # Recreate the redirect, this time in the other direction.
                if ( $redirectContent ) {
                        $redirectArticle = WikiPage::factory( $this->oldTitle );
-                       $redirectArticle->loadFromRow( false, 
WikiPage::READ_LOCKING ); // bug 46397
+                       $redirectArticle->loadFromRow( false, 
WikiPage::READ_LOCKING ); // T48397
                        $newid = $redirectArticle->insertOn( $dbw );
                        if ( $newid ) { // sanity
                                $this->oldTitle->resetArticleID( $newid );
diff --git a/includes/NoLocalSettings.php b/includes/NoLocalSettings.php
index b0a6b7b..50950ef 100644
--- a/includes/NoLocalSettings.php
+++ b/includes/NoLocalSettings.php
@@ -20,7 +20,7 @@
  * @file
  */
 
-# bug 30219 : can not use pathinfo() on URLs since slashes do not match
+# T32219 : can not use pathinfo() on URLs since slashes do not match
 $matches = [];
 $ext = 'php';
 $path = '/';
diff --git a/includes/OutputPage.php b/includes/OutputPage.php
index eb2f7e7..9ecfa23 100644
--- a/includes/OutputPage.php
+++ b/includes/OutputPage.php
@@ -781,7 +781,7 @@
                        'epoch' => $config->get( 'CacheEpoch' )
                ];
                if ( $config->get( 'UseSquid' ) ) {
-                       // bug 44570: the core page itself may not change, but 
resources might
+                       // T46570: the core page itself may not change, but 
resources might
                        $modifiedTimes['sepoch'] = wfTimestamp( TS_MW, time() - 
$config->get( 'SquidMaxage' ) );
                }
                Hooks::run( 'OutputPageCheckLastModified', [ &$modifiedTimes, 
$this ] );
@@ -1466,7 +1466,7 @@
                        ResourceLoaderModule::ORIGIN_CORE_INDIVIDUAL
                );
 
-               // Site-wide styles are controlled by a config setting, see bug 
71621
+               // Site-wide styles are controlled by a config setting, see 
T73621
                // for background on why. User styles are never allowed.
                if ( $this->getConfig()->get( 'AllowSiteCSSOnRestrictedPages' ) 
) {
                        $styleOrigin = 
ResourceLoaderModule::ORIGIN_USER_SITEWIDE;
@@ -2502,7 +2502,7 @@
                ) {
                        $displayReturnto = null;
 
-                       # Due to bug 32276, if a user does not have read 
permissions,
+                       # Due to T34276, if a user does not have read 
permissions,
                        # $this->getTitle() will just give Special:Badtitle, 
which is
                        # not especially useful as a returnto parameter. Use 
the title
                        # from the request instead, if there was one.
@@ -3084,7 +3084,7 @@
 
                $curRevisionId = 0;
                $articleId = 0;
-               $canonicalSpecialPageName = false; # bug 21115
+               $canonicalSpecialPageName = false; # T23115
 
                $title = $this->getTitle();
                $ns = $title->getNamespace();
@@ -3094,7 +3094,7 @@
 
                $sk = $this->getSkin();
                // Get the relevant title so that AJAX features can use the 
correct page name
-               // when making API requests from certain special pages (bug 
34972).
+               // when making API requests from certain special pages (T36972).
                $relevantTitle = $sk->getRelevantTitle();
                $relevantUser = $sk->getRelevantUser();
 
@@ -3855,7 +3855,7 @@
         *    $wgOut->addWikiText( "<div class='error'>\n"
         *        . wfMessage( 'some-error' )->plain() . "\n</div>" );
         *
-        * The newline after the opening div is needed in some wikitext. See 
bug 19226.
+        * The newline after the opening div is needed in some wikitext. See 
T21226.
         *
         * @param string $wrap
         */
diff --git a/includes/Preferences.php b/includes/Preferences.php
index 6d15c1e..b428e87 100644
--- a/includes/Preferences.php
+++ b/includes/Preferences.php
@@ -120,7 +120,7 @@
                        }
                }
 
-               # # Make sure that form fields have their parent set. See bug 
41337.
+               # # Make sure that form fields have their parent set. See 
T43337.
                $dummyForm = new HTMLForm( [], $context );
 
                $disable = !$user->isAllowed( 'editmyoptions' );
@@ -1201,8 +1201,7 @@
 
                if ( $dateopts ) {
                        if ( !in_array( 'default', $dateopts ) ) {
-                               $dateopts[] = 'default'; // Make sure default 
is always valid
-                                                                               
// Bug 19237
+                               $dateopts[] = 'default'; // Make sure default 
is always valid T21237
                        }
 
                        // FIXME KLUGE: site default might not be valid for 
user language
diff --git a/includes/PrefixSearch.php b/includes/PrefixSearch.php
index 48b1d72..62ee5c6 100644
--- a/includes/PrefixSearch.php
+++ b/includes/PrefixSearch.php
@@ -231,7 +231,7 @@
                        }
                }
 
-               # normalize searchKey, so aliases with spaces can be found - 
bug 25675
+               # normalize searchKey, so aliases with spaces can be found - 
T27675
                $searchKey = str_replace( ' ', '_', $searchKey );
                $searchKey = $wgContLang->caseFold( $searchKey );
 
@@ -243,7 +243,7 @@
                }
 
                foreach ( $wgContLang->getSpecialPageAliases() as $page => 
$aliases ) {
-                       if ( !in_array( $page, SpecialPageFactory::getNames() ) 
) {# bug 20885
+                       if ( !in_array( $page, SpecialPageFactory::getNames() ) 
) {# T22885
                                continue;
                        }
 
@@ -256,7 +256,7 @@
                $matches = [];
                foreach ( $keys as $pageKey => $page ) {
                        if ( $searchKey === '' || strpos( $pageKey, $searchKey 
) === 0 ) {
-                               // bug 27671: Don't use 
SpecialPage::getTitleFor() here because it
+                               // T29671: Don't use SpecialPage::getTitleFor() 
here because it
                                // localizes its input leading to searches for 
e.g. Special:All
                                // returning 
Spezial:MediaWiki-Systemnachrichten and returning
                                // Spezial:Alle_Seiten twice when 
$wgLanguageCode == 'de'
diff --git a/includes/Revision.php b/includes/Revision.php
index d9e42ff..d6cfcd9 100644
--- a/includes/Revision.php
+++ b/includes/Revision.php
@@ -216,7 +216,7 @@
                        // Pre-1.5 ar_text row
                        $attribs['text'] = self::getRevisionText( $row, 'ar_' );
                        if ( $attribs['text'] === false ) {
-                               throw new MWException( 'Unable to load text 
from archive row (possibly bug 22624)' );
+                               throw new MWException( 'Unable to load text 
from archive row (possibly T24624)' );
                        }
                }
                return new self( $attribs );
diff --git a/includes/Sanitizer.php b/includes/Sanitizer.php
index 42b166d..4c245a5 100644
--- a/includes/Sanitizer.php
+++ b/includes/Sanitizer.php
@@ -545,7 +545,7 @@
                                                        $badtag = true;
                                                } elseif ( in_array( $t, 
$tagstack ) && !isset( $htmlnest[$t] ) ) {
                                                        $badtag = true;
-                                               #  Is it a self closed htmlpair 
? (bug 5487)
+                                               #  Is it a self closed htmlpair 
? (T7487)
                                                } elseif ( $brace == '/>' && 
isset( $htmlpairs[$t] ) ) {
                                                        // Eventually we'll 
just remove the self-closing
                                                        // slash, in order to 
be consistent with HTML5
@@ -922,7 +922,7 @@
 
                // Normalize Halfwidth and Fullwidth Unicode block that IE6 
might treat as ascii
                $value = preg_replace_callback(
-                       '/[!-[]-z]/u', // U+FF01 to U+FF5A, excluding U+FF3C 
(bug 58088)
+                       '/[!-[]-z]/u', // U+FF01 to U+FF5A, excluding U+FF3C 
(T60088)
                        function ( $matches ) {
                                $cp = UtfNormal\Utils::utf8ToCodepoint( 
$matches[0] );
                                if ( $cp === false ) {
@@ -1508,7 +1508,7 @@
 
        /**
         * Decode any character references, numeric or named entities,
-        * in the next and normalize the resulting string. (bug 14952)
+        * in the next and normalize the resulting string. (T16952)
         *
         * This is useful for page titles, not for text to be displayed,
         * MediaWiki allows HTML entities to escape normalization as a feature.
@@ -1926,7 +1926,7 @@
         *   3.5.
         *
         * This function is an implementation of the specification as requested 
in
-        * bug 22449.
+        * T24449.
         *
         * Client-side forms will use the same standard validation rules via JS 
or
         * HTML 5 validation; additional restrictions can be enforced 
server-side
@@ -1949,7 +1949,7 @@
 
                // Please note strings below are enclosed in brackets [], this 
make the
                // hyphen "-" a range indicator. Hence it is double backslashed 
below.
-               // See bug 26948
+               // See T28948
                $rfc5322_atext = "a-z0-9!#$%&'*+\\-\/=?^_`{|}~";
                $rfc1034_ldh_str = "a-z0-9\\-";
 
diff --git a/includes/Setup.php b/includes/Setup.php
index 01ba1e8..9ec340b 100644
--- a/includes/Setup.php
+++ b/includes/Setup.php
@@ -329,7 +329,7 @@
        $wgUseEnotif = $wgEnotifUserTalk || $wgEnotifWatchlist;
 } else {
        // Disable all other email settings automatically if $wgEnableEmail
-       // is set to false. - bug 63678
+       // is set to false. - T65678
        $wgAllowHTMLEmail = false;
        $wgEmailAuthentication = false; // do not require auth if you're not 
sending email anyway
        $wgEnableUserEmail = false;
diff --git a/includes/Title.php b/includes/Title.php
index 3ce775b..b810b36 100644
--- a/includes/Title.php
+++ b/includes/Title.php
@@ -134,7 +134,7 @@
 
        /**
         * @var int Namespace index when there is no namespace. Don't change the
-        *   following default, NS_MAIN is hardcoded in several places. See bug 
696.
+        *   following default, NS_MAIN is hardcoded in several places. See 
T2696.
         *   Zero except in {{transclusion}} tags.
         */
        public $mDefaultNamespace = NS_MAIN;
@@ -307,7 +307,7 @@
                        }
                }
 
-               // Convert things like &eacute; &#257; or &#x3017; into 
normalized (bug 14952) text
+               // Convert things like &eacute; &#257; or &#x3017; into 
normalized (T16952) text
                $filteredText = Sanitizer::decodeCharReferencesAndNormalize( 
$text );
 
                $t = new Title();
@@ -3741,14 +3741,14 @@
                        }
                        $newPageName = preg_replace(
                                        '#^' . preg_quote( $this->getDBkey(), 
'#' ) . '#',
-                                       StringUtils::escapeRegexReplacement( 
$nt->getDBkey() ), # bug 21234
+                                       StringUtils::escapeRegexReplacement( 
$nt->getDBkey() ), # T23234
                                        $oldSubpage->getDBkey() );
                        if ( $oldSubpage->isTalkPage() ) {
                                $newNs = $nt->getTalkPage()->getNamespace();
                        } else {
                                $newNs = $nt->getSubjectPage()->getNamespace();
                        }
-                       # Bug 14385: we need makeTitleSafe because the new page 
names may
+                       # T16385: we need makeTitleSafe because the new page 
names may
                        # be longer than 255 characters.
                        $newSubpage = Title::makeTitleSafe( $newNs, 
$newPageName );
 
diff --git a/includes/WatchedItemQueryService.php 
b/includes/WatchedItemQueryService.php
index c80e4a5..0dc2a49 100644
--- a/includes/WatchedItemQueryService.php
+++ b/includes/WatchedItemQueryService.php
@@ -504,7 +504,7 @@
                        $conds[] = 'rc_user_text != ' . $db->addQuotes( 
$options['notByUser'] );
                }
 
-               // Avoid brute force searches (bug 17342)
+               // Avoid brute force searches (T19342)
                $bitmask = 0;
                if ( !$user->isAllowed( 'deletedhistory' ) ) {
                        $bitmask = Revision::DELETED_USER;
diff --git a/includes/WebRequest.php b/includes/WebRequest.php
index 78d7444..3d5e372 100644
--- a/includes/WebRequest.php
+++ b/includes/WebRequest.php
@@ -216,7 +216,7 @@
 
                        $host = $parts[0];
                        if ( $wgAssumeProxiesUseDefaultProtocolPorts && isset( 
$_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) {
-                               // Bug 70021: Assume that upstream proxy is 
running on the default
+                               // T72021: Assume that upstream proxy is 
running on the default
                                // port based on the protocol. We have no 
reliable way to determine
                                // the actual port in use upstream.
                                $port = $stdPort;
@@ -308,7 +308,7 @@
         * available variant URLs.
         */
        public function interpolateTitle() {
-               // bug 16019: title interpolation on API queries is useless and 
sometimes harmful
+               // T18019: title interpolation on API queries is useless and 
sometimes harmful
                if ( defined( 'MW_API' ) ) {
                        return;
                }
@@ -1229,7 +1229,7 @@
                                if (
                                        IP::isPublic( $ipchain[$i + 1] ) ||
                                        $wgUsePrivateIPs ||
-                                       $proxyLookup->isConfiguredProxy( $curIP 
) // bug 48919; treat IP as sane
+                                       $proxyLookup->isConfiguredProxy( $curIP 
) // T50919; treat IP as sane
                                ) {
                                        // Follow the next IP according to the 
proxy
                                        $nextIP = IP::canonicalize( $ipchain[$i 
+ 1] );
diff --git a/includes/WebStart.php b/includes/WebStart.php
index 6e4fb09..74b9aa6 100644
--- a/includes/WebStart.php
+++ b/includes/WebStart.php
@@ -30,7 +30,7 @@
        die( 'MediaWiki does not support installations where 
mbstring.func_overload is non-zero.' );
 }
 
-# bug 15461: Make IE8 turn off content sniffing. Everybody else should ignore 
this
+# T17461: Make IE8 turn off content sniffing. Everybody else should ignore this
 # We're adding it here so that it's *always* set, even for alternate entry
 # points and when $wgOut gets disabled or overridden.
 header( 'X-Content-Type-Options: nosniff' );
diff --git a/includes/cache/BacklinkCache.php b/includes/cache/BacklinkCache.php
index 9e6cf1e..349b773 100644
--- a/includes/cache/BacklinkCache.php
+++ b/includes/cache/BacklinkCache.php
@@ -407,7 +407,7 @@
 
                // 4) ... finally fetch from the slow database :(
                $cacheEntry = [ 'numRows' => 0, 'batches' => [] ]; // final 
result
-               // Do the selects in batches to avoid client-side OOMs (bug 
43452).
+               // Do the selects in batches to avoid client-side OOMs (T45452).
                // Use a LIMIT that plays well with $batchSize to keep equal 
sized partitions.
                $selectSize = max( $batchSize, 200000 - ( 200000 % $batchSize ) 
);
                $start = false;
diff --git a/includes/changes/ChangesFeed.php b/includes/changes/ChangesFeed.php
index 15a00c7..86c07ba 100644
--- a/includes/changes/ChangesFeed.php
+++ b/includes/changes/ChangesFeed.php
@@ -152,7 +152,7 @@
                        if ( $feedAge < $wgFeedCacheTimeout || $feedLastmodUnix 
> $lastmodUnix ) {
                                wfDebug( "RC: loading feed from cache ($key; 
$feedLastmod; $lastmod)...\n" );
                                if ( $feedLastmodUnix < $lastmodUnix ) {
-                                       $wgOut->setLastModified( $feedLastmod 
); // bug 21916
+                                       $wgOut->setLastModified( $feedLastmod 
); // T23916
                                }
                                return $cache->get( $key );
                        } else {
diff --git a/includes/changes/OldChangesList.php 
b/includes/changes/OldChangesList.php
index d862ef4..a5d5191 100644
--- a/includes/changes/OldChangesList.php
+++ b/includes/changes/OldChangesList.php
@@ -34,7 +34,7 @@
        public function recentChangesLine( &$rc, $watched = false, $linenumber 
= null ) {
 
                $classes = $this->getHTMLClasses( $rc, $watched );
-               // use mw-line-even/mw-line-odd class only if linenumber is 
given (feature from bug 14468)
+               // use mw-line-even/mw-line-odd class only if linenumber is 
given (feature from T16468)
                if ( $linenumber ) {
                        if ( $linenumber & 1 ) {
                                $classes[] = 'mw-line-odd';
diff --git a/includes/collation/CollationEt.php 
b/includes/collation/CollationEt.php
index 5dc9fa2..ca7b765 100644
--- a/includes/collation/CollationEt.php
+++ b/includes/collation/CollationEt.php
@@ -19,7 +19,7 @@
  */
 
 /**
- * Workaround for incorrect collation of Estonian language ('et') in ICU (bug 
54168).
+ * Workaround for incorrect collation of Estonian language ('et') in ICU 
(T56168).
  *
  * 'W' and 'V' should not be considered the same letter for the purposes of 
collation in modern
  * Estonian. We work around this by replacing 'W' and 'w' with 'ᴡ' U+1D21 
'LATIN LETTER SMALL
diff --git a/includes/collation/IcuCollation.php 
b/includes/collation/IcuCollation.php
index bc5a209..bf1fe74 100644
--- a/includes/collation/IcuCollation.php
+++ b/includes/collation/IcuCollation.php
@@ -513,8 +513,12 @@
         * can't be determined.
         *
         * The constant INTL_ICU_VERSION this function refers to isn't really
-        * documented. It is available since PHP 5.3.7 (see PHP bug 54561).
-        * This function will return false on older PHPs.
+        * documented. It is available since PHP 5.3.7 (see PHP 54561
+        * https://bugs.php.net/bug.php?id=54561). This function will return
+        * false on older PHPs.
+        *
+        * TODO: Remove the backwards-compatibility as MediaWiki now requires
+        * higher levels of PHP.
         *
         * @since 1.21
         * @return string|bool
diff --git a/includes/content/ContentHandler.php 
b/includes/content/ContentHandler.php
index 58665bb..ed5be47 100644
--- a/includes/content/ContentHandler.php
+++ b/includes/content/ContentHandler.php
@@ -899,7 +899,7 @@
                        $onlyAuthor = $row->rev_user_text;
                        // Try to find a second contributor
                        foreach ( $res as $row ) {
-                               if ( $row->rev_user_text != $onlyAuthor ) { // 
Bug 22999
+                               if ( $row->rev_user_text != $onlyAuthor ) { // 
T24999
                                        $onlyAuthor = false;
                                        break;
                                }
diff --git a/includes/content/TextContentHandler.php 
b/includes/content/TextContentHandler.php
index 09cdcee..656cbaa 100644
--- a/includes/content/TextContentHandler.php
+++ b/includes/content/TextContentHandler.php
@@ -30,7 +30,7 @@
  */
 class TextContentHandler extends ContentHandler {
 
-       // @codingStandardsIgnoreStart bug 57585
+       // @codingStandardsIgnoreStart T59585
        public function __construct( $modelId = CONTENT_MODEL_TEXT, $formats = 
[ CONTENT_FORMAT_TEXT ] ) {
                parent::__construct( $modelId, $formats );
        }
diff --git a/includes/context/RequestContext.php 
b/includes/context/RequestContext.php
index ecd274b..3dfa456 100644
--- a/includes/context/RequestContext.php
+++ b/includes/context/RequestContext.php
@@ -428,7 +428,7 @@
                                }
 
                                // Normalize the key in case the user is 
passing gibberish
-                               // or has old preferences (bug 69566).
+                               // or has old preferences (T71566).
                                $normalized = Skin::normalizeKey( $userSkin );
 
                                // Skin::normalizeKey will also validate it, so
diff --git a/includes/db/CloneDatabase.php b/includes/db/CloneDatabase.php
index 2b394b6..c4921e2 100644
--- a/includes/db/CloneDatabase.php
+++ b/includes/db/CloneDatabase.php
@@ -79,7 +79,7 @@
                foreach ( $this->tablesToClone as $tbl ) {
                        if ( $wgSharedDB && in_array( $tbl, $wgSharedTables, 
true ) ) {
                                // Shared tables don't work properly when 
cloning due to
-                               // how prefixes are handled (bug 65654)
+                               // how prefixes are handled (T67654)
                                throw new RuntimeException( "Cannot clone 
shared table $tbl." );
                        }
                        # Clean up from previous aborted run.  So that table 
escaping
diff --git a/includes/deferred/LinksUpdate.php 
b/includes/deferred/LinksUpdate.php
index 464c908..0133f19 100644
--- a/includes/deferred/LinksUpdate.php
+++ b/includes/deferred/LinksUpdate.php
@@ -145,7 +145,7 @@
                        # If the sortkey is longer then 255 bytes,
                        # it truncated by DB, and then doesn't get
                        # matched when comparing existing vs current
-                       # categories, causing bug 25254.
+                       # categories, causing T27254.
                        # Also. substr behaves weird when given "".
                        if ( $sortkey !== '' ) {
                                $sortkey = substr( $sortkey, 0, 255 );
diff --git a/includes/diff/DifferenceEngine.php 
b/includes/diff/DifferenceEngine.php
index 5367199..148e50c 100644
--- a/includes/diff/DifferenceEngine.php
+++ b/includes/diff/DifferenceEngine.php
@@ -82,7 +82,7 @@
        /**
         * Set this to true to add debug info to the HTML output.
         * Warning: this may cause RSS readers to spuriously mark articles as 
"new"
-        * (bug 20601)
+        * (T22601)
         */
        public $enableDebugComment = false;
 
diff --git a/includes/exception/ErrorPageError.php 
b/includes/exception/ErrorPageError.php
index 9b5a268..2bed87a 100644
--- a/includes/exception/ErrorPageError.php
+++ b/includes/exception/ErrorPageError.php
@@ -39,7 +39,7 @@
                $this->msg = $msg;
                $this->params = $params;
 
-               // Bug 44111: Messages in the log files should be in English 
and not
+               // T46111: Messages in the log files should be in English and 
not
                // customized by the local wiki. So get the default English 
version for
                // passing to the parent constructor. Our overridden report() 
below
                // makes sure that the page shown to the user is not forced to 
English.
diff --git a/includes/exception/MWExceptionHandler.php 
b/includes/exception/MWExceptionHandler.php
index 44ab0e4..749be3c 100644
--- a/includes/exception/MWExceptionHandler.php
+++ b/includes/exception/MWExceptionHandler.php
@@ -342,7 +342,7 @@
                                $text .= "{$pad}#{$level} 
{$frame['file']}({$frame['line']}): ";
                        } else {
                                // 'file' and 'line' are unset for calls via 
call_user_func
-                               // (bug 55634) This matches behaviour of
+                               // (T57634) This matches behaviour of
                                // Exception::getTraceAsString to instead 
display "[internal
                                // function]".
                                $text .= "{$pad}#{$level} [internal function]: 
";
diff --git a/includes/exception/UserNotLoggedIn.php 
b/includes/exception/UserNotLoggedIn.php
index 43c5b09..3acb8b8 100644
--- a/includes/exception/UserNotLoggedIn.php
+++ b/includes/exception/UserNotLoggedIn.php
@@ -46,7 +46,7 @@
  * }
  * @endcode
  *
- * @see bug 37627
+ * @see T39627
  * @since 1.20
  * @ingroup Exception
  */
diff --git a/includes/filerepo/FileRepo.php b/includes/filerepo/FileRepo.php
index 0e4b2f0..8edf81f 100644
--- a/includes/filerepo/FileRepo.php
+++ b/includes/filerepo/FileRepo.php
@@ -1448,7 +1448,7 @@
                                'dst' => $archivePath,
                                // We may have 2+ identical files being deleted,
                                // all of which will map to the same 
destination file
-                               'overwriteSame' => true // also see bug 31792
+                               'overwriteSame' => true // also see T33792
                        ];
                }
 
diff --git a/includes/filerepo/file/File.php b/includes/filerepo/file/File.php
index be78462..3b873ea 100644
--- a/includes/filerepo/file/File.php
+++ b/includes/filerepo/file/File.php
@@ -919,7 +919,7 @@
                        return $this->iconThumb();
                }
                $hp['width'] = $width;
-               // be sure to ignore any height specification as well (bug 
62258)
+               // be sure to ignore any height specification as well (T64258)
                unset( $hp['height'] );
 
                return $this->transform( $hp );
@@ -1039,7 +1039,7 @@
                                break; // not a bitmap or renderable image, 
don't try
                        }
 
-                       // Get the descriptionUrl to embed it as comment into 
the thumbnail. Bug 19791.
+                       // Get the descriptionUrl to embed it as comment into 
the thumbnail. T21791.
                        $descriptionUrl = $this->getDescriptionUrl();
                        if ( $descriptionUrl ) {
                                $params['descriptionUrl'] = wfExpandUrl( 
$descriptionUrl, PROTO_CANONICAL );
diff --git a/includes/filerepo/file/LocalFile.php 
b/includes/filerepo/file/LocalFile.php
index 8c088b9..a1cb0a2 100644
--- a/includes/filerepo/file/LocalFile.php
+++ b/includes/filerepo/file/LocalFile.php
@@ -891,7 +891,7 @@
                                $files[] = $file;
                        }
                } catch ( FileBackendError $e ) {
-               } // suppress (bug 54674)
+               } // suppress (T56674)
 
                return $files;
        }
@@ -1353,7 +1353,7 @@
                                }
                        }
 
-                       # (bug 34993) Note: $oldver can be empty here, if the 
previous
+                       # (T36993) Note: $oldver can be empty here, if the 
previous
                        # version of the file was broken. Allow registration of 
the new
                        # version to continue anyway, because that's better 
than having
                        # an image that's not fixable by user operations.
@@ -2007,7 +2007,7 @@
                        $dbw = $this->repo->getMasterDB();
                        $makesTransaction = !$dbw->trxLevel();
                        $dbw->startAtomic( self::ATOMIC_SECTION_LOCK );
-                       // Bug 54736: use simple lock to handle when the file 
does not exist.
+                       // T56736: use simple lock to handle when the file does 
not exist.
                        // SELECT FOR UPDATE prevents changes, not other 
SELECTs with FOR UPDATE.
                        // Also, that would cause contention on INSERT of 
similarly named rows.
                        $status = $this->acquireFileLock(); // represents all 
versions of the file
@@ -3035,7 +3035,7 @@
                        $status->failCount++;
                }
                $status->successCount += $oldRowCount;
-               // Bug 34934: oldCount is based on files that actually exist.
+               // T36934: oldCount is based on files that actually exist.
                // There may be more DB rows than such files, in which case 
$affected
                // can be greater than $total. We use max() to avoid negatives 
here.
                $status->failCount += max( 0, $this->oldCount - $oldRowCount );
diff --git a/includes/http/MWHttpRequest.php b/includes/http/MWHttpRequest.php
index fac052f..e04402f 100644
--- a/includes/http/MWHttpRequest.php
+++ b/includes/http/MWHttpRequest.php
@@ -132,7 +132,7 @@
                foreach ( $members as $o ) {
                        if ( isset( $options[$o] ) ) {
                                // ensure that MWHttpRequest::method is always
-                               // uppercased. Bug 36137
+                               // uppercased. T38137
                                if ( $o == 'method' ) {
                                        $options[$o] = strtoupper( $options[$o] 
);
                                }
@@ -580,7 +580,7 @@
         *
         * Note that the multiple Location: headers are an artifact of
         * CURL -- they shouldn't actually get returned this way. Rewrite
-        * this when bug 29232 is taken care of (high-level redirect
+        * this when T31232 is taken care of (high-level redirect
         * handling rewrite).
         *
         * @return string
diff --git a/includes/import/WikiImporter.php b/includes/import/WikiImporter.php
index 1769924..06b579a 100644
--- a/includes/import/WikiImporter.php
+++ b/includes/import/WikiImporter.php
@@ -546,7 +546,7 @@
        public function doImport() {
                // Calls to reader->read need to be wrapped in calls to
                // libxml_disable_entity_loader() to avoid local file
-               // inclusion attacks (bug 46932).
+               // inclusion attacks (T48932).
                $oldDisable = libxml_disable_entity_loader( true );
                $this->reader->read();
 
diff --git a/includes/installer/DatabaseUpdater.php 
b/includes/installer/DatabaseUpdater.php
index 6a8a99f..caaab46 100644
--- a/includes/installer/DatabaseUpdater.php
+++ b/includes/installer/DatabaseUpdater.php
@@ -485,7 +485,7 @@
        public function updateRowExists( $key ) {
                $row = $this->db->selectRow(
                        'updatelog',
-                       # Bug 65813
+                       # T67813
                        '1 AS X',
                        [ 'ul_key' => $key ],
                        __METHOD__
diff --git a/includes/installer/Installer.php b/includes/installer/Installer.php
index 9c87cf0..f03fe6a 100644
--- a/includes/installer/Installer.php
+++ b/includes/installer/Installer.php
@@ -216,7 +216,7 @@
                '_UpgradeKeySupplied' => false,
                '_ExistingDBSettings' => false,
 
-               // $wgLogo is probably wrong (bug 48084); set something that 
will work.
+               // $wgLogo is probably wrong (T50084); set something that will 
work.
                // Single quotes work fine here, as LocalSettingsGenerator 
outputs this unescaped.
                'wgLogo' => '$wgResourceBasePath/resources/assets/wiki.png',
                'wgAuthenticationTokenVersion' => 1,
@@ -1431,7 +1431,7 @@
                        );
                }
                // Unset everyone else's hooks. Lord knows what someone might 
be doing
-               // in ParserFirstCallInit (see bug 27171)
+               // in ParserFirstCallInit (see T29171)
                $GLOBALS['wgHooks'] = [ 'LoadExtensionSchemaUpdates' => 
$hooksWeWant ];
 
                return Status::newGood();
diff --git a/includes/installer/MysqlUpdater.php 
b/includes/installer/MysqlUpdater.php
index 49bfac1..3131c3c 100644
--- a/includes/installer/MysqlUpdater.php
+++ b/includes/installer/MysqlUpdater.php
@@ -824,7 +824,7 @@
        /**
         * Set page_random field to a random value where it is equals to 0.
         *
-        * @see bug 3946
+        * @see T5946
         */
        protected function doPageRandomUpdate() {
                $page = $this->db->tableName( 'page' );
diff --git a/includes/installer/PostgresUpdater.php 
b/includes/installer/PostgresUpdater.php
index e041fdd..9f0560e 100644
--- a/includes/installer/PostgresUpdater.php
+++ b/includes/installer/PostgresUpdater.php
@@ -981,10 +981,10 @@
 
        protected function rebuildTextSearch() {
                if ( $this->updateRowExists( 'patch-textsearch_bug66650.sql' ) 
) {
-                       $this->output( "...bug 66650 already fixed or not 
applicable.\n" );
+                       $this->output( "...T68650 already fixed or not 
applicable.\n" );
                        return;
                };
                $this->applyPatch( 'patch-textsearch_bug66650.sql', false,
-                       'Rebuilding text search for bug 66650' );
+                       'Rebuilding text search for T68650' );
        }
 }
diff --git a/includes/installer/WebInstaller.php 
b/includes/installer/WebInstaller.php
index c08212e..c94f0bf 100644
--- a/includes/installer/WebInstaller.php
+++ b/includes/installer/WebInstaller.php
@@ -1083,7 +1083,7 @@
 
                foreach ( $varNames as $name ) {
                        $value = $this->request->getVal( $prefix . $name );
-                       // bug 30524, do not trim passwords
+                       // T32524, do not trim passwords
                        if ( stripos( $name, 'password' ) === false ) {
                                $value = trim( $value );
                        }
diff --git a/includes/installer/WebInstallerName.php 
b/includes/installer/WebInstallerName.php
index e6deed5..81a107d 100644
--- a/includes/installer/WebInstallerName.php
+++ b/includes/installer/WebInstallerName.php
@@ -251,7 +251,7 @@
                        $retVal = false;
                }
                // If they asked to subscribe to mediawiki-announce but didn't 
give
-               // an e-mail, show an error. Bug 29332
+               // an e-mail, show an error. T31332
                if ( !$email && $this->getVar( '_Subscribe' ) ) {
                        $this->parent->showError( 'config-subscribe-noemail' );
                        $retVal = false;
diff --git a/includes/installer/WebInstallerPage.php 
b/includes/installer/WebInstallerPage.php
index 2ab05546..7a41ceb 100644
--- a/includes/installer/WebInstallerPage.php
+++ b/includes/installer/WebInstallerPage.php
@@ -92,7 +92,7 @@
                }
 
                if ( $continue ) {
-                       // Fake submit button for enter keypress (bug 26267)
+                       // Fake submit button for enter keypress (T28267)
                        // Messages: config-continue, config-restart, 
config-regenerate
                        $s .= Xml::submitButton(
                                wfMessage( "config-$continue" )->text(),
diff --git a/includes/installer/WebInstallerUpgrade.php 
b/includes/installer/WebInstallerUpgrade.php
index 72973e7..bf732a4 100644
--- a/includes/installer/WebInstallerUpgrade.php
+++ b/includes/installer/WebInstallerUpgrade.php
@@ -67,7 +67,7 @@
 
                        if ( $result ) {
                                // If they're going to possibly regenerate 
LocalSettings, we
-                               // need to create the upgrade/secret keys. Bug 
26481
+                               // need to create the upgrade/secret keys. 
T28481
                                if ( !$this->getVar( '_ExistingDBSettings' ) ) {
                                        $this->parent->generateKeys();
                                }
diff --git a/includes/jobqueue/JobQueueDB.php b/includes/jobqueue/JobQueueDB.php
index 0a8ae7f..2f58947 100644
--- a/includes/jobqueue/JobQueueDB.php
+++ b/includes/jobqueue/JobQueueDB.php
@@ -346,7 +346,7 @@
                                        continue; // try the other direction
                                }
                        } else { // table *may* have >= MAX_OFFSET rows
-                               // Bug 42614: "ORDER BY job_random" with a 
job_random inequality causes high CPU
+                               // T44614: "ORDER BY job_random" with a 
job_random inequality causes high CPU
                                // in MySQL if there are many rows for some 
reason. This uses a small OFFSET
                                // instead of job_random for reducing excess 
claim retries.
                                $row = $dbw->selectRow( 'job', 
self::selectFields(), // find a random job
diff --git a/includes/jobqueue/jobs/DoubleRedirectJob.php 
b/includes/jobqueue/jobs/DoubleRedirectJob.php
index 3cd3448..74c446f 100644
--- a/includes/jobqueue/jobs/DoubleRedirectJob.php
+++ b/includes/jobqueue/jobs/DoubleRedirectJob.php
@@ -137,7 +137,7 @@
                        wfDebug( __METHOD__ . " : skipping, already good\n" );
                }
 
-               // Preserve fragment (bug 14904)
+               // Preserve fragment (T16904)
                $newTitle = Title::makeTitle( $newTitle->getNamespace(), 
$newTitle->getDBkey(),
                        $currentDest->getFragment(), $newTitle->getInterwiki() 
);
 
@@ -199,7 +199,7 @@
                        $seenTitles[$titleText] = true;
 
                        if ( $title->isExternal() ) {
-                               // If the target is interwiki, we have to break 
early (bug 40352).
+                               // If the target is interwiki, we have to break 
early (T42352).
                                // Otherwise it will look up a row in the local 
page table
                                // with the namespace/page of the interwiki 
target which can cause
                                // unexpected results (e.g. X -> foo:Bar -> Bar 
-> .. )
diff --git a/includes/jobqueue/jobs/PublishStashedFileJob.php 
b/includes/jobqueue/jobs/PublishStashedFileJob.php
index 37e80c2..e89812b 100644
--- a/includes/jobqueue/jobs/PublishStashedFileJob.php
+++ b/includes/jobqueue/jobs/PublishStashedFileJob.php
@@ -128,7 +128,7 @@
                        );
                        $this->setLastError( get_class( $e ) . ": " . 
$e->getMessage() );
                        // To prevent potential database referential integrity 
issues.
-                       // See bug 32551.
+                       // See T34551.
                        MWExceptionHandler::rollbackMasterChangesAndLog( $e );
 
                        return false;
diff --git a/includes/logging/LogFormatter.php 
b/includes/logging/LogFormatter.php
index b5af783..68404bf 100644
--- a/includes/logging/LogFormatter.php
+++ b/includes/logging/LogFormatter.php
@@ -167,7 +167,7 @@
 
        /**
         * Even uglier hack to maintain backwards compatibilty with IRC bots
-        * (bug 34508).
+        * (T36508).
         * @see getActionText()
         * @return string Text
         */
@@ -188,7 +188,7 @@
 
        /**
         * Even uglier hack to maintain backwards compatibilty with IRC bots
-        * (bug 34508).
+        * (T36508).
         * @see getActionText()
         * @return string Text
         */
diff --git a/includes/logging/LogPager.php b/includes/logging/LogPager.php
index 68163c1..ea28ff2 100644
--- a/includes/logging/LogPager.php
+++ b/includes/logging/LogPager.php
@@ -181,7 +181,7 @@
                } else {
                        $this->mConds['log_user'] = $userid;
                }
-               // Paranoia: avoid brute force searches (bug 17342)
+               // Paranoia: avoid brute force searches (T19342)
                $user = $this->getUser();
                if ( !$user->isAllowed( 'deletedhistory' ) ) {
                        $this->mConds[] = $this->mDb->bitAnd( 'log_deleted', 
LogPage::DELETED_USER ) . ' = 0';
@@ -256,7 +256,7 @@
                } else {
                        $this->mConds['log_title'] = $title->getDBkey();
                }
-               // Paranoia: avoid brute force searches (bug 17342)
+               // Paranoia: avoid brute force searches (T19342)
                $user = $this->getUser();
                if ( !$user->isAllowed( 'deletedhistory' ) ) {
                        $this->mConds[] = $db->bitAnd( 'log_deleted', 
LogPage::DELETED_ACTION ) . ' = 0';
diff --git a/includes/mail/EmailNotification.php 
b/includes/mail/EmailNotification.php
index 1d0bdf6..d66e7e3 100644
--- a/includes/mail/EmailNotification.php
+++ b/includes/mail/EmailNotification.php
@@ -316,7 +316,7 @@
                $pageTitle = $this->title->getPrefixedText();
 
                if ( $this->oldid ) {
-                       // Always show a link to the diff which triggered the 
mail. See bug 32210.
+                       // Always show a link to the diff which triggered the 
mail. See T34210.
                        $keys['$NEWPAGE'] = "\n\n" . wfMessage( 
'enotif_lastdiff',
                                        $this->title->getCanonicalURL( [ 'diff' 
=> 'next', 'oldid' => $this->oldid ] ) )
                                        ->inContentLanguage()->text();
@@ -363,7 +363,7 @@
                        Skin::makeInternalOrExternalUrl( wfMessage( 'helppage' 
)->inContentLanguage()->text() )
                );
 
-               # Replace this after transforming the message, bug 35019
+               # Replace this after transforming the message, T37019
                $postTransformKeys['$PAGESUMMARY'] = $this->summary == '' ? ' - 
' : $this->summary;
 
                // Now build message's subject and body
diff --git a/includes/media/Bitmap.php b/includes/media/Bitmap.php
index ac0564d..0f0b074 100644
--- a/includes/media/Bitmap.php
+++ b/includes/media/Bitmap.php
@@ -150,7 +150,7 @@
                        if ( $params['interlace'] ) {
                                $animation_post = [ '-interlace', 'JPEG' ];
                        }
-                       # Sharpening, see bug 6193
+                       # Sharpening, see T8193
                        if ( ( $params['physicalWidth'] + 
$params['physicalHeight'] )
                                / ( $params['srcWidth'] + $params['srcHeight'] )
                                < $wgSharpenReductionThreshold
@@ -178,10 +178,10 @@
                                // be a total drag. :P
                                $scene = 0;
                        } elseif ( $this->isAnimatedImage( $image ) ) {
-                               // Coalesce is needed to scale animated GIFs 
properly (bug 1017).
+                               // Coalesce is needed to scale animated GIFs 
properly (T3017).
                                $animation_pre = [ '-coalesce' ];
                                // We optimize the output, but -optimize is 
broken,
-                               // use optimizeTransparency instead (bug 11822)
+                               // use optimizeTransparency instead (T13822)
                                if ( version_compare( 
$this->getMagickVersion(), "6.3.5" ) >= 0 ) {
                                        $animation_post = [ '-fuzz', '5%', 
'-layers', 'optimizeTransparency' ];
                                }
@@ -211,7 +211,7 @@
                                && $xcfMeta['colorType'] === 'greyscale-alpha'
                                && version_compare( $this->getMagickVersion(), 
"6.8.9-3" ) < 0
                        ) {
-                               // bug 66323 - Greyscale images not rendered 
properly.
+                               // T68323 - Greyscale images not rendered 
properly.
                                // So only take the "red" channel.
                                $channelOnly = [ '-channel', 'R', '-separate' ];
                                $animation_pre = array_merge( $animation_pre, 
$channelOnly );
@@ -283,7 +283,7 @@
                        $im->readImage( $params['srcPath'] );
 
                        if ( $params['mimeType'] == 'image/jpeg' ) {
-                               // Sharpening, see bug 6193
+                               // Sharpening, see T8193
                                if ( ( $params['physicalWidth'] + 
$params['physicalHeight'] )
                                        / ( $params['srcWidth'] + 
$params['srcHeight'] )
                                        < $wgSharpenReductionThreshold
@@ -312,7 +312,7 @@
                                        // be a total drag. :P
                                        $im->setImageScene( 0 );
                                } elseif ( $this->isAnimatedImage( $image ) ) {
-                                       // Coalesce is needed to scale animated 
GIFs properly (bug 1017).
+                                       // Coalesce is needed to scale animated 
GIFs properly (T3017).
                                        $im = $im->coalesceImages();
                                }
                                // GIF interlacing is only available since 6.3.4
diff --git a/includes/media/MediaHandler.php b/includes/media/MediaHandler.php
index 2a735a2..6a23bd6 100644
--- a/includes/media/MediaHandler.php
+++ b/includes/media/MediaHandler.php
@@ -762,7 +762,7 @@
         * @param string $cmd
         */
        protected function logErrorForExternalProcess( $retval, $err, $cmd ) {
-               # Keep error output limited (bug 57985)
+               # Keep error output limited (T59985)
                $errMessage = trim( substr( $err, 0, self::MAX_ERR_LOG_SIZE ) );
 
                wfDebugLog( 'thumbnail',
diff --git a/includes/media/SVGMetadataExtractor.php 
b/includes/media/SVGMetadataExtractor.php
index 6a974c7..4087fb3 100644
--- a/includes/media/SVGMetadataExtractor.php
+++ b/includes/media/SVGMetadataExtractor.php
@@ -86,13 +86,13 @@
                }
 
                // Expand entities, since Adobe Illustrator uses them for xmlns
-               // attributes (bug 31719). Note that libxml2 has some protection
+               // attributes (T33719). Note that libxml2 has some protection
                // against large recursive entity expansions so this is not as
                // insecure as it might appear to be. However, it is still 
extremely
                // insecure. It's necessary to wrap any read() calls with
                // libxml_disable_entity_loader() to avoid arbitrary local file
                // inclusion, or even arbitrary code execution if the expect
-               // extension is installed (bug 46859).
+               // extension is installed (T48859).
                $oldDisable = libxml_disable_entity_loader( true );
                $this->reader->setParserProperty( XMLReader::SUBST_ENTITIES, 
true );
 
diff --git a/includes/objectcache/SqlBagOStuff.php 
b/includes/objectcache/SqlBagOStuff.php
index 5fd3348..5c5a681 100644
--- a/includes/objectcache/SqlBagOStuff.php
+++ b/includes/objectcache/SqlBagOStuff.php
@@ -404,7 +404,7 @@
                                $exptime = $this->convertExpiry( $exptime );
                                $encExpiry = $db->timestamp( $exptime );
                        }
-                       // (bug 24425) use a replace if the db supports it 
instead of
+                       // (T26425) use a replace if the db supports it instead 
of
                        // delete/insert to avoid clashes with conflicting 
keynames
                        $db->update(
                                $tableName,
@@ -479,7 +479,7 @@
                                ], __METHOD__, 'IGNORE' );
 
                        if ( $db->affectedRows() == 0 ) {
-                               // Race condition. See bug 28611
+                               // Race condition. See T30611
                                $newValue = null;
                        }
                } catch ( DBError $e ) {
diff --git a/includes/page/Article.php b/includes/page/Article.php
index 34ff63c..805d0d9 100644
--- a/includes/page/Article.php
+++ b/includes/page/Article.php
@@ -726,7 +726,7 @@
 
                $ns = $this->getTitle()->getNamespace();
 
-               # Don't index user and user talk pages for blocked users (bug 
11443)
+               # Don't index user and user talk pages for blocked users 
(T13443)
                if ( ( $ns == NS_USER || $ns == NS_USER_TALK ) && 
!$this->getTitle()->isSubpage() ) {
                        $specificTarget = null;
                        $vagueTarget = null;
@@ -784,7 +784,7 @@
                }
 
                if ( isset( 
$wgArticleRobotPolicies[$this->getTitle()->getPrefixedText()] ) ) {
-                       # (bug 14900) site config can override user-defined 
__INDEX__ or __NOINDEX__
+                       # (T16900) site config can override user-defined 
__INDEX__ or __NOINDEX__
                        $policy = array_merge(
                                $policy,
                                self::formatRobotPolicy( 
$wgArticleRobotPolicies[$this->getTitle()->getPrefixedText()] )
diff --git a/includes/page/ImagePage.php b/includes/page/ImagePage.php
index c75cfdd..c6c865c 100644
--- a/includes/page/ImagePage.php
+++ b/includes/page/ImagePage.php
@@ -213,7 +213,7 @@
                }
 
                $out->addModuleStyles( [
-                       'filepage', // always show the local local 
Filepage.css, bug 29277
+                       'filepage', // always show the local local 
Filepage.css, T31277
                        'mediawiki.action.view.filepage', // Add MediaWiki 
styles for a file page
                ] );
        }
@@ -534,7 +534,7 @@
                                // this will get messy.
                                // The dirmark, however, must not be 
immediately adjacent
                                // to the filename, because it can get copied 
with it.
-                               // See bug 25277.
+                               // See T27277.
                                // @codingStandardsIgnoreStart Ignore long line
                                $out->addWikiText( <<<EOT
 <div class="fullMedia"><span class="dangerousLink">{$medialink}</span> 
$dirmark<span class="fileInfo">$longDesc</span></div>
diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php
index bc936ab..e49ef2a 100644
--- a/includes/page/WikiPage.php
+++ b/includes/page/WikiPage.php
@@ -151,7 +151,7 @@
         * @return WikiPage|null
         */
        public static function newFromID( $id, $from = 'fromdb' ) {
-               // page id's are never 0 or negative, see bug 61166
+               // page ids are never 0 or negative, see T63166
                if ( $id < 1 ) {
                        return null;
                }
@@ -257,7 +257,7 @@
                $this->mTimestamp = '';
                $this->mIsRedirect = false;
                $this->mLatest = false;
-               // Bug 57026: do not clear mPreparedEdit since 
prepareTextForEdit() already checks
+               // T59026: do not clear mPreparedEdit since 
prepareTextForEdit() already checks
                // the requested rev ID and content against the cached one for 
equality. For most
                // content types, the output should not change during the 
lifetime of this cache.
                // Clearing it can cause extra parses on edit for no reason.
@@ -424,7 +424,7 @@
                        $this->mLinksUpdated = wfTimestampOrNull( TS_MW, 
$data->page_links_updated );
                        $this->mIsRedirect = intval( $data->page_is_redirect );
                        $this->mLatest = intval( $data->page_latest );
-                       // Bug 37225: $latest may no longer match the cached 
latest Revision object.
+                       // T39225: $latest may no longer match the cached 
latest Revision object.
                        // Double-check the ID of any cached latest Revision 
object for consistency.
                        if ( $this->mLastRevision && 
$this->mLastRevision->getId() != $this->mLatest ) {
                                $this->mLastRevision = null;
@@ -619,7 +619,7 @@
                }
 
                if ( $this->mDataLoadedFrom == self::READ_LOCKING ) {
-                       // Bug 37225: if session S1 loads the page row FOR 
UPDATE, the result always
+                       // T39225: if session S1 loads the page row FOR UPDATE, 
the result always
                        // includes the latest changes committed. This is true 
even within REPEATABLE-READ
                        // transactions, where S1 normally only sees changes 
committed before the first S1
                        // SELECT. Thus we need S1 to also gets the revision 
row FOR UPDATE; otherwise, it
@@ -1460,7 +1460,7 @@
                                        
$this->getContentHandler()->getModelID() );
                        }
 
-                       // Bug 30711: always use current version when adding a 
new section
+                       // T32711: always use current version when adding a new 
section
                        if ( is_null( $baseRevId ) || $sectionId === 'new' ) {
                                $oldContent = $this->getContent();
                        } else {
@@ -1695,7 +1695,7 @@
 
                        return $status;
                } elseif ( !$oldContent ) {
-                       // Sanity check for bug 37225
+                       // Sanity check for T39225
                        throw new MWException( "Could not find text for current 
revision {$oldid}." );
                }
 
@@ -1783,7 +1783,7 @@
                        $dbw->endAtomic( __METHOD__ );
                        $this->mTimestamp = $now;
                } else {
-                       // Bug 32948: revision ID must be set to page 
{{REVISIONID}} and
+                       // T34948: revision ID must be set to page 
{{REVISIONID}} and
                        // related variables correctly. Likewise for 
{{REVISIONUSER}} (T135261).
                        $revision->setId( $this->getLatest() );
                        $revision->setUserIdAndName(
@@ -2023,7 +2023,7 @@
                $user = is_null( $user ) ? $wgUser : $user;
                // XXX: check $user->getId() here???
 
-               // Use a sane default for $serialFormat, see bug 57026
+               // Use a sane default for $serialFormat, see T59026
                if ( $serialFormat === null ) {
                        $serialFormat = 
$content->getContentHandler()->getDefaultFormat();
                }
@@ -2195,7 +2195,7 @@
 
                // Update the links tables and other secondary data
                if ( $content ) {
-                       $recursive = $options['changed']; // bug 50785
+                       $recursive = $options['changed']; // T52785
                        $updates = $content->getSecondaryDataUpdates(
                                $this->getTitle(), null, $recursive, 
$editInfo->output
                        );
@@ -2297,7 +2297,7 @@
 
                if ( $options['created'] ) {
                        self::onArticleCreate( $this->mTitle );
-               } elseif ( $options['changed'] ) { // bug 50785
+               } elseif ( $options['changed'] ) { // T52785
                        self::onArticleEdit( $this->mTitle, $revision );
                }
 
@@ -2911,7 +2911,7 @@
 
                $dbw->onTransactionPreCommitOrIdle(
                        function () use ( $dbw, $logEntry, $logid ) {
-                               // Bug 56776: avoid deadlocks (especially from 
FileDeleteForm)
+                               // T58776: avoid deadlocks (especially from 
FileDeleteForm)
                                $logEntry->publish( $logid );
                        },
                        __METHOD__
@@ -3191,7 +3191,7 @@
                );
 
                // Set patrolling and bot flag on the edits, which gets 
rollbacked.
-               // This is done even on edit failure to have patrolling in that 
case (bug 62157).
+               // This is done even on edit failure to have patrolling in that 
case (T64157).
                $set = [];
                if ( $bot && $guser->isAllowed( 'markbotedits' ) ) {
                        // Mark all reverted edits as bot
diff --git a/includes/parser/BlockLevelPass.php 
b/includes/parser/BlockLevelPass.php
index 2ef599a..2023d13 100644
--- a/includes/parser/BlockLevelPass.php
+++ b/includes/parser/BlockLevelPass.php
@@ -299,7 +299,7 @@
 
                                if ( $openMatch || $closeMatch ) {
                                        $pendingPTag = false;
-                                       # @todo bug 5718: paragraph closed
+                                       # @todo T7718: paragraph closed
                                        $output .= $this->closeParagraph();
                                        if ( $preOpenMatch && !$preCloseMatch ) 
{
                                                $this->inPre = true;
@@ -353,7 +353,7 @@
                                        }
                                }
                        }
-                       # somewhere above we forget to get out of pre block 
(bug 785)
+                       # somewhere above we forget to get out of pre block 
(T2785)
                        if ( $preCloseMatch && $this->inPre ) {
                                $this->inPre = false;
                        }
diff --git a/includes/parser/CoreParserFunctions.php 
b/includes/parser/CoreParserFunctions.php
index 6aa3acc..e34d10b 100644
--- a/includes/parser/CoreParserFunctions.php
+++ b/includes/parser/CoreParserFunctions.php
@@ -157,7 +157,7 @@
        }
 
        /**
-        * urlencodes a string according to one of three patterns: (bug 22474)
+        * urlencodes a string according to one of three patterns: (T24474)
         *
         * By default (for HTTP "query" strings), spaces are encoded as '+'.
         * Or to encode a value for the HTTP "path", spaces are encoded as 
'%20'.
diff --git a/includes/parser/ParserCache.php b/includes/parser/ParserCache.php
index 9e96540..f76c0b5 100644
--- a/includes/parser/ParserCache.php
+++ b/includes/parser/ParserCache.php
@@ -223,7 +223,7 @@
 
                // The edit section preference may not be the appropiate one in
                // the ParserOutput, as we are not storing it in the parsercache
-               // key. Force it here. See bug 31445.
+               // key. Force it here. See T33445.
                $value->setEditSectionTokens( $popts->getEditSection() );
 
                $wikiPage = method_exists( $article, 'getPage' )
diff --git a/includes/parser/ParserOptions.php 
b/includes/parser/ParserOptions.php
index 2900f41..7be8281 100644
--- a/includes/parser/ParserOptions.php
+++ b/includes/parser/ParserOptions.php
@@ -409,7 +409,7 @@
         * when the page is rendered based on the language of the user.
         *
         * @note When saving, this will return the default language instead of 
the user's.
-        * {{int: }} uses this which used to produce inconsistent link tables 
(bug 14404).
+        * {{int: }} uses this which used to produce inconsistent link tables 
(T16404).
         *
         * @return Language
         * @since 1.19
diff --git a/includes/parser/ParserOutput.php b/includes/parser/ParserOutput.php
index 0c162b4..b2f99b3 100644
--- a/includes/parser/ParserOutput.php
+++ b/includes/parser/ParserOutput.php
@@ -709,7 +709,7 @@
                        return false;
                }
 
-               // Important to parse with correct title (bug 31469)
+               // Important to parse with correct title (T33469)
                $cat = wfMessage( $msg )
                        ->title( $title )
                        ->inContentLanguage()
diff --git a/includes/parser/Preprocessor_DOM.php 
b/includes/parser/Preprocessor_DOM.php
index 661318b..b93c617 100644
--- a/includes/parser/Preprocessor_DOM.php
+++ b/includes/parser/Preprocessor_DOM.php
@@ -134,7 +134,7 @@
         *                                is to assume a direct page view.
         *
         * The generated DOM tree must depend only on the input text and the 
flags.
-        * The DOM tree must be the same in OT_HTML and OT_WIKI mode, to avoid 
a regression of bug 4899.
+        * The DOM tree must be the same in OT_HTML and OT_WIKI mode, to avoid 
a regression of T6899.
         *
         * Any flag added to the $flags parameter here, or any other parameter 
liable to cause a
         * change in the DOM tree for a given text, must be passed through the 
section identifier
diff --git a/includes/parser/Preprocessor_Hash.php 
b/includes/parser/Preprocessor_Hash.php
index 2666c93..b2e9531 100644
--- a/includes/parser/Preprocessor_Hash.php
+++ b/includes/parser/Preprocessor_Hash.php
@@ -107,7 +107,7 @@
         *                                 included. Default is to assume a 
direct page view.
         *
         * The generated DOM tree must depend only on the input text and the 
flags.
-        * The DOM tree must be the same in OT_HTML and OT_WIKI mode, to avoid 
a regression of bug 4899.
+        * The DOM tree must be the same in OT_HTML and OT_WIKI mode, to avoid 
a regression of T6899.
         *
         * Any flag added to the $flags parameter here, or any other parameter 
liable to cause a
         * change in the DOM tree for a given text, must be passed through the 
section identifier
diff --git a/includes/poolcounter/PoolWorkArticleView.php 
b/includes/poolcounter/PoolWorkArticleView.php
index 534e86b..1f1add7 100644
--- a/includes/poolcounter/PoolWorkArticleView.php
+++ b/includes/poolcounter/PoolWorkArticleView.php
@@ -129,7 +129,7 @@
                        return false;
                }
 
-               // Reduce effects of race conditions for slow parses (bug 46014)
+               // Reduce effects of race conditions for slow parses (T48014)
                $cacheTime = wfTimestampNow();
 
                $time = - microtime( true );
diff --git a/includes/profiler/output/ProfilerOutputDb.php 
b/includes/profiler/output/ProfilerOutputDb.php
index 088721c..264ec0c 100644
--- a/includes/profiler/output/ProfilerOutputDb.php
+++ b/includes/profiler/output/ProfilerOutputDb.php
@@ -41,7 +41,7 @@
        }
 
        public function canUse() {
-               # Do not log anything if database is readonly (bug 5375)
+               # Do not log anything if database is readonly (T7375)
                return !wfReadOnly();
        }
 
diff --git a/includes/resourceloader/ResourceLoader.php 
b/includes/resourceloader/ResourceLoader.php
index a55cbc1..2b6b9e3 100644
--- a/includes/resourceloader/ResourceLoader.php
+++ b/includes/resourceloader/ResourceLoader.php
@@ -714,7 +714,7 @@
                        $module = $this->getModule( $name );
                        if ( $module ) {
                                // Do not allow private modules to be loaded 
from the web.
-                               // This is a security issue, see bug 34907.
+                               // This is a security issue, see T36907.
                                if ( $module->getGroup() === 'private' ) {
                                        $this->logger->debug( "Request for 
private module '$name' denied" );
                                        $this->errors[] = "Cannot show private 
module \"$name\"";
@@ -1216,7 +1216,7 @@
                        $styles = (array)$styles;
                        foreach ( $styles as $style ) {
                                $style = trim( $style );
-                               // Don't output an empty "@media print { }" 
block (bug 40498)
+                               // Don't output an empty "@media print { }" 
block (T42498)
                                if ( $style !== '' ) {
                                        // Transform the media type based on 
request params and config
                                        // The way that this relies on 
$wgRequest to propagate request params is slightly evil
@@ -1633,7 +1633,7 @@
         */
        public function getLessCompiler( $extraVars = [] ) {
                // When called from the installer, it is possible that a 
required PHP extension
-               // is missing (at least for now; see bug 47564). If this is the 
case, throw an
+               // is missing (at least for now; see T49564). If this is the 
case, throw an
                // exception (caught by the installer) to prevent a fatal error 
later on.
                if ( !class_exists( 'Less_Parser' ) ) {
                        throw new MWException( 'MediaWiki requires the less.php 
parser' );
diff --git a/includes/resourceloader/ResourceLoaderClientHtml.php 
b/includes/resourceloader/ResourceLoaderClientHtml.php
index 29f8cfe..8c792ad 100644
--- a/includes/resourceloader/ResourceLoaderClientHtml.php
+++ b/includes/resourceloader/ResourceLoaderClientHtml.php
@@ -417,7 +417,7 @@
                                // Special handling for the user group; because 
users might change their stuff
                                // on-wiki like user pages, or user 
preferences; we need to find the highest
                                // timestamp of these user-changeable modules 
so we can ensure cache misses on change
-                               // This should NOT be done for the site group 
(bug 27564) because anons get that too
+                               // This should NOT be done for the site group 
(T29564) because anons get that too
                                // and we shouldn't be putting timestamps in 
CDN-cached HTML
                                if ( $group === 'user' ) {
                                        // Must setModules() before 
makeVersionQuery()
diff --git a/includes/resourceloader/ResourceLoaderContext.php 
b/includes/resourceloader/ResourceLoaderContext.php
index a1a89cb..8955b8c 100644
--- a/includes/resourceloader/ResourceLoaderContext.php
+++ b/includes/resourceloader/ResourceLoaderContext.php
@@ -197,7 +197,7 @@
                if ( $this->direction === null ) {
                        $this->direction = $this->getRequest()->getRawVal( 
'dir' );
                        if ( !$this->direction ) {
-                               // Determine directionality based on user 
language (bug 6100)
+                               // Determine directionality based on user 
language (T8100)
                                $this->direction = Language::factory( 
$this->getLanguage() )->getDir();
                        }
                }
diff --git a/includes/resourceloader/ResourceLoaderModule.php 
b/includes/resourceloader/ResourceLoaderModule.php
index 71e5939..e7d01c0 100644
--- a/includes/resourceloader/ResourceLoaderModule.php
+++ b/includes/resourceloader/ResourceLoaderModule.php
@@ -637,7 +637,7 @@
                                        && substr( rtrim( $scripts ), -1 ) !== 
';'
                                ) {
                                        // Append semicolon to prevent weird 
bugs caused by files not
-                                       // terminating their statements right 
(bug 27054)
+                                       // terminating their statements right 
(T29054)
                                        $scripts .= ";\n";
                                }
                        }
@@ -648,7 +648,7 @@
                if ( $context->shouldIncludeStyles() ) {
                        $styles = [];
                        // Don't create empty stylesheets like [ '' => '' ] for 
modules
-                       // that don't *have* any stylesheets (bug 38024).
+                       // that don't *have* any stylesheets (T40024).
                        $stylePairs = $this->getStyles( $context );
                        if ( count( $stylePairs ) ) {
                                // If we are in debug mode without &only= set, 
we'll want to return an array of URLs
diff --git a/includes/resourceloader/ResourceLoaderStartUpModule.php 
b/includes/resourceloader/ResourceLoaderStartUpModule.php
index a99305c..48e4a0d 100644
--- a/includes/resourceloader/ResourceLoaderStartUpModule.php
+++ b/includes/resourceloader/ResourceLoaderStartUpModule.php
@@ -82,7 +82,7 @@
                        'wgSearchType' => $conf->get( 'SearchType' ),
                        'wgVariantArticlePath' => $conf->get( 
'VariantArticlePath' ),
                        // Force object to avoid "empty" associative array from
-                       // becoming [] instead of {} in JS (bug 34604)
+                       // becoming [] instead of {} in JS (T36604)
                        'wgActionPaths' => (object)$conf->get( 'ActionPaths' ),
                        'wgServer' => $conf->get( 'Server' ),
                        'wgServerName' => $conf->get( 'ServerName' ),
diff --git a/includes/resourceloader/ResourceLoaderWikiModule.php 
b/includes/resourceloader/ResourceLoaderWikiModule.php
index 14d6e05..7ec91cd 100644
--- a/includes/resourceloader/ResourceLoaderWikiModule.php
+++ b/includes/resourceloader/ResourceLoaderWikiModule.php
@@ -268,7 +268,7 @@
                        return true;
                }
 
-               // Bug 68488: For other modules (i.e. ones that are called in 
cached html output) only check
+               // T70488: For other modules (i.e. ones that are called in 
cached html output) only check
                // page existance. This ensures that, if some pages in a module 
are temporarily blanked,
                // we don't end omit the module's script or link tag on some 
pages.
                return count( $revisions ) === 0;
diff --git a/includes/skins/Skin.php b/includes/skins/Skin.php
index 96812ea..85bd09a 100644
--- a/includes/skins/Skin.php
+++ b/includes/skins/Skin.php
@@ -381,7 +381,7 @@
 
                if ( $title->isSpecialPage() ) {
                        $type = 'ns-special';
-                       // bug 23315: provide a class based on the canonical 
special page name without subpages
+                       // T25315: provide a class based on the canonical 
special page name without subpages
                        list( $canonicalName ) = 
SpecialPageFactory::resolveAlias( $title->getDBkey() );
                        if ( $canonicalName ) {
                                $type .= ' ' . Sanitizer::escapeClass( 
"mw-special-$canonicalName" );
@@ -1283,7 +1283,7 @@
                                        $line = array_map( 'trim', explode( 
'|', $line, 2 ) );
                                        if ( count( $line ) !== 2 ) {
                                                // Second sanity check, could 
be hit by people doing
-                                               // funky stuff with 
parserfuncs... (bug 33321)
+                                               // funky stuff with 
parserfuncs... (T35321)
                                                continue;
                                        }
 
@@ -1538,7 +1538,7 @@
 
                $attribs = [];
                if ( !is_null( $tooltip ) ) {
-                       # Bug 25462: undo double-escaping.
+                       # T27462: undo double-escaping.
                        $tooltip = Sanitizer::decodeCharReferences( $tooltip );
                        $attribs['title'] = wfMessage( 'editsectionhint' 
)->rawParams( $tooltip )
                                ->inLanguage( $lang )->text();
diff --git a/includes/skins/SkinTemplate.php b/includes/skins/SkinTemplate.php
index bc6dfca..780fac4 100644
--- a/includes/skins/SkinTemplate.php
+++ b/includes/skins/SkinTemplate.php
@@ -582,7 +582,7 @@
                /* set up the default links for the personal toolbar */
                $personal_urls = [];
 
-               # Due to bug 32276, if a user does not have read permissions,
+               # Due to T34276, if a user does not have read permissions,
                # $this->getTitle() will just give Special:Badtitle, which is
                # not especially useful as a returnto parameter. Use the title
                # from the request instead, if there was one.
@@ -663,7 +663,7 @@
                                        'text' => $this->msg( 'pt-userlogout' 
)->text(),
                                        'href' => self::makeSpecialUrl( 
'Userlogout',
                                                // userlogout link must always 
contain an & character, otherwise we might not be able
-                                               // to detect a buggy precaching 
proxy (bug 17790)
+                                               // to detect a buggy precaching 
proxy (T19790)
                                                $title->isSpecial( 
'Preferences' ) ? 'noreturnto' : $returnto ),
                                        'active' => false
                                ];
@@ -1120,7 +1120,7 @@
                        $content_navigation['namespaces']['special'] = [
                                'class' => 'selected',
                                'text' => $this->msg( 'nstab-special' )->text(),
-                               'href' => $request->getRequestURL(), // @see: 
bug 2457, bug 2510
+                               'href' => $request->getRequestURL(), // @see: 
T4457, T4510
                                'context' => 'subject'
                        ];
 
diff --git a/includes/specialpage/ChangesListSpecialPage.php 
b/includes/specialpage/ChangesListSpecialPage.php
index 00439a1..9cce266 100644
--- a/includes/specialpage/ChangesListSpecialPage.php
+++ b/includes/specialpage/ChangesListSpecialPage.php
@@ -311,7 +311,7 @@
                        $operator = $opts['invert'] ? '!=' : '=';
                        $boolean = $opts['invert'] ? 'AND' : 'OR';
 
-                       // Namespace association (bug 2429)
+                       // Namespace association (T4429)
                        if ( !$opts['associated'] ) {
                                $condition = "rc_namespace $operator 
$selectedNS";
                        } else {
diff --git a/includes/specialpage/LoginSignupSpecialPage.php 
b/includes/specialpage/LoginSignupSpecialPage.php
index c3ee321..b7b3d55 100644
--- a/includes/specialpage/LoginSignupSpecialPage.php
+++ b/includes/specialpage/LoginSignupSpecialPage.php
@@ -177,7 +177,7 @@
 
                # 1. When switching accounts, it sucks to get automatically 
logged out
                # 2. Do not return to PasswordReset after a successful password 
change
-               #    but goto Wiki start page (Main_Page) instead ( bug 33997 )
+               #    but goto Wiki start page (Main_Page) instead ( T35997 )
                $returnToTitle = Title::newFromText( $this->mReturnTo );
                if ( is_object( $returnToTitle )
                        && ( $returnToTitle->isSpecial( 'Userlogout' )
@@ -727,7 +727,7 @@
                $user = $this->getUser();
                $template = new FakeAuthTemplate();
 
-               // Pre-fill username (if not creating an account, bug 44775).
+               // Pre-fill username (if not creating an account, T46775).
                if ( $data->mUsername == '' && $this->isSignup() ) {
                        if ( $user->isLoggedIn() ) {
                                $data->mUsername = $user->getName();
diff --git a/includes/specialpage/QueryPage.php 
b/includes/specialpage/QueryPage.php
index 3592500..53f8930 100644
--- a/includes/specialpage/QueryPage.php
+++ b/includes/specialpage/QueryPage.php
@@ -322,7 +322,7 @@
                                                        $value = wfTimestamp( 
TS_UNIX,
                                                                $row->value );
                                                } else {
-                                                       $value = intval( 
$row->value ); // @bug 14414
+                                                       $value = intval( 
$row->value ); // T16414
                                                }
                                        } else {
                                                $value = 0;
diff --git a/includes/specialpage/SpecialPageFactory.php 
b/includes/specialpage/SpecialPageFactory.php
index daabded..33e1cc3 100644
--- a/includes/specialpage/SpecialPageFactory.php
+++ b/includes/specialpage/SpecialPageFactory.php
@@ -346,7 +346,7 @@
                        return [ null, null ];
                }
 
-               if ( !isset( $bits[1] ) ) { // bug 2087
+               if ( !isset( $bits[1] ) ) { // T4087
                        $par = null;
                } else {
                        $par = $bits[1];
@@ -512,7 +512,7 @@
                // @todo FIXME: Redirects broken due to this call
                $bits = explode( '/', $title->getDBkey(), 2 );
                $name = $bits[0];
-               if ( !isset( $bits[1] ) ) { // bug 2087
+               if ( !isset( $bits[1] ) ) { // T4087
                        $par = null;
                } else {
                        $par = $bits[1];
diff --git a/includes/upload/UploadBase.php b/includes/upload/UploadBase.php
index 79166ef..c99696d 100644
--- a/includes/upload/UploadBase.php
+++ b/includes/upload/UploadBase.php
@@ -895,7 +895,7 @@
                        return $this->mTitle;
                }
 
-               // Windows may be broken with special characters, see bug 1780
+               // Windows may be broken with special characters, see T3780
                if ( !preg_match( '/^[\x0-\x7f]*$/', $nt->getText() )
                        && 
!RepoGroup::singleton()->getLocalRepo()->backendSupportsUnicodePaths()
                ) {
@@ -1209,7 +1209,7 @@
                }
 
                // Some browsers will interpret obscure xml encodings as UTF-8, 
while
-               // PHP/expat will interpret the given encoding in the xml 
declaration (bug 47304)
+               // PHP/expat will interpret the given encoding in the xml 
declaration (T49304)
                if ( $extension == 'svg' || strpos( $mime, 'image/svg' ) === 0 
) {
                        if ( self::checkXMLEncodingMissmatch( $file ) ) {
                                return true;
@@ -1361,8 +1361,8 @@
                        [ 'processing_instruction_handler' => 
'UploadBase::checkSvgPICallback' ]
                );
                if ( $check->wellFormed !== true ) {
-                       // Invalid xml (bug 58553)
-                       // But only when non-partial (bug 65724)
+                       // Invalid xml (T60553)
+                       // But only when non-partial (T67724)
                        return $partial ? false : [ 'uploadinvalidxml' ];
                } elseif ( $check->filterMatch ) {
                        if ( $this->mSVGNSError ) {
@@ -1382,7 +1382,7 @@
         * @return bool (true if the filter identified something bad)
         */
        public static function checkSvgPICallback( $target, $data ) {
-               // Don't allow external stylesheets (bug 57550)
+               // Don't allow external stylesheets (T59550)
                if ( preg_match( '/xml-stylesheet/i', $target ) ) {
                        return [ 'upload-scripted-pi-callback' ];
                }
@@ -1401,7 +1401,7 @@
                list( $namespace, $strippedElement ) = 
$this->splitXmlNamespace( $element );
 
                // We specifically don't include:
-               // http://www.w3.org/1999/xhtml (bug 60771)
+               // http://www.w3.org/1999/xhtml (T62771)
                static $validNamespaces = [
                        '',
                        'adobe:ns:meta/',
diff --git a/includes/user/PasswordReset.php b/includes/user/PasswordReset.php
index c1aef22..4ee256c 100644
--- a/includes/user/PasswordReset.php
+++ b/includes/user/PasswordReset.php
@@ -176,7 +176,7 @@
                $firstUser = $users[0];
 
                if ( !$firstUser instanceof User || !$firstUser->getId() ) {
-                       // Don't parse username as wikitext (bug 65501)
+                       // Don't parse username as wikitext (T67501)
                        return StatusValue::newFatal( wfMessage( 'nosuchuser', 
wfEscapeWikiText( $username ) ) );
                }
 
@@ -192,7 +192,7 @@
                                wfEscapeWikiText( $firstUser->getName() ) ) );
                }
 
-               // We need to have a valid IP address for the hook, but per bug 
18347, we should
+               // We need to have a valid IP address for the hook, but per 
T20347, we should
                // send the user's name if they're logged in.
                $ip = $performingUser->getRequest()->getIP();
                if ( !$ip ) {
diff --git a/includes/user/User.php b/includes/user/User.php
index d0a2f92..2e3314e 100644
--- a/includes/user/User.php
+++ b/includes/user/User.php
@@ -949,7 +949,7 @@
 
                // Ensure that the username isn't longer than 235 bytes, so that
                // (at least for the builtin skins) user javascript and css 
files
-               // will work. (bug 23080)
+               // will work. (T25080)
                if ( strlen( $name ) > 235 ) {
                        wfDebugLog( 'username', __METHOD__ .
                                ": '$name' invalid due to length" );
@@ -1074,7 +1074,7 @@
                }
 
                // Clean up name according to title rules,
-               // but only when validation is requested (bug 12654)
+               // but only when validation is requested (T14654)
                $t = ( $validate !== false ) ?
                        Title::newFromText( $name, NS_USER ) : 
Title::makeTitle( NS_USER, $name );
                // Check for invalid titles
@@ -1664,7 +1664,7 @@
                        }
                }
 
-               // (bug 23343) Apply IP blocks to the contents of XFF headers, 
if enabled
+               // (T25343) Apply IP blocks to the contents of XFF headers, if 
enabled
                if ( !$block instanceof Block
                        && $wgApplyIpBlocksToXff
                        && $ip !== null
@@ -1787,7 +1787,7 @@
                $found = false;
                // @todo FIXME: IPv6 ???  
(https://bugs.php.net/bug.php?id=33170)
                if ( IP::isIPv4( $ip ) ) {
-                       // Reverse IP, bug 21255
+                       // Reverse IP, T23255
                        $ipReversed = implode( '.', array_reverse( explode( 
'.', $ip ) ) );
 
                        foreach ( (array)$bases as $base ) {
@@ -4089,7 +4089,7 @@
         *   }
         *   // do something with $user...
         *
-        * However, this was vulnerable to a race condition (bug 16020). By
+        * However, this was vulnerable to a race condition (T18020). By
         * initialising the user object if the user exists, we aim to support 
this
         * calling sequence as far as possible.
         *
@@ -4202,7 +4202,7 @@
                        return $this->mBlock;
                }
 
-               # bug 13611: if the IP address the user is trying to create an 
account from is
+               # T15611: if the IP address the user is trying to create an 
account from is
                # blocked with createaccount disabled, prevent new account 
creation there even
                # when the user is logged in
                if ( $this->mBlockedFromCreateAccount === false && 
!$this->isAllowed( 'ipblock-exempt' ) ) {
@@ -4495,7 +4495,7 @@
         * @note Since these URLs get dropped directly into emails, using the
         * short English names avoids insanely long URL-encoded links, which
         * also sometimes can get corrupted in some browsers/mailers
-        * (bug 6957 with Gmail and Internet Explorer).
+        * (T8957 with Gmail and Internet Explorer).
         *
         * @param string $page Special page
         * @param string $token Token
@@ -5355,7 +5355,7 @@
                # Note that the pattern requirement will always be satisfied if 
the
                # input is empty, so we need required in all cases.
 
-               # @todo FIXME: Bug 23769: This needs to not claim the password 
is required
+               # @todo FIXME: T25769: This needs to not claim the password is 
required
                # if e-mail confirmation is being used.  Since HTML5 input 
validation
                # is b0rked anyway in some browsers, just return nothing.  When 
it's
                # re-enabled, fix this code to not output required for e-mail

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I6f59febaf8fc96e80f8cfc11f4356283f461142a
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Jforrester <jforres...@wikimedia.org>
Gerrit-Reviewer: Catrope <r...@wikimedia.org>
Gerrit-Reviewer: GeoffreyT2000 <geoffreytr...@gmail.com>
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