Skip to content

Update dependency com.typesafe:mima-core_2.13 to v1.2.1 - #179

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/com.typesafe-mima-core_2.13-1.x
Sep 19, 2026
Merged

renovate[bot] merged 1 commit into
mainfrom
renovate/com.typesafe-mima-core_2.13-1.x

Conversation

@renovate

@renovate renovate Bot commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
com.typesafe:mima-core_2.13 1.2.0 → 1.2.1 age confidence

Release Notes

scala-garden/mima (com.typesafe:mima-core_2.13)

v1.2.1: 1.2.1

Compare Source

NOTE: If you're upgrading from 1.1.6, see also the release notes for 1.2.0.

New: warning before MiMa stops checking a definition

A public definition that becomes private[foo], or a nested class that becomes private, is still public in bytecode, so nothing breaks yet. But from that version on MiMa no longer checks it, and removing it later was not reported, although code compiled against the old version still calls it. #​976

def f: Int = 1                // 1.0
private[foo] def f: Int = 1   // 1.1, silent until now
                              // 1.2, f is gone: silent, callers break

MiMa now reports the version where that happens, with three new problems:

  • MethodNoLongerCheckedProblem: a public method or constructor becomes private[foo].
  • ClassNoLongerCheckedProblem: a class is no longer public, and no public signature exposes it.
  • HierarchyNoLongerCheckedProblem: a type becomes sealed with all its subtypes closed. MiMa stops reporting abstract methods added to it later, which would break clients that implement it today.

The next section explains how to address these new reports.

New: mimaBinaryApi

Filtering (silencing) one of the three reports above is not the correct action: once mimaPreviousArtifacts points to a new version, MiMa would no longer check the definition (it's private[foo] now). To keep it checked, add it to mimaBinaryApi:

mimaBinaryApi += BinaryApi.keep[MethodNoLongerCheckedProblem]("foo.C.f()Int")

MiMa then checks f as if it were public, and removing it later is reported. Entries can also go in src/main/mima-filters/binary-api. The report suggests them ready to paste, and warns about an entry that has no effect. #​984

On Scala 3.4+, @publicInBinary has the same effect.

See also Keeping a definition checked.

Filters can name a single overload

A filter can name a method with its signature, as the report prints it, so it applies to that overload only:

ProblemFilters.exclude[DirectMissingMethodProblem]("foo.C.f(Int)Int")

A name without a signature still covers every overload, so existing filters keep working. Suggested filters and mimaBinaryApi entries now carry the signature. #​985

Memory use

MiMa 1.2.0 could run out of heap on multi-module builds, because its escape analysis walked the whole classpath and the JDK. It now stays within the compared artifact. #​978 (by @​mkurz)

Fewer false negatives

  • Classes with a self type (trait T { self: U => }) were mistaken for private[foo] and not checked. #​983
  • @publicInBinary members are checked like public ones. #​979
  • protected[foo] members were ignored. They are now checked like protected ones, since a subclass anywhere can call them. #​976
  • An overloaded method could wrongly be treated as private and not checked. #​976

Fewer false positives

  • Static forwarders to object methods are no longer reported, since they are only for Java interop (MiMa does not protect Java clients elsewhere either). MiMa continues checking the object methods. #​987, and #​986 (by @​kitbellew) before it.
  • ... and a few more corner cases (#​981, #​982, #​974)

Documentation

The README now says what MiMa checks: the API as Scala code sees it. It lists the changes that break only Java clients and go unreported, and says what mimaReportSignatureProblems compares and where that falls short. #​987

Credits

Thank you to @​kitbellew and @​mkurz for your contributions!


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Summary by CodeRabbit

  • Chores
    • Updated an internal compatibility-checking dependency to version 1.2.1.

@renovate
renovate Bot enabled auto-merge September 19, 2026 06:06
@coderabbitai

coderabbitai Bot commented Sep 19, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 1a44159c-4a4a-4cef-9e15-e47a142f45f9

📥 Commits

Reviewing files that changed from the base of the PR and between 382aaa9 and cefdae8.

📒 Files selected for processing (1)
  • .mima/bin-compat-check.scala

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (4)
  • GitHub Check: Test (scala-js)
  • GitHub Check: Test (scala-native)
  • GitHub Check: Test
  • GitHub Check: MiMa (binary)
🔇 Additional comments (1)
.mima/bin-compat-check.scala (1)

2-2: LGTM!


📝 Walkthrough

Walkthrough

The MiMa core dependency updates from version 1.2.0 to version 1.2.1.

Changes

MiMa dependency update

Layer / File(s) Summary
MiMa core version update
.mima/bin-compat-check.scala
The binary compatibility check uses MiMa core version 1.2.1 instead of 1.2.0.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Suggested reviewers: halotukozak

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely states the dependency update from the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@renovate
renovate Bot merged commit 4369bec into main Sep 19, 2026
9 checks passed
@renovate
renovate Bot deleted the renovate/com.typesafe-mima-core_2.13-1.x branch September 19, 2026 06:08
@codecov

codecov Bot commented Sep 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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.

0 participants