I am aware that Scala libraries typically have in their name the Scala version with which they are binary compatible, but it is for that: maintaining binary compatibility, and the the same maven version largely implies source compatibility (at least for the most part).
However, differences between Scala 2 and Scala 3 are quite drastic, especially if you deal with type-level programming and syntax enrichment. This requires a rewrite of a considerable part of library code, and maintaining the same maven version between goes against the policy of least surprise.
However, when maintaining both a version of Scala 2 and Scala 3, it is typical that the general functionality remains roughly the same, only the means of accomplishing them differ. Therefore, it would be nice if it would be somehow possible to link such ‘logical’ versions with each other.
It would be confusing for me if a version 2.3
(for example) for Scala 3 was largely independent and unrelated to a Scala 2 version in terms of being up to date with functionality.
Is there a pattern, or best practice established to deal with this issue?
Or should I simply repeat the major scala version in the maven version, for example:
turin-squirrel_2.13-s2_1.1.jar
turin-squirrel_3.3-s3_1.1.jar
Would love to see what approaches are taken by others in similar cases.