coursier / coursier

Pure Scala Artifact Fetching
https://get-coursier.io
Apache License 2.0
2.04k stars 305 forks source link

Calling coursier cli with multiple `--reconciliation` params dont work as expected #1733

Open honzatrtik opened 4 years ago

honzatrtik commented 4 years ago

Hi, I'm stuck with defining multiple reconciliation rules (using both cli & sbt plugin): This works as expected :

coursier resolve  --reconciliation "org.typelevel:*:strict" org.http4s:http4s-blaze-server_2.12:0.21.4 

Resolution error: Rule Strict(Set(ModuleMatcher(org.typelevel:*)), Set(ModuleMatcher(*:*)), true, true, false) not satisfied: coursier.params.rule.Strict$EvictedDependencies: Unsatisfied rule Strict(org.typelevel:*, exclude=*:*, ignoreIfForcedVersion=true): Found evicted dependencies:

org.typelevel:cats-core_2.12:2.1.1 (2.0.0 wanted)
└─ io.chrisdavenport:unique_2.12:2.0.0
   └─ io.chrisdavenport:vault_2.12:2.0.0
      └─ org.http4s:http4s-core_2.12:0.21.4
         ├─ org.http4s:http4s-blaze-core_2.12:0.21.4
         │  └─ org.http4s:http4s-blaze-server_2.12:0.21.4
         └─ org.http4s:http4s-server_2.12:0.21.4
            └─ org.http4s:http4s-blaze-server_2.12:0.21.4

org.typelevel:cats-core_2.12:2.1.1 (2.0.0 wanted)
└─ io.chrisdavenport:vault_2.12:2.0.0
   └─ org.http4s:http4s-core_2.12:0.21.4
      ├─ org.http4s:http4s-blaze-core_2.12:0.21.4
      │  └─ org.http4s:http4s-blaze-server_2.12:0.21.4
      └─ org.http4s:http4s-server_2.12:0.21.4
         └─ org.http4s:http4s-blaze-server_2.12:0.21.4

org.typelevel:cats-effect_2.12:2.1.3 (2.1.2 wanted)
└─ co.fs2:fs2-core_2.12:2.3.0
   └─ co.fs2:fs2-io_2.12:2.3.0
      └─ org.http4s:http4s-core_2.12:0.21.4
         ├─ org.http4s:http4s-blaze-core_2.12:0.21.4
         │  └─ org.http4s:http4s-blaze-server_2.12:0.21.4
         └─ org.http4s:http4s-server_2.12:0.21.4
            └─ org.http4s:http4s-blaze-server_2.12:0.21.4

org.typelevel:cats-effect_2.12:2.1.3 (2.1.2 wanted)
└─ co.fs2:fs2-io_2.12:2.3.0
   └─ org.http4s:http4s-core_2.12:0.21.4
      ├─ org.http4s:http4s-blaze-core_2.12:0.21.4
      │  └─ org.http4s:http4s-blaze-server_2.12:0.21.4
      └─ org.http4s:http4s-server_2.12:0.21.4
         └─ org.http4s:http4s-blaze-server_2.12:0.21.4

org.typelevel:cats-effect_2.12:2.1.3 (2.0.0 wanted)
└─ io.chrisdavenport:unique_2.12:2.0.0
   └─ io.chrisdavenport:vault_2.12:2.0.0
      └─ org.http4s:http4s-core_2.12:0.21.4
         ├─ org.http4s:http4s-blaze-core_2.12:0.21.4
         │  └─ org.http4s:http4s-blaze-server_2.12:0.21.4
         └─ org.http4s:http4s-server_2.12:0.21.4
            └─ org.http4s:http4s-blaze-server_2.12:0.21.4

org.typelevel:cats-effect_2.12:2.1.3 (2.0.0 wanted)
└─ io.chrisdavenport:vault_2.12:2.0.0
   └─ org.http4s:http4s-core_2.12:0.21.4
      ├─ org.http4s:http4s-blaze-core_2.12:0.21.4
      │  └─ org.http4s:http4s-blaze-server_2.12:0.21.4
      └─ org.http4s:http4s-server_2.12:0.21.4
         └─ org.http4s:http4s-blaze-server_2.12:0.21.4

But this takes only first argument into account (no strict errors are shown for cats-effect dependency):

coursier resolve  --reconciliation "org.typelevel:cats-core_2.12:strict" --reconciliation "org.typelevel:cats-effect_2.12:strict" org.http4s:http4s-blaze-server_2.12:0.21.4

Resolution error: Rule Strict(Set(ModuleMatcher(org.typelevel:cats-core_2.12)), Set(ModuleMatcher(*:*)), true, true, false) not satisfied: coursier.params.rule.Strict$EvictedDependencies: Unsatisfied rule Strict(org.typelevel:cats-core_2.12, exclude=*:*, ignoreIfForcedVersion=true): Found evicted dependencies:

org.typelevel:cats-core_2.12:2.1.1 (2.0.0 wanted)
└─ io.chrisdavenport:unique_2.12:2.0.0
   └─ io.chrisdavenport:vault_2.12:2.0.0
      └─ org.http4s:http4s-core_2.12:0.21.4
         ├─ org.http4s:http4s-blaze-core_2.12:0.21.4
         │  └─ org.http4s:http4s-blaze-server_2.12:0.21.4
         └─ org.http4s:http4s-server_2.12:0.21.4
            └─ org.http4s:http4s-blaze-server_2.12:0.21.4

org.typelevel:cats-core_2.12:2.1.1 (2.0.0 wanted)
└─ io.chrisdavenport:vault_2.12:2.0.0
   └─ org.http4s:http4s-core_2.12:0.21.4
      ├─ org.http4s:http4s-blaze-core_2.12:0.21.4
      │  └─ org.http4s:http4s-blaze-server_2.12:0.21.4
      └─ org.http4s:http4s-server_2.12:0.21.4
         └─ org.http4s:http4s-blaze-server_2.12:0.21.4

Do I miss something? Thanks! (using version Coursier 2.0.0-RC6-18)

honzatrtik commented 4 years ago

Probably related to https://github.com/coursier/coursier/issues/1698