#158 Always require upper-bound dependency with ~ sign
Merged 2 years ago by zbyszek. Opened 2 years ago by zbyszek.
fedora-rust/ zbyszek/rust2rpm igors-patch  into  main

file modified
+1 -1
@@ -232,7 +232,7 @@ 

          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})"

file modified
+20 -20
@@ -6,53 +6,53 @@ 

  

  @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)

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).

Signed-off-by: Igor Raits igor.raits@gmail.com

Fixes https://pagure.io/fedora-rust/rust2rpm/issue/70.

Pull-Request has been merged by zbyszek

2 years ago
Metadata