Update dependency dev.zacsweers.metro:runtime to v1.2.0#334
Merged
Conversation
a290a31 to
dcf350e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.1.1→1.2.0Release Notes
ZacSweers/metro (dev.zacsweers.metro:runtime)
v1.2.0Compare Source
2026-06-10
New
@InstallInand@EntryPointinterop.metro { interop { includeHilt() } }@DependencyGraph(<scope>)automatically merges every@InstallIn(<component>) @​Module(as a binding container) and@InstallIn(<component>) @​EntryPoint(as a supertype) whose<component>maps to<scope>.@DefineComponentinterfaces are resolved on demand by looking for an annotation on the same interface whose annotation class is itself annotated with@Scope(Hilt's own convention).@InstallIn+@EntryPoint/@Moduleas interop are supported.Enhancements
2.4.0-ij261-64that are a little tricky to decipher.inline@Providesdeclarations. TL;DR, they only make sense for public providers.@Providesbindings directly into generated graph implementations when possible, avoiding generated factory calls for literals, nulls, object singletons, enum entries, class literals, andconstproperty reads. This is enabled by default and can be disabled with theenable-provider-inliningcompiler flag if you see any issues.member-naming-strategycompiler option for shortening generated member names in generated code. AcceptsDESCRIPTIVE(default),TYPED(provider*/instance*/factory*), orMINIMAL(single collapsedprovider*naming). See docs/performance.md for guidance.inlinemodifiers from@Providesfunctions to factorynewInstance()functions.Factory<T>. In the future, Metro may generate these as value classes and this will allow better compiler optimization in those scenarios.buffered-ic-trackingcompiler option if it causes any issues.DeclarationFinderAPIs on Kotlin2.3.20+. These have more granular search scopes plus automatic IC tracking.metroEnvtask that writes human-readable Metro/Kotlin/Gradle environment reports for bug reports.DoubleChecksynchronization on JVM and native targets.DoubleCheckinstance's own monitor (like Dagger) instead of allocating aReentrantLockper instance, which also eliminates the spuriousReservedStackAccessJVM warning.synchronizedcan pin a virtual thread to its carrier if a scoped provider blocks during its one-time init (JEP 444).Fixes
nonPublicContributionSeverityifgenerateContributionProvidersis enabled. Note it will still fire on internal@ExposeImplBinding-annotated types.2026.1.3.@ContributesInto*declarations as supertypes when aggregating contributions.createDynamicGraph/createDynamicGraphFactory) sharing a single generated impl across call sites in different files. The shared impl was aprivate(on the JVM, package-private) nested class placed under one call site, so call sites in other packages failed at runtime withIllegalAccessError, and removing the owning file causedNoClassDefFoundError. Generated impls are now cached per-file.InstanceFactoryfield for graph inputs unless it's needed.@IntoSet/@IntoMap/@MapKeymultibinding annotations from external Dagger modules.Changes
@GraphPrivateto stable.@DefaultBindingto stable.generateContributionProviders(and@ExposeImplBinding) to stable.2.4.0. Note the runtime artifacts still target Kotlin2.3.0and Metro supports a wide range of compiler versions. See the compatibility docs for a full table of compatible versions.2.4.0pre-release builds. Kotlin2.4.0-dev-2124is still tested because this appears to be roughly where IntelliJ platform 2026.1.x branched from.2026.1.1.8).2026.1.2.4).2026.1.2.2026.1.3.Contributors
Special thanks to the following contributors for contributing to this release!
Consider sponsoring Metro's development
Go Knicks!
Configuration
📅 Schedule: (UTC)
🚦 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.