From 88ac3d82a07195e8deeb3cfad74bb78c9ee2f71e Mon Sep 17 00:00:00 2001 From: Evgenii Alekseev Date: Fri, 6 Mar 2026 12:57:24 +0200 Subject: [PATCH] feat: explicitly disable archive rotation if option is set to 0 --- src/ahriman/core/housekeeping/archive_rotation_trigger.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ahriman/core/housekeeping/archive_rotation_trigger.py b/src/ahriman/core/housekeeping/archive_rotation_trigger.py index 11b477df..bc1ca230 100644 --- a/src/ahriman/core/housekeeping/archive_rotation_trigger.py +++ b/src/ahriman/core/housekeeping/archive_rotation_trigger.py @@ -86,6 +86,11 @@ class ArchiveRotationTrigger(Trigger): package(Package): package which has been updated to check for older versions pacman(Pacman): alpm wrapper instance """ + # explicit guard to skip process in case if rotation is disabled + # this guard is supposed to speedup process + if self.keep_built_packages == 0: + return + packages: dict[tuple[str, str], Package] = {} # we can't use here load_archives, because it ignores versions for full_path in filter(package_like, self.paths.archive_for(package.base).iterdir()): @@ -94,7 +99,7 @@ class ArchiveRotationTrigger(Trigger): comparator: Callable[[Package, Package], int] = lambda left, right: left.vercmp(right.version) to_remove = sorted(packages.values(), key=cmp_to_key(comparator)) - # 0 will implicitly be translated into [:0], meaning we keep all packages + for single in to_remove[:-self.keep_built_packages]: self.logger.info("removing version %s of package %s", single.version, single.base) for archive in single.packages.values():