-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Strengthen MiMa checks #20068
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
Strengthen MiMa checks #20068
Conversation
ee052d7
to
1f7ca72
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The change looks good!
I think the comment about the version should be slightly reworded for clarity.
project/Build.scala
Outdated
* This must be the earliest published release in the same versioning line. | ||
* For example, if the next version is going to be 3.M.4, then this must be | ||
* set to 3.1.0. If it is going to be 3.1.0, it must be set to the earliest | ||
* 3.0.x release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This wording is confusing. Is the M
a typo in the example? Should the second version be then specified as 3.M.0
? Isn't the earliest 3.0.x
just 3.0.0
?
I suggest including explicit rules in this comment. Something along the lines of:
For a base version `3.M.P` the mimaPreviousDottyVersion should be set to:
* `3.M.0` if P > 0
* `3.(M-1).0` if P = 0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are right, it was meant as a 3.M.0
.
I will use your version as it is much clearer and direct. I modified it slightly.
Using the latest patch release of the current minor version may lead to some breakages that are not properly checked/tagged in the MiMa filers. For example, if we accidentally introduce a breaking change in 3.M.1 but check against 3.M.2, we would lose this braking change before the next minor release. If we would check against 3.M.0, we would catch this. In general we need to track all the changes that have happened in the current minor version. There should not be any breaking changes unless the PR needs a minor release.
1f7ca72
to
72f2da6
Compare
I've re-ran the failed tests. It seems to be an inconsequential flake. |
Using the latest patch release of the current minor version may lead to some breakages that are not properly checked/tagged in the MiMa filers. For example, if we accidentally introduce a breaking change in 3.M.1 but check against 3.M.2, we would lose this breaking change before the next minor release. If we would check against 3.M.0, we would catch this.
In general we need to track all the changes that have happened in the current minor version. There should not be any breaking changes unless the PR needs a minor release.