Then, which to use?
● SemVer is the primary choice for new libraries
● Whichever you choose, it is important to state your
libraries’ versioning policy explicitly
● Versioning policies of popular libraries:
○ Play
○ Cats
○ ScalikeJDBC
これから作るならSemVerが第一選択。どちらを選ぶにせよ、バー
ジョニングポリシーとして明示しておくことが大事
Since Play 2.0.0, Play is versioned as epoch.major.minor. Play currently releases a
new major version about every year. Major versions can break APIs, but we try to
make sure most existing code will compile with deprecation.
After 1.0.0 release, we decided to use MAJOR.MINOR.PATCH Semantic
Versioning 2.0.0 going forward, which is different from the EPOCH.MAJOR.MINOR
scheme common among Java and Scala libraries (including the Scala lang).
● major: Change only when the supported Scala major version changes:
○ Version 1 supports Scala 2.9 & 2.10
○ Version 2 supports Scala 2.10, Scala 2.11 and Scala 2.12
○ Version 3 supports Scala 2.10, Scala 2.11 and Scala 2.12
● minor: Change to indicate functionality and API compatibility changes, the
same minor version must provide the same functionality and APIs
● fix: For releasing smaller improvements, bug fixes and new features