Skip to content

Commit 8a1280e

Browse files
committed
Add configuration options to retain pruned package versions
1 parent 7a9096b commit 8a1280e

3 files changed

Lines changed: 48 additions & 1 deletion

File tree

docs/configuration-reference.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ dirigent:
3535
dev_packages: false
3636
metadata:
3737
mirror_vcs_repositories: false
38+
retain_pruned_versions:
39+
enabled: true
40+
tagged_versions: true
41+
dev_versions: false
3842
retain_stale_revisions:
3943
enabled: true
4044
tagged_versions: true
@@ -135,6 +139,26 @@ Fetch mirrored packages from their VCS repositories by default when possible.
135139

136140
Sets the fetch strategy of new mirrored packages to **Fetch from VCS**.
137141

142+
### retain_pruned_versions
143+
144+
#### enabled
145+
146+
Type: `boolean` | Default: `true`
147+
148+
Whether to enable or disable retaining pruned versions of packages.
149+
150+
#### tagged_versions
151+
152+
Type: `boolean` | Default: `true`
153+
154+
Retain pruned tagged package versions.
155+
156+
#### dev_versions
157+
158+
Type: `boolean` | Default: `false`
159+
160+
Retain pruned development package versions.
161+
138162
### retain_stale_revisions
139163

140164
#### enabled

src/DependencyInjection/DirigentConfiguration.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,19 @@ private function addMetadataSection(ArrayNodeDefinition|NodeDefinition $rootNode
9393
->defaultFalse()
9494
->info('Fetch mirrored packages from their VCS repositories by default when possible.')
9595
->end()
96+
->arrayNode('retain_pruned_versions')
97+
->canBeDisabled('Retain pruned package versions.')
98+
->children()
99+
->booleanNode('tagged_versions')
100+
->defaultTrue()
101+
->info('Retain pruned tagged package versions.')
102+
->end()
103+
->booleanNode('dev_versions')
104+
->defaultFalse()
105+
->info('Retain pruned development package versions.')
106+
->end()
107+
->end()
108+
->end()
96109
->arrayNode('retain_stale_revisions')
97110
->canBeDisabled('Retain stale revisions of package versions.')
98111
->children()

src/DependencyInjection/DirigentExtension.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,22 @@ private function registerEncryptionConfiguration(array $config, ContainerBuilder
5656
}
5757

5858
/**
59-
* @param array{mirror_vcs_repositories: bool, retain_stale_revisions: array{enabled: bool, tagged_versions: bool, dev_versions: bool}} $config
59+
* @param array{mirror_vcs_repositories: bool, retain_stale_revisions: array{enabled: bool, tagged_versions: bool, dev_versions: bool}, retain_pruned_versions: array{enabled: bool, tagged_versions: bool, dev_versions: bool}} $config
6060
*/
6161
private function registerMetadataConfiguration(array $config, ContainerBuilder $container): void
6262
{
6363
$container->setParameter('dirigent.metadata.mirror_vcs_repositories', $config['mirror_vcs_repositories']);
6464

65+
$retainPrunedVersions = $config['retain_pruned_versions']['enabled'];
66+
$container->setParameter(
67+
name: 'dirigent.metadata.retain_pruned_versions.tagged_versions',
68+
value: $retainPrunedVersions && $config['retain_pruned_versions']['tagged_versions'],
69+
);
70+
$container->setParameter(
71+
name: 'dirigent.metadata.retain_pruned_versions.dev_versions',
72+
value: $retainPrunedVersions && $config['retain_pruned_versions']['dev_versions'],
73+
);
74+
6575
$retainStaleRevisions = $config['retain_stale_revisions']['enabled'];
6676
$container->setParameter(
6777
name: 'dirigent.metadata.retain_stale_revisions.tagged_versions',

0 commit comments

Comments
 (0)