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
* be loaded then).
*/
public function loadFromQueue() {
* be loaded then).
*/
public function loadFromQueue() {
+ global $wgVersion, $wgDevelopmentWarnings;
if ( !$this->queued ) {
return;
}
if ( !$this->queued ) {
return;
}
// did that, but it should be cached
$data['globals']['wgAutoloadClasses'] += $data['autoload'];
unset( $data['autoload'] );
// 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 );
+ }
$versionChecker = new VersionChecker( $wgVersion );
$extDependencies = [];
$incompatible = [];
$versionChecker = new VersionChecker( $wgVersion );
$extDependencies = [];
$incompatible = [];
foreach ( $queue as $path => $mtime ) {
$json = file_get_contents( $path );
if ( $json === false ) {
foreach ( $queue as $path => $mtime ) {
$json = file_get_contents( $path );
if ( $json === false ) {
}
if ( !isset( $info['manifest_version'] ) ) {
}
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;
}
// For backwards-compatability, assume a version of 1
$info['manifest_version'] = 1;
}
$processor->extractInfo( $path, $info, $version );
}
$data = $processor->getExtractedInfo();
$processor->extractInfo( $path, $info, $version );
}
$data = $processor->getExtractedInfo();
+ $data['warnings'] = $warnings;
// check for incompatible extensions
$incompatible = array_merge(
// check for incompatible extensions
$incompatible = array_merge(