'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:----O9zLoWs99DdF2z7Z6kW22MI4zQ6rMSOX5seod7XI6zwhi2fujsxkVRKUHgGmiG6JWu+3uqTjGFGqF47j43yOC1i9pEmF/axMU6979wd2/aVvkDgi892IHdOr0EpsjUx7ziqVpNSBwIZRIWgN1HBs4IAQZJ2UzfegYDjO2UhF4I9G1fPnSnQxKSoTlLNg6XNf8jElNTLRzEUMrvIwfKHCeHF5DrHqcoeDuJvYy4xr0f7LVyGh8uYBLYzxro+PeaKxz1Gkh3xYWx4rXVYhue2/LzpNLW2B8N+mddBTa8fq1kTn2v0nKyOlXPHv0OBDe3gEfL7gPoM4O+yBnLJ7113RpKuU/9QadF2fgmNkXIo7EB5TbZCBUauM0DftnhQ4yrXGoqLzfjCS4Y2Bi+19K327KgLD3+oU0wuPhI3wPGA+O0R5+aNjcXoUJ41WLKtIINlXZ+1TeiaI7AChkuFsQgSlxXkwCeIkzQxwkyFpLCv14eobrOFNwkr/QH0hARxejC0U2awVBJ1+vRj8hGlTdMV7RwmsYg+d5sCyGe2m+PtJdLg6BIHxnU1Pm0/w3iv98QBKq+gS6AxJPWpozRG9KDHV3VkVMR9QBhga17IRsZruLQu+V8zuG01m8HHiLlzhfQxgubh+1S8xjTfLu1hocihj3Kjk9KZ32xR6rXel7ikbW7M=----ATTACHMENT:----NjAyNTIxNjEzMDg5MjYxMyA2NDI2NDEyMTgxNDA1MTQ5IDY4Mjk4MTczMTg5ODU0MA==