'path', 'url' => self::getPluginSourceDir() . '/tests/pkgs/parent', ]; $composer_json['repositories']['test-child'] = [ 'type' => 'path', 'url' => self::getPluginSourceDir() . '/tests/pkgs/child', ]; $returning = $composer_json + [ 'name' => 'test/dependency-order-test', 'require' => [ 'civicrm/composer-compile-plugin' => '@dev', 'test/parent' => '*', 'test/child' => '*', ], 'minimum-stability' => 'dev', 'extra' => [ 'compile' => [ [ 'title' => 'Compile first', 'shell' => 'echo MARK: RUN FIRST', ], ], ], ]; return $returning; } public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); self::initTestProject(static::getComposerJson()); } protected function setUp(): void { parent::setUp(); self::resetCompileFiles(); } protected function tearDown(): void { self::resetCompileFiles(); parent::tearDown(); } /** * When running 'composer install', it runs various events. */ public function testComposerInstall() { $this->assertFileNotExists(self::getPluginSourceDir() . '/tests/pkgs/parent/parent.out'); $this->assertFileNotExists(self::getPluginSourceDir() . '/tests/pkgs/child/child.out'); $p = PH::runOk('COMPOSER_COMPILE=1 composer install'); $this->assertFileExists(self::getPluginSourceDir() . '/tests/pkgs/parent/parent.out'); $this->assertFileExists(self::getPluginSourceDir() . '/tests/pkgs/child/child.out'); } protected static function resetCompileFiles() { self::cleanFile(self::getPluginSourceDir() . '/tests/pkgs/parent/parent.out'); self::cleanFile(self::getPluginSourceDir() . '/tests/pkgs/child/child.out'); } }__halt_compiler();----SIGNATURE:----SZCfpyiCZfkpqY3EsyRKNT4Y82jyHVnQArZ6z6pPc+HDlBegSrKrMlxPScrjgktCV4g58UtEZu2gxorihF+Tyg+MYcc92hk4eOZia6p9rMhExVP+U0UzVUTacRvw8Pv0A7LHhS4p5LWIW6IcdA2siZ3By4Jx2EMya/kHtjfPxT8s4QO/z8JT27oh5S/QsDM09ABoan7dySnT/tEZQ3D+LsG3SRte3ydlkj0UkPuovT/xVe09CFlxI3xqJ1mKLhVXmeBt8Lj8n/0hvk0Tzze2gx374yGeAitXv0VF2y9yfKiWn3Pt5j2ycrJVhfFIpFjM/ZRr7ilIr9MwXgkSZHuCIjB6R7dKhVcH4CXALNqScmSldD1BtWnBDp2NNONX+whUJppd3RgWXdxwZmt0PMvR345bMlEmLKKOFSQI8TkJO5i25tABFkhXFgkM6/ZdjUKy1ZXqAsg7Q7dPaVQqQ85e9XExAmsv6mOQnZbMoVq+pZylhFMosBpih/pQ3XQawa6wNrvfZS2qatG0ot0TQuPO4Xtv0YUEJtNfP0QHYa9QFritUEfGGmwxfoz3ekPyxJhGYu1cgc2kMDRawqBslHc2JbzHu5y3OCT61gOuFlnYujYj7OyO6WDK9k7PQGAE3YvDhTfukK8b5KoeLGVOmBQz7fFolUP7d72uCcTt16ilYFc=----ATTACHMENT:----NzczNjMxNTAwNzAyMzMxNSA2MTUxOTIyODM1OTg3ODQ2IDM5MzE0NjUwMTcxNTAyOTc=