Skip to content

Commit c200066

Browse files
committed
Add configuration options to retain deleted package versions
1 parent 125ff38 commit c200066

3 files changed

Lines changed: 42 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_versions:
39+
enabled: true
40+
tagged_versions: true
41+
dev_versions: false
3842
retain_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_versions
143+
144+
#### enabled
145+
146+
Type: `boolean` | Default: `true`
147+
148+
Whether to enable or disable retaining deleted versions of packages.
149+
150+
#### tagged_versions
151+
152+
Type: `boolean` | Default: `true`
153+
154+
Retain deleted tagged package versions.
155+
156+
#### dev_versions
157+
158+
Type: `boolean` | Default: `false`
159+
160+
Retain deleted development package versions.
161+
138162
### retain_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_versions')
97+
->canBeDisabled('Retain deleted package versions.')
98+
->children()
99+
->booleanNode('tagged_versions')
100+
->defaultTrue()
101+
->info('Retain deleted tagged package versions.')
102+
->end()
103+
->booleanNode('dev_versions')
104+
->defaultFalse()
105+
->info('Retain deleted development package versions.')
106+
->end()
107+
->end()
108+
->end()
96109
->arrayNode('retain_revisions')
97110
->canBeDisabled('Retain old revisions of package versions.')
98111
->children()

src/DependencyInjection/DirigentExtension.php

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

5858
/**
59-
* @param array{mirror_vcs_repositories: bool, retain_revisions: array{enabled: bool, tagged_versions: bool, dev_versions: bool}} $config
59+
* @param array{mirror_vcs_repositories: bool, retain_revisions: array{enabled: bool, tagged_versions: bool, dev_versions: bool}, retain_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+
$retainVersions = $config['retain_versions']['enabled'];
66+
$container->setParameter('dirigent.metadata.retain_versions.tagged_versions', $retainVersions && $config['retain_versions']['tagged_versions']);
67+
$container->setParameter('dirigent.metadata.retain_versions.dev_versions', $retainVersions && $config['retain_versions']['dev_versions']);
68+
6569
$retainRevisions = $config['retain_revisions']['enabled'];
6670
$container->setParameter('dirigent.metadata.retain_revisions.tagged_versions', $retainRevisions && $config['retain_revisions']['tagged_versions']);
6771
$container->setParameter('dirigent.metadata.retain_revisions.dev_versions', $retainRevisions && $config['retain_revisions']['dev_versions']);

0 commit comments

Comments
 (0)