Skip to content

Commit a69d29b

Browse files
authored
Rebrand MiMa & clarify recommended version scheme (#1391)
Rebrand MiMa & clarify recommended version scheme
2 parents 09f38a9 + 37f64a1 commit a69d29b

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

_overviews/tutorials/binary-compatibility-for-library-authors.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ How can we, as library authors, spare our users of runtime errors and dependency
143143

144144
## MiMa - Checking binary compatibility against previous library versions
145145

146-
The [Migration Manager for Scala](https://github.com/lightbend/migration-manager) (MiMa) is a tool for diagnosing binary incompatibilities between different library versions.
146+
[MiMa](https://github.com/lightbend/mima) is a tool for diagnosing binary incompatibilities between different library versions.
147147
It works by comparing the class files of two provided JARs and report any binary incompatibilities found.
148148
Both backwards and forwards binary incompatibility can be detected by swapping input order of the JARs.
149149

150-
By incorporating MiMa's [sbt plugin](https://github.com/lightbend/migration-manager/wiki/sbt-plugin) into your sbt build, you can easily check whether
150+
By incorporating MiMa's [sbt plugin](https://github.com/lightbend/mima/wiki/sbt-plugin) into your sbt build, you can easily check whether
151151
you have accidentally introduced binary incompatible changes. Detailed instruction on how to use the sbt plugin can be found in the link.
152152

153153
We strongly encourage every library author to incorporate MiMa into their continuous integration and release workflow.
@@ -175,20 +175,24 @@ Again, we recommend using MiMa to double check that you have not broken binary c
175175

176176
## Versioning Scheme - Communicating compatibility breakages
177177

178-
Library authors use versioning schemes to communicate compatibility guarantees between library releases to their users. Versioning schemes like [Semantic Versioning](http://semver.org/)(SemVer) allow
178+
Library authors use versioning schemes to communicate compatibility guarantees between library releases to their users. Versioning schemes like [Semantic Versioning](http://semver.org/) (SemVer) allow
179179
users to easily reason about the impact of updating a library, without needing to read the detailed release notes.
180180

181181
In the following section, we will outline a versioning scheme based on Semantic Versioning that we **strongly encourage** you to adopt for your libraries. The rules listed below are **in addition** to
182182
Semantic Versioning v2.0.0.
183183

184184
### Recommended Versioning Scheme
185185

186-
* If backward **binary compatibility** is broken, **major version number** must be increased.
187-
* If backward **source compatibility** is broken, **minor version number** must be increased.
188-
* A change in **patch version number** signals **neither binary nor source incompatibility**.
186+
Given a version number MAJOR.MINOR.PATCH, you MUST increment the:
187+
188+
1. MAJOR version if backward **binary compatibility** is broken,
189+
2. MINOR version if backward **source compatibility** is broken, and
190+
3. PATCH version to signal **neither binary nor source incompatibility**.
191+
189192
According to SemVer, patch versions should contain only bug fixes that fix incorrect behavior so major behavioral
190193
change in method/classes should result in a minor version bump.
191-
* When major version is `0`, a minor version bump **may contain both source and binary breakages**.
194+
195+
* When the major version is `0`, a minor version bump **may contain both source and binary breakages**.
192196

193197
Some examples:
194198

0 commit comments

Comments
 (0)