From 3256db0f395efa34df1166762bc0ab9f2b2acdec Mon Sep 17 00:00:00 2001 From: Karsten Dambekalns Date: Fri, 3 Nov 2023 17:17:56 +0100 Subject: [PATCH] TASK: Collect `provide` declarations for merged manifest --- ComposerManifestMerger.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ComposerManifestMerger.php b/ComposerManifestMerger.php index 8ba8a86..30fea53 100755 --- a/ComposerManifestMerger.php +++ b/ComposerManifestMerger.php @@ -65,7 +65,7 @@ function mergeAutoloadSection(array $joinedManifest, array $manifestData, string $joinedRepositoryPackages[] = $manifestData['name']; - foreach (['require', 'require-dev', 'suggest'] as $arraySectionKey) { + foreach (['require', 'require-dev', 'suggest', 'provide'] as $arraySectionKey) { $joinedManifest = mergeArraySection($joinedManifest, $manifestData, $arraySectionKey); } @@ -97,6 +97,11 @@ function mergeAutoloadSection(array $joinedManifest, array $manifestData, string $replace = $manifestData['replace']; $joinedManifest['replace'] = array_merge_recursive($joinedManifest['replace'], $replace); } + + if (isset($manifestData['provide'])) { + $provide = $manifestData['provide']; + $joinedManifest['provide'] = array_merge_recursive($joinedManifest['provide'], $provide); + } } foreach ($joinedRepositoryPackages as $containedPackageName) { @@ -104,6 +109,10 @@ function mergeAutoloadSection(array $joinedManifest, array $manifestData, string $joinedManifest['replace'][$containedPackageName] = 'self.version'; } +foreach ($joinedManifest['provide'] as $packageName => $versions) { + $joinedManifest['provide'][$packageName] = current($versions); +} + $joinedComposerJson = json_encode($joinedManifest, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . PHP_EOL; file_put_contents('composer.json', $joinedComposerJson);