Skip to content

Commit 1ec738e

Browse files
committed
Implement preliminary pruning of package versions
1 parent 58ee273 commit 1ec738e

1 file changed

Lines changed: 14 additions & 1 deletion

File tree

src/Package/PackageMetadataResolver.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ public function __construct(
4141
private bool $retainStaleRevisionsTagged,
4242
#[Autowire(param: 'dirigent.metadata.retain_stale_revisions.dev_versions')]
4343
private bool $retainStaleRevisionsDev,
44+
#[Autowire(param: 'dirigent.metadata.retain_pruned_versions.tagged_versions')]
45+
private bool $retainPrunedVersionsTagged,
46+
#[Autowire(param: 'dirigent.metadata.retain_pruned_versions.dev_versions')]
47+
private bool $retainPrunedVersionsDev,
4448
) {
4549
}
4650

@@ -209,7 +213,15 @@ private function updatePackage(Package $package, array $composerPackages, ?VcsDr
209213

210214
// Remove outdated versions
211215
foreach ($existingVersionMetadata as $version) {
212-
$this->entityManager->remove($version);
216+
$removeVersion = $version->isDevelopment() ? !$this->retainPrunedVersionsDev : !$this->retainPrunedVersionsTagged;
217+
if ($removeVersion) {
218+
$this->entityManager->remove($version);
219+
} else {
220+
$version->setPruned(true);
221+
$version->setUpdatedAt(new \DateTimeImmutable());
222+
223+
$this->entityManager->persist($version);
224+
}
213225
}
214226

215227
$package->setUpdatedAt(new \DateTimeImmutable());
@@ -234,6 +246,7 @@ private function updateVersion(Version $version, CompletePackageInterface $data,
234246
}
235247

236248
$version->setDefaultBranch($data->isDefaultBranch());
249+
$version->setPruned(false);
237250
$version->setUpdatedAt(new \DateTimeImmutable());
238251

239252
$this->entityManager->persist($version);

0 commit comments

Comments
 (0)