From: Kunal Mehta Date: Mon, 15 May 2017 23:33:22 +0000 (-0700) Subject: registration: Deprecate not having manifest_version set X-Git-Tag: 1.31.0-rc.0~3245^2 X-Git-Url: http://git.cyclocoop.org/data/%24self?a=commitdiff_plain;h=a1c9182c58391f24e7d9b085fda9e9b733470216;p=lhc%2Fweb%2Fwiklou.git registration: Deprecate not having manifest_version set Emit a wfDeprecated() warning for each extension that does not have manifest_version set. Because we don't have any mechanism to cache warnings, just disable the cache if any deprecation warnings are emitted. This ensures that the warnings are shown on every page load instead of probably once a day. Bug: T155610 Change-Id: I163a84ae1d381ca5bd67b4b317c04f9f51c066ea --- diff --git a/includes/registration/ExtensionRegistry.php b/includes/registration/ExtensionRegistry.php index 344dd8f5c0..54e394a09f 100644 --- a/includes/registration/ExtensionRegistry.php +++ b/includes/registration/ExtensionRegistry.php @@ -111,7 +111,7 @@ class ExtensionRegistry { * be loaded then). */ public function loadFromQueue() { - global $wgVersion; + global $wgVersion, $wgDevelopmentWarnings; if ( !$this->queued ) { return; } @@ -151,7 +151,10 @@ class ExtensionRegistry { // did that, but it should be cached $data['globals']['wgAutoloadClasses'] += $data['autoload']; unset( $data['autoload'] ); - $cache->set( $key, $data, 60 * 60 * 24 ); + if ( !( $data['warnings'] && $wgDevelopmentWarnings ) ) { + // If there were no warnings that were shown, cache it + $cache->set( $key, $data, 60 * 60 * 24 ); + } } $this->queued = []; } @@ -198,6 +201,7 @@ class ExtensionRegistry { $versionChecker = new VersionChecker( $wgVersion ); $extDependencies = []; $incompatible = []; + $warnings = false; foreach ( $queue as $path => $mtime ) { $json = file_get_contents( $path ); if ( $json === false ) { @@ -209,6 +213,11 @@ class ExtensionRegistry { } if ( !isset( $info['manifest_version'] ) ) { + wfDeprecated( + "{$info['name']}'s extension.json or skin.json does not have manifest_version", + '1.29' + ); + $warnings = true; // For backwards-compatability, assume a version of 1 $info['manifest_version'] = 1; } @@ -237,6 +246,7 @@ class ExtensionRegistry { $processor->extractInfo( $path, $info, $version ); } $data = $processor->getExtractedInfo(); + $data['warnings'] = $warnings; // check for incompatible extensions $incompatible = array_merge(