From 740d537618eb52e7b6e88128bc2f64fa53039f71 Mon Sep 17 00:00:00 2001 From: Evgenii Alekseev Date: Mon, 23 Sep 2024 16:30:33 +0300 Subject: [PATCH] fix: bump pkgrel if the local version is newer than remote In case of VCS packages, if PKGBUILD contains older version, the pkgrel remains the same during the rebuild process. This fix bumps pkgrel in any case if the local version is newer than the remote --- src/ahriman/models/package.py | 6 +----- tests/ahriman/core/build_tools/test_task.py | 3 ++- tests/ahriman/models/test_package.py | 6 +++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/ahriman/models/package.py b/src/ahriman/models/package.py index a4b9f98d..b3ced65b 100644 --- a/src/ahriman/models/package.py +++ b/src/ahriman/models/package.py @@ -538,14 +538,10 @@ class Package(LazyLogging): if local_version is None: return None # local version not found, keep upstream pkgrel - epoch, pkgver, _ = parse_version(self.version) - local_epoch, local_pkgver, local_pkgrel = parse_version(local_version) - - if epoch != local_epoch or pkgver != local_pkgver: - return None # epoch or pkgver are different, keep upstream pkgrel if vercmp(self.version, local_version) > 0: return None # upstream version is newer than local one, keep upstream pkgrel + *_, local_pkgrel = parse_version(local_version) if "." in local_pkgrel: major, minor = local_pkgrel.rsplit(".", maxsplit=1) else: diff --git a/tests/ahriman/core/build_tools/test_task.py b/tests/ahriman/core/build_tools/test_task.py index 2433733f..460819e9 100644 --- a/tests/ahriman/core/build_tools/test_task.py +++ b/tests/ahriman/core/build_tools/test_task.py @@ -134,9 +134,10 @@ def test_init_bump_pkgrel_skip(task_ahriman: Task, mocker: MockerFixture) -> Non """ must keep pkgrel if version is different from provided """ + task_ahriman.package.version = "2.0.0-1" mocker.patch("ahriman.models.package.Package.from_build", return_value=task_ahriman.package) mocker.patch("ahriman.core.build_tools.sources.Sources.load", return_value="sha") write_mock = mocker.patch("ahriman.models.pkgbuild_patch.PkgbuildPatch.write") - assert task_ahriman.init(Path("ahriman"), [], f"2:{task_ahriman.package.version}") == "sha" + assert task_ahriman.init(Path("ahriman"), [], "1.0.0-1") == "sha" write_mock.assert_not_called() diff --git a/tests/ahriman/models/test_package.py b/tests/ahriman/models/test_package.py index 01a50e41..870d03b4 100644 --- a/tests/ahriman/models/test_package.py +++ b/tests/ahriman/models/test_package.py @@ -474,11 +474,11 @@ def test_next_pkgrel(package_ahriman: Package) -> None: assert package_ahriman.next_pkgrel(package_ahriman.version) == "1.2.2" package_ahriman.version = "1:1.0.0-1" - assert package_ahriman.next_pkgrel("1:1.0.1-1") is None - assert package_ahriman.next_pkgrel("2:1.0.0-1") is None + assert package_ahriman.next_pkgrel("1:1.0.1-1") == "1.1" + assert package_ahriman.next_pkgrel("2:1.0.0-1") == "1.1" package_ahriman.version = "1.0.0-1.1" - assert package_ahriman.next_pkgrel("1.0.1-2") is None + assert package_ahriman.next_pkgrel("1.0.1-2") == "2.1" assert package_ahriman.next_pkgrel("1.0.0-2") == "2.1" package_ahriman.version = "1.0.0-2"