'test/patch-test', 'require' => [ 'civicrm/composer-compile-plugin' => '@dev', 'test/cherry-jam' => '@dev', 'cweagans/composer-patches' => '*', ], 'minimum-stability' => 'dev', 'extra' => [ 'patches' => [ 'test/cherry-jam' => [ 'Some hackery' => 'cherry-jam-hackery.diff' ], ], ], ]; // For this test, we'll need to patch. We want a copy (not symlink) so we can hack at it. if (!is_array($r['repositories']['test-cherry-jam'])) { throw new \RuntimeException("Inconsistency in composer.json"); } $r['repositories']['test-cherry-jam']['options'] = [ 'symlink' => false, ]; $r['config']['allow-plugins']['cweagans/composer-patches'] = true; return $r; } public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); self::initTestProject(static::getComposerJson()); file_put_contents( self::getTestDir() . '/cherry-jam-hackery.diff', file_get_contents(self::getPluginSourceDir() . '/tests/pkgs/cherry-jam-hackery.diff') ); } /** * When running 'composer install', it should generate 'jam.out' with suitable patches in place. */ public function testComposerInstall() { $this->assertFileNotExists('vendor/test/cherry-jam/jam.out'); PH::runOk('COMPOSER_COMPILE=1 composer install -v'); $this->assertFileContent('vendor/test/cherry-jam/jam.out', "patches in the house\n"); } }__halt_compiler();----SIGNATURE:----IxDSm/OHyu7D2kOpzyjMtlw3pdnQzCCKDXzVOWTOJEx0JmACGWb8iitA3Pq8tgoVK6aIL+JzaY1W7/6uL3Ur1apZTb0/g+bQaSY4sovzNTh3h/T2tbhdrAWMSf0isahwKXukdGn1NXPaftnJKNmiBIWv/EBlS3G3ynNVBh+fAzD2BUwgQq+BTXLRy+7lJ21c7GsZgxguGjTo3HIesbyw+TqocvMaJ+f0KUinPZK33HueL2WOxBaDHP9GljehPJoj7fkBhYmH4FRKPcGbVzzPF+wnoc1rOac0lfhJ83UOt2KSHtMDotASZpmQ+oKA2EqM818sUSDW5JraBf0wMSrwYPsj0A0VupyGI8ywgHTZyE2Y7sSyUJ38knZR8xAAQCYMlUcEF2cQDQnK/zEDmx4B5s6e5hyNuVui1AAwNl885hXui5cnmR0ELU+ikt8LutwgnD1ZumbVmLwi9vAydllWBXT0L7JEEfwEMHeBEF+Q3BusemYFaB3PBy3F53Rk3pzRBVXngOQcLyJ8F8wg2MvRR1n45TqrqW4twB7calwX+JSz/XF/9UIR7m23zZIBLUVEgtcFzewh9YpNkiJnN2u69od+FaNMTEyHHUJa+ZZrxqR/WqnIOC6feHRqHo5ASHK8z+toV0XO99eMtpLI12yX1u7h2PhUSfi4Bj6JV8OQ3e8=----ATTACHMENT:----NTAxMjg5MzkxMDE0NTY2MyAxNDkyMjQ2NTIyNzAyNDQgNzI4MjgzMjExODE0NjA3NA==