Signed-off-by: Joas Schilling <coding@schilljs.com>tags/v13.0.0beta1
@@ -146,11 +146,7 @@ class CheckCode extends Command implements CompletionAwareInterface { | |||
}); | |||
$infoChecker->listen('InfoChecker', 'missingRequirement', function($minMax) use ($output) { | |||
$output->writeln("<comment>Nextcloud $minMax version requirement missing (will be an error in Nextcloud 12 and later)</comment>"); | |||
}); | |||
$infoChecker->listen('InfoChecker', 'duplicateRequirement', function($minMax) use ($output) { | |||
$output->writeln("<error>Duplicate $minMax ownCloud version requirement found</error>"); | |||
$output->writeln("<error>Nextcloud $minMax version requirement missing</error>"); | |||
}); | |||
$infoChecker->listen('InfoChecker', 'differentVersions', function($versionFile, $infoXML) use ($output) { | |||
@@ -162,7 +158,7 @@ class CheckCode extends Command implements CompletionAwareInterface { | |||
}); | |||
$infoChecker->listen('InfoChecker', 'migrateVersion', function($version) use ($output) { | |||
$output->writeln("<info>Migrate the app version to appinfo/info.xml (add <version>$version</version> to appinfo/info.xml and remove appinfo/version)</info>"); | |||
$output->writeln("<error>Migrate the app version to appinfo/info.xml (add <version>$version</version> to appinfo/info.xml and remove appinfo/version)</error>"); | |||
}); | |||
if(OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) { |
@@ -34,15 +34,16 @@ class InfoChecker extends BasicEmitter { | |||
private $mandatoryFields = [ | |||
'author', | |||
'description', | |||
'dependencies', | |||
'id', | |||
'licence', | |||
'name', | |||
'version', | |||
]; | |||
private $optionalFields = [ | |||
'bugs', | |||
'category', | |||
'default_enable', | |||
'dependencies', // TODO: Mandatory as of ownCloud 11 | |||
'documentation', | |||
'namespace', | |||
'ocsid', | |||
@@ -50,7 +51,6 @@ class InfoChecker extends BasicEmitter { | |||
'remote', | |||
'repository', | |||
'types', | |||
'version', | |||
'website', | |||
]; | |||
private $deprecatedFields = [ | |||
@@ -80,29 +80,19 @@ class InfoChecker extends BasicEmitter { | |||
$info = $this->infoParser->parse($appPath . '/appinfo/info.xml'); | |||
if (isset($info['dependencies']['owncloud']['@attributes']['min-version']) && (isset($info['requiremin']) || isset($info['require']))) { | |||
$this->emit('InfoChecker', 'duplicateRequirement', ['min']); | |||
if (!isset($info['dependencies']['nextcloud']['@attributes']['min-version'])) { | |||
$errors[] = [ | |||
'type' => 'duplicateRequirement', | |||
'type' => 'missingRequirement', | |||
'field' => 'min', | |||
]; | |||
} else if ( | |||
!isset($info['dependencies']['owncloud']['@attributes']['min-version']) && | |||
!isset($info['dependencies']['nextcloud']['@attributes']['min-version']) | |||
) { | |||
$this->emit('InfoChecker', 'missingRequirement', ['min']); | |||
} | |||
if (isset($info['dependencies']['owncloud']['@attributes']['max-version']) && isset($info['requiremax'])) { | |||
$this->emit('InfoChecker', 'duplicateRequirement', ['max']); | |||
if (!isset($info['dependencies']['nextcloud']['@attributes']['max-version'])) { | |||
$errors[] = [ | |||
'type' => 'duplicateRequirement', | |||
'type' => 'missingRequirement', | |||
'field' => 'max', | |||
]; | |||
} else if ( | |||
!isset($info['dependencies']['owncloud']['@attributes']['max-version']) && | |||
!isset($info['dependencies']['nextcloud']['@attributes']['max-version']) | |||
) { | |||
$this->emit('InfoChecker', 'missingRequirement', ['max']); | |||
} | |||
@@ -145,21 +135,7 @@ class InfoChecker extends BasicEmitter { | |||
$versionFile = $appPath . '/appinfo/version'; | |||
if (is_file($versionFile)) { | |||
$version = trim(file_get_contents($versionFile)); | |||
if (isset($info['version'])) { | |||
if($info['version'] !== $version) { | |||
$this->emit('InfoChecker', 'differentVersions', | |||
[$version, $info['version']]); | |||
$errors[] = [ | |||
'type' => 'differentVersions', | |||
'message' => 'appinfo/version: ' . $version . | |||
' - appinfo/info.xml: ' . $info['version'], | |||
]; | |||
} else { | |||
$this->emit('InfoChecker', 'sameVersions', [$versionFile]); | |||
} | |||
} else { | |||
$this->emit('InfoChecker', 'migrateVersion', [$version]); | |||
} | |||
$this->emit('InfoChecker', 'migrateVersion', [$version]); | |||
} | |||
return $errors; |
@@ -1 +0,0 @@ | |||
1.2.4 |
@@ -1,9 +0,0 @@ | |||
<?xml version="1.0"?> | |||
<info> | |||
<id>testapp-infoxml-version</id> | |||
<version>1.2.3</version> | |||
<author>Jane</author> | |||
<description>A b c</description> | |||
<licence>Abc</licence> | |||
<name>Test app</name> | |||
</info> |
@@ -1 +0,0 @@ | |||
1.2.3 |
@@ -6,4 +6,7 @@ | |||
<description>A b c</description> | |||
<licence>Abc</licence> | |||
<name>Test app</name> | |||
<dependencies> | |||
<nextcloud min-version="12.0" max-version="12.0"/> | |||
</dependencies> | |||
</info> |
@@ -5,4 +5,7 @@ | |||
<author>Jane</author> | |||
<description>A b c</description> | |||
<licence>Abc</licence> | |||
<dependencies> | |||
<nextcloud min-version="12.0" max-version="12.0"/> | |||
</dependencies> | |||
</info> |
@@ -1,8 +0,0 @@ | |||
<?xml version="1.0"?> | |||
<info> | |||
<id>testapp-version</id> | |||
<author>Jane</author> | |||
<description>A b c</description> | |||
<licence>Abc</licence> | |||
<name>Test app</name> | |||
</info> |
@@ -5,4 +5,7 @@ | |||
<description>A b c</description> | |||
<licence>Abc</licence> | |||
<name>Test app</name> | |||
<dependencies> | |||
<nextcloud min-version="12.0" max-version="12.0"/> | |||
</dependencies> | |||
</info> |
@@ -50,10 +50,12 @@ class InfoCheckerTest extends TestCase { | |||
public function appInfoData() { | |||
return [ | |||
['testapp-infoxml', []], | |||
['testapp-version', []], | |||
['testapp-infoxml-version', []], | |||
['testapp-infoxml-version-different', [['type' => 'differentVersions', 'message' => 'appinfo/version: 1.2.4 - appinfo/info.xml: 1.2.3']]], | |||
['testapp-version-missing', []], | |||
['testapp-version', [['type' => 'mandatoryFieldMissing', 'field' => 'version']]], | |||
['testapp-dependency-missing', [ | |||
['type' => 'missingRequirement', 'field' => 'min'], | |||
['type' => 'missingRequirement', 'field' => 'max'], | |||
['type' => 'mandatoryFieldMissing', 'field' => 'dependencies'], | |||
]], | |||
['testapp-name-missing', [['type' => 'mandatoryFieldMissing', 'field' => 'name']]], | |||
]; | |||
} |