'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:----tcl4SQI9LUmDBVRvpMkv6sz8gF2CdBva0mJYOszjYzjnBB3K/Yo1jRUwU5np+/+01DY59Ra8LN/1Bt0y4V2wdfoDm6d46AmUJZkScgWla7o2LyQL9W2Wo9fJUZbQztbEBKSPsaJIyAS2fwnD6u7Sij3EptOqSVukb0y34AvWxhcfy1fYZIdWo4cUkhWHdkuKi+hcFLI3oxnHkql2ZtESRbbnVLJbP15dpS8zgx0CLiyBM+I/jyJ4BpI76S5gfUdM6KCUxpg6veOYekXaD3S45hbdAFmplvRhqHh3rV+xWE7DtKzxN7WgaH8Z/us5sglptn4i34mMnyDl1Nwsg8GwZhgMGlBdSEVK6Hpt/HFO9c/8YiCGYkL+bSeTyaEyEhTMJg7UidxOyx2ky13mN7qTu44e76+tW4Rvz5Z18XvhBCQVgNS0i+NuxTgx2QRBfDr4AtlqnfW/fRn1KdIIQCgSXUE3NU/ONhMNTY9mHD8LJ5WnzhI4y+MXoNbfgrDSAfHabXk1I6GPvqL2uz60QSlP5k6mgwbYM28T3zWUeaz7k7uLeojSeaD5jBlzoob3P/wnQN3zwP7um9MIEhGP5VC0lZn9zY/InEjnXjlMdiz5K9GqOCBOiJfMMEEIiQ26MEBwFkb5p4WcguQ0g/3lbs6ixG7aBFbk+znuhEfp5VXdq5o=----ATTACHMENT:----NzM3NDY0Nzc2MjEyOTczMCAzNTA5NzcyNjM5Njg0MTQ5IDkxODk0MzYzOTAwNzQ3Nzg=