diff options
author | Thomas Steur <thomas.steur@gmail.com> | 2016-08-31 16:13:54 +0300 |
---|---|---|
committer | Thomas Steur <thomas.steur@gmail.com> | 2016-08-31 16:13:54 +0300 |
commit | 4617d4205cdf646a52ef1886d9240e9c2bad0609 (patch) | |
tree | 849ee39219166830170513e6b00161d3e5864514 /plugins/CoreConsole | |
parent | 903b870466b62e8a655a0f6564d052583c0fb7ec (diff) | |
parent | 5d52b777100f5acb82d16e947e0e9ab2c0804215 (diff) |
Merge branch '3.x-dev' into 3.0-m06
Conflicts:
js/piwik.min.js
piwik.js
Diffstat (limited to 'plugins/CoreConsole')
-rw-r--r-- | plugins/CoreConsole/Commands/GeneratePluginBase.php | 41 | ||||
-rw-r--r-- | plugins/CoreConsole/Commands/GenerateUpdate.php | 4 |
2 files changed, 39 insertions, 6 deletions
diff --git a/plugins/CoreConsole/Commands/GeneratePluginBase.php b/plugins/CoreConsole/Commands/GeneratePluginBase.php index 9012839943..f5ca71a405 100644 --- a/plugins/CoreConsole/Commands/GeneratePluginBase.php +++ b/plugins/CoreConsole/Commands/GeneratePluginBase.php @@ -9,6 +9,7 @@ namespace Piwik\Plugins\CoreConsole\Commands; +use Piwik\Common; use Piwik\Development; use Piwik\Filesystem; use Piwik\Plugin\ConsoleCommand; @@ -123,15 +124,51 @@ abstract class GeneratePluginBase extends ConsoleCommand } $piwikVersion = Version::VERSION; - $newRequiredVersion = '>=' . $piwikVersion; + $nextMajorVersion = (int) $piwikVersion + 1; + $secondPartPiwikVersionRequire = ',<' . $nextMajorVersion . '.0.0-b1'; + $newRequiredVersion = '>=' . $piwikVersion . $secondPartPiwikVersionRequire; if (!empty($pluginJson['require']['piwik'])) { - $requiredVersion = $pluginJson['require']['piwik']; + $requiredVersion = trim($pluginJson['require']['piwik']); if ($requiredVersion === $newRequiredVersion) { + // there is nothing to updated return; } + // our generated versions look like ">=2.25.4,<3.0.0-b1". + // We only updated the Piwik version in the first part if the piwik version looks like that or if it has only + // one piwik version defined. In all other cases, eg user uses || etc we do not update it as user has customized + // the piwik version. + + foreach (['<>','!=', '<=','==', '^'] as $comparison) { + if (strpos($requiredVersion, $comparison) === 0) { + // user is using custom piwik version require, we do not overwrite anything. + return; + } + } + + if (strpos($requiredVersion, '||') !== false || strpos($requiredVersion, ' ') !== false) { + // user is using custom piwik version require, we do not overwrite anything. + return; + } + + $requiredPiwikVersions = explode(',', (string) $requiredVersion); + $numRequiredPiwikVersions = count($requiredPiwikVersions); + + if ($numRequiredPiwikVersions > 2) { + // user is using custom piwik version require, we do not overwrite anything. + return; + } + + if ($numRequiredPiwikVersions === 2 && + !Common::stringEndsWith($requiredVersion, $secondPartPiwikVersionRequire)) { + // user is using custom piwik version require, we do not overwrite anything + return; + } + + // if only one piwik version is defined we update it to make sure it does now specify an upper version limit + $dependency = new Dependency(); $missingVersion = $dependency->getMissingVersions($piwikVersion, $requiredVersion); diff --git a/plugins/CoreConsole/Commands/GenerateUpdate.php b/plugins/CoreConsole/Commands/GenerateUpdate.php index 8fc91fd50c..826448de38 100644 --- a/plugins/CoreConsole/Commands/GenerateUpdate.php +++ b/plugins/CoreConsole/Commands/GenerateUpdate.php @@ -82,10 +82,6 @@ class GenerateUpdate extends GeneratePluginBase $className = str_replace('Updates_xx', '', $className); $className = trim($className, '\\'); - if ($component !== 'core') { - $className .= '\Updates'; - } - return $className; } |