Skip to content

Add MiMa binary compatibility checks#833

Merged
halotukozak merged 5 commits intomasterfrom
add-mima-test
Apr 22, 2026
Merged

Add MiMa binary compatibility checks#833
halotukozak merged 5 commits intomasterfrom
add-mima-test

Conversation

@halotukozak
Copy link
Copy Markdown
Member

@halotukozak halotukozak commented Apr 15, 2026

No description provided.

Wires sbt-mima-plugin 1.1.4 into the build with cross-platform support
(via `%%%`) and configures `previousCompatibleVersions` covering the
last seven minor releases. Filters for intentional API changes
(removed `mongo.scala.*` helpers from PR #827, renamed
`listDatabases`/`listCollections` in commit 11e6d7e, and removed
`AnalyzerRule.report`) live as `mimaBinaryIssueFilters` on the
respective subprojects. The check runs in CI before tests via a new
`Binary compatibility check` workflow step.
Copilot AI review requested due to automatic review settings April 15, 2026 14:07
@halotukozak halotukozak self-assigned this Apr 15, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR integrates MiMa binary compatibility checks into the sbt build and CI, establishing a baseline across a set of previously released versions and documenting known intentional incompatibilities via issue filters.

Changes:

  • Add sbt-mima-plugin to the build plugins.
  • Configure mimaPreviousArtifacts and introduce targeted mimaBinaryIssueFilters for known intentional breakages.
  • Add a dedicated “Binary compatibility check” step to the GitHub Actions CI workflow.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
project/plugins.sbt Adds the MiMa sbt plugin dependency.
project/Commons.scala Wires MiMa settings (previous artifacts + issue filters) and attempts to inject a CI workflow step.
.github/workflows/ci.yml Adds a mimaReportBinaryIssues step before running tests.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread project/Commons.scala Outdated
@halotukozak halotukozak requested a review from ddworak April 15, 2026 14:13
Comment thread project/Commons.scala Outdated
- `previousCompatibleVersions` now covers every released 2.x version in
  the baseline window (adds 2.23.0 and 2.27.0 that were previously
  implicit via "last patch per minor"), since the project lacks prior
  MiMa history to back that shortcut. Strategy documented in a comment.
- Move MiMa to a dedicated `mima` CI job running on a single JDK
  (temurin@21) instead of multiplying the work across the build matrix;
  MiMa compares bytecode and is JDK-agnostic.
- Replace self-referential `githubWorkflowBuild := ... ++ .value` with
  `githubWorkflowAddedJobs += WorkflowJob(...)`.
# Conflicts:
#	project/plugins.sbt
@halotukozak halotukozak requested a review from ddworak April 17, 2026 10:28
@halotukozak halotukozak merged commit 907ac36 into master Apr 22, 2026
11 checks passed
@halotukozak halotukozak deleted the add-mima-test branch April 22, 2026 07:03
@halotukozak halotukozak restored the add-mima-test branch April 22, 2026 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants