Skip to content

add default versionScheme #111

Closed
Closed
@Sciss

Description

@Sciss

It seems that modules should all follow the <major>.<minor>.<patch> scheme, instead of the <epoch>.<major>.<minor> scheme used by normal Scala libraries. sbt when using evicted looks at the version scheme information of the library's pom, defaulting to <epoch>.<major>.<minor> when absent. Thus, we get evication warnings, for example, when scala-xml 1.2.0 and 1.3.0 are mixed, although it would be binary compatible?

Therefore, I suggest to inject a default versionScheme to scala modules. This is supported since sbt 1.4. See also: sbt/sbt#5724

As far as I see, the three allowed values are "early-semver", "pvp", and "semver-spec", and the default would be "pvp". sbt has no information what these mean, but https://github.com/scalacenter/sbt-eviction-rules gives some clues:

That would mean we should use always ? It's quite confusing, I don't see how compatibility witihin 0.x.y. is assumed. Perhaps we're doing it wrong for modules altogether and should use pvp instead?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions