This is an automated email from the ASF dual-hosted git repository.
raboof pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko-grpc.git
The following commit(s) were added to refs/heads/main by this push:
new 5d1e773a Run the MiMa check for every library Scala version. (#908)
5d1e773a is described below
commit 5d1e773a481a0bedb30a11359180d6b6064518b9
Author: PJ Fanning <[email protected]>
AuthorDate: Wed Oct 7 12:12:04 2026 +0100
Run the MiMa check for every library Scala version. (#908)
Motivation:
The CI binary-compatibility step runs mimaReportBinaryIssues, which
only checks the default Scala version (2.13). Scala 3 case classes have
positional accessors (_1, _2, ...) that Scala 2.13 ones don't, so
changing a case class can break Scala 3 binary compatibility and still
pass CI. The documented `sbt +mimaReportBinaryIssues` command doesn't
work either: the Scala 2.12 plugin projects don't define the task.
Modification:
Run `+runtime/mimaReportBinaryIssues` in CI, and give that command in
AGENTS.md, CLAUDE.md and CONTRIBUTING.md. runtime is the only project
with MiMa enabled.
Result:
CI checks binary compatibility on Scala 2.13 and Scala 3.
Tests:
- sbt grpcVersionSyncCheck googleProtobufVersionSyncCheck
+runtime/mimaReportBinaryIssues on main: passed (2.13.18 and 3.3.8)
- sbt +runtime/mimaReportBinaryIssues with commit ee37b1fb from #905
applied to main: fails with 4 Scala 3 problems that the current CI check misses
- sbt +mimaReportBinaryIssues on main: fails with "No such setting/task"
for the Scala 2.12 projects
References:
Refs #905
Co-authored-by: PJ Fanning <[email protected]>
---
.github/workflows/build-test.yml | 2 +-
AGENTS.md | 2 +-
CLAUDE.md | 2 +-
CONTRIBUTING.md | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml
index bcf6987b..98238065 100644
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-test.yml
@@ -50,7 +50,7 @@ jobs:
- name: Binary-compatibility check
run: |-
cp .jvmopts-ci .jvmopts
- sbt grpcVersionSyncCheck googleProtobufVersionSyncCheck
mimaReportBinaryIssues
+ sbt grpcVersionSyncCheck googleProtobufVersionSyncCheck
+runtime/mimaReportBinaryIssues
- name: Assembly license check
run: |-
diff --git a/AGENTS.md b/AGENTS.md
index d630b198..1044cb5c 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -143,7 +143,7 @@ PR_TARGET_BRANCH=origin/example sbt validatePullRequest
- Run MiMa for public API, binary shape, serialization, or MiMa-sensitive
internal changes.
```shell
-sbt +mimaReportBinaryIssues
+sbt +runtime/mimaReportBinaryIssues
```
- Current MiMa baseline is 1.0.2.
diff --git a/CLAUDE.md b/CLAUDE.md
index 1396dae3..7697bc47 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -14,7 +14,7 @@ Before opening or updating a PR, verify:
- `sbt headerCreateAll` was run to add headers for new files. Never hand-write
or invent license headers; let sbt manage them, and preserve existing copyright
notices intact.
- For copied code, the source file or external project is noted in the PR (see
Licensing Rules in `AGENTS.md`).
- Binary compatibility is preserved, and the GitHub `Check / Binary
Compatibility` job passes before merge.
-- `sbt +mimaReportBinaryIssues` was run for public API, binary shape, or
MiMa-sensitive internal changes, and ALL reported issues were fixed before
creating or updating the PR.
+- `sbt +runtime/mimaReportBinaryIssues` was run for public API, binary shape,
or MiMa-sensitive internal changes, and ALL reported issues were fixed before
creating or updating the PR.
- Commit messages follow the `AGENTS.md` format.
- PR bodies follow the `AGENTS.md` format.
- `Tests` and `References` are present.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 95e8cd8c..cfd94a59 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -110,7 +110,7 @@ indeed break binary compatibility in a problematic way.
Situations when it may
If it turns out that the change can be safely ignored, please add the filter
to a new file in the submodule's
`src/main/mima-filters/<last-released-version>.backwards.excludes` directory.
-You can run `mimaReportBinaryIssues` on the sbt console to check if you
introduced a binary incompatibility or whether an
+You can run `+runtime/mimaReportBinaryIssues` on the sbt console to check if
you introduced a binary incompatibility or whether an
incompatibility has been successfully ignored after adding it to the filter
file.
### Generated code
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]