chore(deps): update dependency dev.zacsweers.metro:dev.zacsweers.metro.gradle.plugin to v0.12.0#293
Conversation
…o.gradle.plugin to v0.12.0
Greptile SummaryThis Renovate-generated PR intends to update Key changes and concerns:
Confidence Score: 2/5
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["Versions.kt\n(Android data class)"] --> B["metro: String\n(runtime library)"]
A --> C["metroPlugin: String\n(Gradle plugin)"]
B -->|"version.ref = 'metro'"| D["libs.metro.runtime\ndev.zacsweers.metro:runtime"]
C -->|"version.ref = 'metro-plugin'"| E["libs.metro.gradle.plugin\ndev.zacsweers.metro.gradle.plugin"]
C -->|"version.ref = 'metro-plugin'"| F["libs.plugins.metro\nid = dev.zacsweers.metro"]
subgraph PR_Change ["This PR's change"]
B -->|"0.11.4 → 0.12.0 ✅"| G["Runtime updated"]
C -->|"0.10.2 → still 0.10.2 ❌"| H["Plugin NOT updated\n(PR intended to update this)"]
end
Reviews (1): Last reviewed commit: "chore(deps): update dependency dev.zacsw..." | Re-trigger Greptile |
| val metro: String = "0.12.0", | ||
| val metroPlugin: String = "0.10.2", |
There was a problem hiding this comment.
Wrong field updated — runtime and plugin versions now mismatched
The PR title claims to update dev.zacsweers.metro:dev.zacsweers.metro.gradle.plugin (the Gradle plugin) to 0.12.0. However, looking at how these fields are consumed in AndroidToml.kt:
metro→version.ref = "metro"→ used for the runtime library (dev.zacsweers.metro:runtime, line 279)metroPlugin→version.ref = "metro-plugin"→ used for the Gradle plugin (dev.zacsweers.metro.gradle.plugin, line 296) and the plugin alias (line 312)
This PR updated metro (the runtime library) from 0.11.4 → 0.12.0, but left metroPlugin (the actual Gradle plugin) at 0.10.2. The Gradle plugin version was not updated, despite that being the stated intent of this Renovate PR. The runtime library and the Gradle plugin are now two major versions apart, which may cause compatibility issues in generated projects.
The correct change should also bump metroPlugin to 0.12.0:
| val metro: String = "0.12.0", | |
| val metroPlugin: String = "0.10.2", | |
| val metro: String = "0.12.0", | |
| val metroPlugin: String = "0.12.0", |
This PR contains the following updates:
0.11.4→0.12.0Release Notes
ZacSweers/metro (dev.zacsweers.metro:dev.zacsweers.metro.gradle.plugin)
v0.12.0Compare Source
2026-03-24
New
[MEEP-2014] Implicit class (map) keys
MapKey.implicitClassKeyis a new API to allow for class-based map keys to have their class parameters inferred on classes and@Bindsdeclarations.This means that instead of redeclaring the annotated class in the key, for example
@ViewModelKey, you can now omit it and it will be inferred.For classes, the implicit type is the annotated class. For
@Bindsdeclarations, the receiver or single parameter are the implicit type.You may still specify an explicit type. The compiler will warn you if you specify a redundant one. If you need to suppress this diagnostic temporarily to ease migration, you can add
-Xwarning-level=MAP_KEY_REDUNDANT_IMPLICIT_CLASS_KEY:disabledto your compiler arguments.The compiler will also error if you attempt to do this on
@Providesdeclarations, as those cannot be inferred.Metro's first-party class-based map keys (like
@ClassKey,@ViewModelKey, etc.) now support this. Custom map keys can opt-in to this by settingMapKey.implicitClassKeyto true. See its doc for more details.Misc
mingwX64target.Enhancements
FUNCTIONtargets if they have a@Targetannotation.Fixes
IllegalArgumentExceptionthrown when there are multiple top-level functions with the same name but only one is annotated with@Inject.SuspiciousUnusedMultibindinglocations.@OptionalBindingannotations to generated static factory creators if present.IntoSetandIntoMapno longer have aTargetofAnnotationTarget.CLASSChanges
2.2.@Assisted.valueis formally deprecated now. See the docs on why in case you missed this! TL;DR, Metro matches by parameter names going forward.2.3.20but still targets Kotlin 2.2 for its runtime artifacts and supports 2.2.20 all to 2.4.0 dev builds in its compiler.macosX64,tvosX64, andwatchosX64targets.2.4.0-dev-539to2.4.0-dev-2124. This should support the upcoming IntelliJ 2026.1 release as well as the upcoming Kotlin2.4.0-Beta1.2026.1 RC.6.1.0.Contributors
Special thanks to the following contributors for contributing to this release!
Configuration
📅 Schedule: 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.
This PR was generated by Mend Renovate. View the repository job log.