Skip to content

chore(deps): update dependency dev.zacsweers.metro to v0.11.3#3569

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/metro
Open

chore(deps): update dependency dev.zacsweers.metro to v0.11.3#3569
renovate[bot] wants to merge 1 commit intomainfrom
renovate/metro

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Mar 2, 2026

This PR contains the following updates:

Package Change Age Confidence
dev.zacsweers.metro 0.11.10.11.3 age confidence

Release Notes

ZacSweers/metro (dev.zacsweers.metro)

v0.11.3

Compare Source

2026-03-16

Enhancements
  • [IR]: When reporting suspicious unused multibindings, include a hint about their use in graph extensions if applicable.
  • [interop]: Support @ContributesBinding(..., multibinding = true) interop with kotlin-inject-anvil.
Fixes
  • [FIR]: Don't use a memoizing sequence for all FirSession instances as it seems that the IDE will mutate the underlying source lists in some cases.
  • [FIR]: Providers can now return instances of classes nested in the same container class.
  • [IR]: Fix Map<Class<*>, V> map key interop in constructor injection paths when enableKClassToClassMapKeyInterop is enabled.
  • [IR]: Fix codegen error when a scoped binding in a child graph supersedes the same-typed scoped binding from a parent graph and is used in a grandchild graph's multibinding. Basically, if graph A provides Logger and graph B also provides Logger (overriding A's), graph C would incorrectly try to get it from A instead of B.
  • [IR]: Fix duplicate binding error in multibindings when multiple contributed containers include the same shared multibinding-contributing container.
  • [IR]: Fix NoSuchFieldError at runtime when sharded graphs access @Includes dependency properties.
  • [IR]: Check parent classes for @Origin annotations when performing IR-based contribution merging.
  • [IR]: Fix graph extensions inheriting stale bindings from ancestor graphs when a nearer parent already superseded them (e.g., a child's @Binds overriding a grandparent's @Provides of the same type).
  • [metrox-viewmodel-compose]: Pass CreationExtras to the createViewModel lambda for assistedMetroViewModel when using ManualViewModelAssistedFactory.
Changes
  • Test Kotlin 2.3.20.
    • Note that all the 2.3.20 pre-releases were tested up to this release but are no longer tested after this release.
  • Test Android Studio Panda 2
  • Test Android Studio Panda 3 canaries
  • Update shaded androidx.tracing to 2.0.0-alpha03.
  • Update shaded Wire dep to 6.0.0.
Contributors

Special thanks to the following contributors for contributing to this release!

v0.11.2

Compare Source

2026-03-02

New
Class/KClass map key interop

This release introduces a special-cased opt-in java.lang.Class and kotlin.reflect.KClass interop on JVM/android compilations. While these types are not intrinsics of each other in regular code, they are in annotations and are often used in Map multibindings. Metro can support these if you enable the enableKClassToClassMapKeyInterop option. When enabled, java.lang.Class and kotlin.reflect.KClass are treated as interchangeable in map key types, matching Kotlin's own annotation compilation behavior. This only applies to map keys because these are the only scenario where annotation arguments are materialized into non-annotation code (i.e. @ClassKey(Foo::class) -> Map<Class<*>, V>).

This is disabled by default (even if other framework interops like includeDagger are enabled) because this is purely for annotations interop and potentially comes at some runtime overhead cost to interop since KClass types are still used under the hood and must be mapped in some cases. It's recommended to migrate these to KClass and call .java where necessary if possible.

Enhancements
  • [FIR]: Report adhoc graph extension factories as these are unsupported in Metro (but apparently supported in Dagger!)
  • [FIR]: Report a diagnostic error for usage of Dagger's @LazyClassKey as this is unsupported in Metro.
  • [IR]: Report warning diagnostics for unused synthetic multibindings, as it's often a sign that the user accidentally bound them to the wrong supertype.
    warning: [Metro/SuspiciousUnusedMultibinding] Synthetic multibinding kotlin.collections.Map<kotlin.reflect.KClass<*>, BaseViewModel> is unused but has 4 source binding(s). Did you possibly bind them to the wrong type?
    
      SuspiciousUnusedMultibinding.kt:36:1
        HomeViewmodel contributes a binding of BaseViewModel
                                               ~~~~~~~~~~~~~
      SuspiciousUnusedMultibinding.kt:31:1
        AccountViewModel contributes a binding of BaseViewModel
                                                  ~~~~~~~~~~~~~
      SuspiciousUnusedMultibinding.kt:26:1
        SettingsViewModel contributes a binding of BaseViewModel
                                                   ~~~~~~~~~~~~~
      ...and 1 more
    
    Similar multibindings:
    - Map<KClass<*>, ViewModel>
    
  • [Gradle]: Add IDE support docs link to @RequiresIdeSupport opt-in message.
