Use proper SemVer comparison in CheckComposerLockUpToDate
authorC. Scott Ananian <cscott@cscott.net>
Thu, 13 Feb 2020 21:48:59 +0000 (16:48 -0500)
committerJforrester <jforrester@wikimedia.org>
Thu, 13 Feb 2020 22:17:37 +0000 (22:17 +0000)
We were using exact string matching previously.  We already have
a SemVer dependency in ExtensionRegistry.php, so we might as well
do things right.

Change-Id: I8895843a5b1116fca42e0c7179a2907fe84a74d1
(cherry picked from commit 3b0b9aa8ad35b9a567619186ac2174240db58726)

maintenance/checkComposerLockUpToDate.php

index 69f16f5..96c7fb3 100644 (file)
@@ -2,6 +2,8 @@
 
 require_once __DIR__ . '/Maintenance.php';
 
+use Composer\Semver\Semver;
+
 /**
  * Checks whether your composer-installed dependencies are up to date
  *
@@ -38,7 +40,7 @@ class CheckComposerLockUpToDate extends Maintenance {
                $installed = $lock->getInstalledDependencies();
                foreach ( $json->getRequiredDependencies() as $name => $version ) {
                        if ( isset( $installed[$name] ) ) {
-                               if ( $installed[$name]['version'] !== $version ) {
+                               if ( !SemVer::satisfies( $installed[$name]['version'], $version ) ) {
                                        $this->output(
                                                "$name: {$installed[$name]['version']} installed, $version required.\n"
                                        );