From 617d4b9140b35f4f74def98b87a69a84943a33de Mon Sep 17 00:00:00 2001 From: Igor Raits Date: Mon, 28 Dec 2020 12:44:52 +0100 Subject: [PATCH] Always require upper-bound dependency with ~ sign Proper fix is quite complex and given we do not package pre-release versions very often (and esp. not multiple versions of them), this is good enough (not nice though). References: https://pagure.io/fedora-rust/rust2rpm/issue/70 Signed-off-by: Igor Raits --- rust2rpm/metadata.py | 2 +- test.py | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/rust2rpm/metadata.py b/rust2rpm/metadata.py index b29e7b5..4636cc5 100644 --- a/rust2rpm/metadata.py +++ b/rust2rpm/metadata.py @@ -197,7 +197,7 @@ class Dependency: if not reqs: return cap deps = ' with '.join( - f'{cap} {op} {CargoSemVer.unparse_version(version, sep="~")}' + f'{cap} {op} {CargoSemVer.unparse_version(version, sep="~")}{"~" if op == CargoSemVer.KIND_LT else ""}' for op, version in reqs) if len(reqs) > 1: return f"({deps})" diff --git a/test.py b/test.py index ccda3b5..7623be0 100644 --- a/test.py +++ b/test.py @@ -6,53 +6,53 @@ from rust2rpm.metadata import Version @pytest.mark.parametrize("req, rpmdep", [ ("^1.2.3", - "(crate(test) >= 1.2.3 with crate(test) < 2.0.0)"), + "(crate(test) >= 1.2.3 with crate(test) < 2.0.0~)"), ("^1.2", - "(crate(test) >= 1.2.0 with crate(test) < 2.0.0)"), + "(crate(test) >= 1.2.0 with crate(test) < 2.0.0~)"), ("^1", - "(crate(test) >= 1.0.0 with crate(test) < 2.0.0)"), + "(crate(test) >= 1.0.0 with crate(test) < 2.0.0~)"), ("^0.2.3", - "(crate(test) >= 0.2.3 with crate(test) < 0.3.0)"), + "(crate(test) >= 0.2.3 with crate(test) < 0.3.0~)"), ("^0.2", - "(crate(test) >= 0.2.0 with crate(test) < 0.3.0)"), + "(crate(test) >= 0.2.0 with crate(test) < 0.3.0~)"), ("^0.0.3", - "(crate(test) >= 0.0.3 with crate(test) < 0.0.4)"), + "(crate(test) >= 0.0.3 with crate(test) < 0.0.4~)"), ("^0.0", - "(crate(test) >= 0.0.0 with crate(test) < 0.1.0)"), + "(crate(test) >= 0.0.0 with crate(test) < 0.1.0~)"), ("^0", - "(crate(test) >= 0.0.0 with crate(test) < 1.0.0)"), + "(crate(test) >= 0.0.0 with crate(test) < 1.0.0~)"), ("~1.2.3", - "(crate(test) >= 1.2.3 with crate(test) < 1.3.0)"), + "(crate(test) >= 1.2.3 with crate(test) < 1.3.0~)"), ("~1.2", - "(crate(test) >= 1.2.0 with crate(test) < 1.3.0)"), + "(crate(test) >= 1.2.0 with crate(test) < 1.3.0~)"), ("~1", - "(crate(test) >= 1.0.0 with crate(test) < 2.0.0)"), + "(crate(test) >= 1.0.0 with crate(test) < 2.0.0~)"), ("*", "crate(test) >= 0.0.0"), ("1.*", - "(crate(test) >= 1.0.0 with crate(test) < 2.0.0)"), + "(crate(test) >= 1.0.0 with crate(test) < 2.0.0~)"), ("1.2.*", - "(crate(test) >= 1.2.0 with crate(test) < 1.3.0)"), + "(crate(test) >= 1.2.0 with crate(test) < 1.3.0~)"), ("1.*.*", - "(crate(test) >= 1.0.0 with crate(test) < 2.0.0)"), + "(crate(test) >= 1.0.0 with crate(test) < 2.0.0~)"), (">= 1.2.0", "crate(test) >= 1.2.0"), ("> 1", "crate(test) > 1.0.0"), ("< 2", - "crate(test) < 2.0.0"), + "crate(test) < 2.0.0~"), ("= 1.2.3", "crate(test) = 1.2.3"), (">= 1.2, < 1.5", - "(crate(test) >= 1.2.0 with crate(test) < 1.5.0)"), + "(crate(test) >= 1.2.0 with crate(test) < 1.5.0~)"), ("^1.0.0-alpha.6", - "(crate(test) >= 1.0.0~alpha.6 with crate(test) < 2.0.0)"), + "(crate(test) >= 1.0.0~alpha.6 with crate(test) < 2.0.0~)"), ("^0.1.0-alpha.6", - "(crate(test) >= 0.1.0~alpha.6 with crate(test) < 0.2.0)"), + "(crate(test) >= 0.1.0~alpha.6 with crate(test) < 0.2.0~)"), ("^0.0.1-alpha.6", - "(crate(test) >= 0.0.1~alpha.6 with crate(test) < 0.0.2)"), + "(crate(test) >= 0.0.1~alpha.6 with crate(test) < 0.0.2~)"), ("^0.0.0-alpha.6", - "(crate(test) >= 0.0.0~alpha.6 with crate(test) < 0.0.1)"), + "(crate(test) >= 0.0.0~alpha.6 with crate(test) < 0.0.1~)"), ]) def test_dependency(req, rpmdep): dep = rust2rpm.Dependency("test", req) -- 2.30.0.rc2