Fixes
  • [IR]: Fix a code gen bug where @Provides graph parameters wouldn't correctly be used by scoped bindings directly held in that graph.
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: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, 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.

@github-actions
Copy link

github-actions bot commented Mar 2, 2026

OLD: app-madani-debug.apk (signature: V1, V2)
NEW: app-madani-debug.apk (signature: V1, V2)

          │          compressed          │         uncompressed         
          ├───────────┬───────────┬──────┼───────────┬───────────┬──────
 APK      │ old       │ new       │ diff │ old       │ new       │ diff 
──────────┼───────────┼───────────┼──────┼───────────┼───────────┼──────
      dex │  20.2 MiB │  20.2 MiB │  0 B │  50.6 MiB │  50.6 MiB │  0 B 
     arsc │   2.1 MiB │   2.1 MiB │  0 B │   2.1 MiB │   2.1 MiB │  0 B 
 manifest │   5.7 KiB │   5.7 KiB │  0 B │  26.6 KiB │  26.6 KiB │  0 B 
      res │   1.8 MiB │   1.8 MiB │  0 B │     2 MiB │     2 MiB │  0 B 
   native │ 108.1 KiB │ 108.1 KiB │  0 B │  36.5 KiB │  36.5 KiB │  0 B 
    asset │   1.8 MiB │   1.8 MiB │  0 B │   4.1 MiB │   4.1 MiB │  0 B 
    other │ 200.2 KiB │ 200.2 KiB │ -1 B │ 501.7 KiB │ 501.7 KiB │  0 B 
──────────┼───────────┼───────────┼──────┼───────────┼───────────┼──────
    total │  26.2 MiB │  26.2 MiB │ -1 B │  59.4 MiB │  59.4 MiB │  0 B 

@github-actions
Copy link

github-actions bot commented Mar 2, 2026

Upgraded Dependencies
dev.zacsweers.metro:runtime:0.11.2, (changed from 0.11.1)
dev.zacsweers.metro:runtime-jvm:0.11.2, (changed from 0.11.1)

@renovate renovate bot force-pushed the renovate/metro branch from a839a2e to 503f3aa Compare March 16, 2026 21:21
@renovate renovate bot changed the title chore(deps): update dependency dev.zacsweers.metro to v0.11.2 chore(deps): update dependency dev.zacsweers.metro to v0.11.3 Mar 16, 2026
@github-actions
Copy link

OLD: app-madani-debug.apk (signature: V1, V2)
NEW: app-madani-debug.apk (signature: V1, V2)

          │            compressed             │           uncompressed            
          ├───────────┬───────────┬───────────┼───────────┬───────────┬───────────
 APK      │ old       │ new       │ diff      │ old       │ new       │ diff      
──────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────
      dex │  20.2 MiB │  20.2 MiB │  -2.8 KiB │  50.6 MiB │  50.6 MiB │ -10.5 KiB 
     arsc │   2.1 MiB │   2.1 MiB │       0 B │   2.1 MiB │   2.1 MiB │       0 B 
 manifest │   5.7 KiB │   5.7 KiB │       0 B │  26.6 KiB │  26.6 KiB │       0 B 
      res │   1.8 MiB │   1.8 MiB │       0 B │     2 MiB │     2 MiB │       0 B 
   native │ 108.1 KiB │  81.6 KiB │ -26.5 KiB │  36.5 KiB │  36.5 KiB │       0 B 
    asset │   1.8 MiB │   1.8 MiB │       0 B │   4.1 MiB │   4.1 MiB │       0 B 
    other │ 200.2 KiB │ 200.2 KiB │      -3 B │ 501.7 KiB │ 501.7 KiB │       0 B 
──────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────
    total │  26.2 MiB │  26.1 MiB │ -29.2 KiB │  59.4 MiB │  59.4 MiB │ -10.5 KiB 

@github-actions
Copy link

Upgraded Dependencies
dev.zacsweers.metro:runtime:0.11.3, (changed from 0.11.1)
dev.zacsweers.metro:runtime-jvm:0.11.3, (changed from 0.11.1)

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