Skip to content

fix(deps): update metro to v1.3.0#214

Merged
ShadowRZ merged 1 commit into
masterfrom
renovate/metro
Jul 4, 2026
Merged

fix(deps): update metro to v1.3.0#214
ShadowRZ merged 1 commit into
masterfrom
renovate/metro

Conversation

@renovate

@renovate renovate Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
dev.zacsweers.metro 1.2.11.3.0 age confidence
dev.zacsweers.metro:dev.zacsweers.metro.gradle.plugin 1.2.11.3.0 age confidence
dev.zacsweers.metro:runtime 1.2.11.3.0 age confidence

Release Notes

ZacSweers/metro (dev.zacsweers.metro)

v1.3.0

Compare Source

2026-07-01

New
  • [IR] Revamp graph-validation diagnostics with structured output. Taking some inspiration from Rust error messages.

    • Stable diagnostic IDs

    • Compact dependency chains

    • Aligned binding traces

    • Source snippets

    • help:/note: guidance in messages (replaces the previous (hint) sections)

    • Per-diagnostic docs links

    • Diagnostics now wrap to 100 columns and start on their own line after the compiler location prefix

    • Example plain output

      ExampleGraph.kt:9:3: error: 
      [Metro/MissingBinding] No binding found for String
      
        trace (in dev.zacsweers.example.ExampleGraph):
            String is requested at dev.zacsweers.example.ExampleGraph.a
      
        similar bindings:
            - CharSequence (Supertype. Type: Provided) - ExampleGraph.kt:12:3
      
        help: ensure String has an @​Inject constructor or is provided by an @​Provides or @​Binds
              declaration visible to ExampleGraph
        docs: https://zacsweers.github.io/metro/latest/diagnostics/#missingbinding
      
    • Example rich output

      (note that in rich terminals this would have color and markup too!)

      ExampleGraph.kt:9:3: error: 
        ╭─ [Metro/MissingBinding] No binding found for String
        │ → ExampleGraph.kt:9:3
        │
      9 │   val a: String
        │   ⌃⌃⌃⌃⌃⌃⌃⌃⌃⌃⌃⌃⌃
        ╰─
      
        trace (in dev.zacsweers.example.ExampleGraph):
            String is requested at dev.zacsweers.example.ExampleGraph.a
      
        similar bindings:
            • CharSequence (Supertype. Type: Provided) — ExampleGraph.kt:12:3
      
        help: ensure String has an @​Inject constructor or is provided by an @​Provides or @​Binds
              declaration visible to ExampleGraph
        docs: https://zacsweers.github.io/metro/latest/diagnostics/#missingbinding
      
  • [runtime/JVM] Add experimental runtime tracing for generated graph code, backed by AndroidX Tracing 2.x. Enable it with metro.enableRuntimeTracing. See the runtime tracing performance docs for setup guidance.

    • Metro will add the JVM-only metro-trace runtime helper artifact.
    • Graphs must bind an androidx.tracing.Tracer instances as a graph input as a parent tracer.
    • This is experimental as AndroidX Tracing 2.x is still actively being developed.
  • [gradle] Add a diagnosticsRenderMode Gradle option (AUTO/PLAIN/RICH) for diagnostic rendering.

    • AUTO defaults to rich output and falls back to plain output for non-empty NO_COLOR, --console=plain, and IDE-invoked builds.
    • The resolved mode is passed as a non-input compiler option, so render-mode changes do not invalidate compilation or poison build caches.
  • [docs] Add a generated Diagnostics Reference docs page for Metro's common graph validation diagnostics.

  • [FIR/IR] Add support for parameterless @Binds declarations for constructor-injected classes.

Enhancements
  • [FIR] Add a diagnostic to report mutable graph accessor properties.
  • [FIR] Add a diagnostic to report open classes annotated with @BindingContainer.
  • [FIR] Add a diagnostic to report scope annotations on graph factory parameters.
  • [IR] Add cycle-breaking help: guidance for dependency cycle errors, suggesting deferred types such as () -> T or Lazy<T>.
  • [IR/reporting] Collapse sibling missing-binding errors with identical trace tails to a ... same as for X continuation, and fully qualify type names only when two distinct types in one diagnostic share a simple name.
  • [docs] Improve docs around @GraphPrivate.
Fixes
  • [FIR] Improve diagnostic reporting locations for assisted factory parameter mismatches.
  • [FIR/IR] Fully qualify generated hint function names so scope classes with the same simple name don't collide.
  • [IR] Preserve substituted generic type arguments when generating assisted factory delegate parameters and dynamic graph container inputs.
  • [IR] Forward extension and context receivers when generated binding-container factories invoke the original binding function.
  • [IR] Fix dispatch receivers for generated graph factory functions and companion/object factory accessors.
  • [IR] Manage transitive simple class binding containers included by contributed binding containers when they have instance providers.
  • [IR] Patch declaration parents for generated @Binds mirror declarations so copied declarations remain attached to the correct generated class.
  • [IR] Preserve @GraphPrivate on cross-module mirror functions so private multibinding contributions do not leak through chained graph extensions.
  • [IR/Dagger interop] Report a clear diagnostic when an injected declaration or binding container from an upstream module was not processed by Metro, instead of crashing or reporting a generic compiler error.
  • [IR/Dagger interop] Fix an IR gen crash when an unscoped parent @Provides binding is injected as dagger.Lazy<T> from a child graph.
  • [IR/JS] Fix Map<K, () -> V> multibindings accessed through provider-style map factories on Kotlin/JS. Generated maps now store callable function values instead of Metro Provider objects.
  • [IR/KLIB] Fix generated @Binds implementations on KLIB backends. Metro now emits concrete identity bodies for inherited @Binds members where JS, Native, and Wasm validate abstract members during deserialization.
  • [IR/KLIB] Keep generated graph and shard backing fields private while preserving generated access through properties. This avoids backing-field visibility validation failures on KLIB backends.
  • [gradle] Fix multiplatform output collisions in MetroArtifactCopyTask.
Changes
  • Run Metro's functional compiler unit tests on JS.
  • Redundant checksum files are no longer published: checksums of .asc signature files (gradle/gradle#20232) and the sha256/sha512. If you rely on these, let me know.
  • Remove binding-contributions-as-containers flag, only binding-contributions-as-containers is supported going forward.
  • [gradle] Build against Gradle 9.6.1.
  • Test Kotlin 2.4.10-RC.
  • Test Kotlin 2.4.20-Beta1.
  • Test Android Studio Quail 2 RCs.
  • Test Android Studio Quail 3 canaries.
Contributors

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

Consider sponsoring Metro's development

Configuration

📅 Schedule: (UTC)

  • 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 these updates again.


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

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

@renovate renovate Bot added the dependencies Project dependencies related issue / PR label Jul 4, 2026
@ShadowRZ ShadowRZ enabled auto-merge (squash) July 4, 2026 12:27
@hanekokoro-bot

hanekokoro-bot Bot commented Jul 4, 2026

Copy link
Copy Markdown

Download Debug Artifacts: projectkafka-debug.zip

@hanekokoro-bot

hanekokoro-bot Bot commented Jul 4, 2026

Copy link
Copy Markdown
Warnings
⚠️

gradle/libs.versions.toml#L7 - A newer version of androidx.sqlite:sqlite-framework than 2.6.2 is available: 2.7.0

Generated by 🚫 dangerJS against 5643d19

@ShadowRZ ShadowRZ merged commit 87dbae4 into master Jul 4, 2026
7 checks passed
@ShadowRZ ShadowRZ deleted the renovate/metro branch July 4, 2026 12:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Project dependencies related issue / PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant