Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Netty and Jetty #10

Open
eed3si9n opened this issue Jan 8, 2021 · 1 comment
Open

Support Netty and Jetty #10

eed3si9n opened this issue Jan 8, 2021 · 1 comment

Comments

@eed3si9n
Copy link
Contributor

eed3si9n commented Jan 8, 2021

steps

scala> import coursier.version.VersionCompatibility.EarlySemVer
import coursier.version.VersionCompatibility.EarlySemVer

scala> EarlySemVer.isCompatible("3.10.1.Final", "3.7.0.Final")
val res1: Boolean = false

scala> EarlySemVer.isCompatible("9.2.14.v20151106", "9.4.25.v20191220")
val res2: Boolean = false

problem

From the specification point of view these Final and v20191220 stuff at the fourth segment are not compatible with Semantic Versioning, however, Netty and Jetty seem to have them, they are among the most widely used web backends, so they frequently come up as false negatives.

expectation

scala> import coursier.version.VersionCompatibility.EarlySemVer
import coursier.version.VersionCompatibility.EarlySemVer

scala> EarlySemVer.isCompatible("3.10.1.Final", "3.7.0.Final")
val res1: Boolean = true

scala> EarlySemVer.isCompatible("9.2.14.v20151106", "9.4.25.v20191220")
val res2: Boolean = true
@eed3si9n
Copy link
Contributor Author

eed3si9n commented Jan 8, 2021

Here's a workaround for now:

scala> import coursier.version.VersionCompatibility.EarlySemVer
import coursier.version.VersionCompatibility.EarlySemVer

scala> EarlySemVer.minimumCompatibleVersion("3.10.1.final") == EarlySemVer.minimumCompatibleVersion("3.7.0.final")
val res2: Boolean = true

scala> EarlySemVer.minimumCompatibleVersion("9.2.14.v20151106") == EarlySemVer.minimumCompatibleVersion("9.4.25.v20191220")
val res3: Boolean = true

eed3si9n added a commit to eed3si9n/bazel-multiversion that referenced this issue Jan 9, 2021
Ref coursier/versions#10
`compat.isCompatible(...)` doesn't work when the version number includes
weird alphabet tags in there like `3.10.1.Final`.
This tries to work round the issue by calculating the minimum compatible
versions and comparing the two.
eed3si9n added a commit to eed3si9n/bazel-multiversion that referenced this issue Jan 9, 2021
Ref coursier/versions#10
`compat.isCompatible(...)` doesn't work when the version number includes
weird alphabet tags in there like `3.10.1.Final`.
This tries to work round the issue by calculating the minimum compatible
versions and comparing the two.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant