'/^v2\.8\./', 'symfony/dependency-injection' => '/^v2\.8\./', 'symfony/event-dispatcher' => '/^v2\.8\./', 'symfony/filesystem' => '/^v2\.8\./', 'symfony/finder' => '/^v2\.8\./', 'symfony/process' => '/^v2\.8\./', ]; $lockFile = Civi::paths()->getPath('[civicrm.root]/composer.lock'); $lock = json_decode(file_get_contents($lockFile), 1); foreach ($lock['packages'] as $package) { if (isset($hardLocks[$package['name']])) { $this->assertRegExp($hardLocks[$package['name']], $package['version'], "Check hardlock for " . $package['name']); unset($hardLocks[$package['name']]); } } $this->assertEquals([], $hardLocks, 'composer.lock should have references to all hardlocks'); } }