Repository navigation
chore(deps): update dependency dev.zacsweers.metro:runtime to v1.5.0 - #513
Merged
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/dev.zacsweers.metro-runtime-1.x
branch
from
October 26, 2026 11:01
dd2c908 to
a90922a
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.4.5→1.5.0Release Notes
ZacSweers/metro (dev.zacsweers.metro:runtime)
v1.5.0Compare Source
2026-10-26
New
linuxX64.diagnostic-levelcompiler option to change the severity of Metro diagnostics reported in FIR. It works like kotlinc's-Xwarning-levelbut can also lower errors and use IDE-only levels. See changing diagnostic severity.function-inject-annotations-overridecompiler option to use dedicated annotations for top-level function injection. See custom function injection annotations.@Providesfunctions and properties. Both are dependencies and can be qualified.checkMainMetroHiddenDependencies(i.e., on CI). It writes a report and fails if it finds hidden contributions.scopesin the experimentalmetro.hiddenDependenciesDSL. EnablecheckOnCompilein the same block to run each check automatically after its Kotlin compilation, including when compilation fails. Automatic checks are disabled by default and may become the default in a future release.Enhancements
multibinding-getter-thresholdcompiler option.this, or the graph reference that a shard or switching provider already holds.providerOf(). On JVM that's one static call.InstanceFactory.invoke()also loaded its companion and boxed the value class.Providerdirectly. The inlineprovider()function they went through before added a type check and a second wrapper object at every site.graphfield when only its constructor used it.@Includesgraph accessors that returnProvider<T>or() -> Tcall the accessor directly. They used to cache a converted provider in a field or wrap the accessor in a new provider lambda.Lazyaccessors still cache their handle, so their value is computed once.@JvmStaticfunctions in objects and companion objects statically on JVM. This keeps companion classes out of the caller's constant pool. At runtime each call still goes through the companion, since the static method forwards to it. In a 500-module benchmark this made the generated graph classes 17% smaller.Providerto() -> Torsuspend () -> Tnow calls a small runtime helper. Each site used to generate its own wrapper lambda.@BindsOptionalOfbindings use anInstanceFactorythat holdsOptional.empty()instead of generating a local lambda each time.Fixes
2.5.0-dev-10106.@AggregatedDepsmarker changes or is removed.analyzeMetroGraphwhen one qualified map depends on another.@Injectclass. A qualified optional binding now uses its default, and other qualified requests report a missing binding.MissingRuntimeCoroutineserrors for injected top-level functions pointing at0:0in a generated file. They're now reported on the function.Map<Class<*>, V>withenableKClassToClassMapKeyInteropenabled.2.5.0-dev-10106.@Includesgraph parameter in two fields when the included graph has graph extensions.nullas documented.@ContributesToannotation is removed and restored.IrLinkageErrorin generatedSubCircuitUI factories on Kotlin/Native with Kotlin2.5.0-Beta1.2.5.0-Beta1selecting a compat implementation built for newer2.5.0dev builds. Kotlin Beta and RC releases now map to the dev compat implementation that matches their branch point.MetroAppComponentFactorycrashing with aClassCastExceptionwhen Android starts the app with a plainApplicationfor a full backup or restore.Changes
37and AGP9.1.1.2.11.0and JetBrains Compose to1.12.2.metrox-viewmodeldropsiosX64,macosX64,tvosX64, andwatchosX64.metrox-viewmodel-composedropsiosX64andmacosX64.androidx.annotationto1.11.0andandroidx.coreto1.19.1.2.5.0-dev-10106.@MapKeyon a member with no binding annotation as a dedicatedMAP_KEY_WITHOUT_INTO_MAPerror. If another tool binds the member into a map, lower it with thediagnostic-levelcompiler option or@Suppress. Binding declarations like@Provideskeep the existing error.@MapKeyon a class with no Metro contribution annotation as a dedicatedMAP_KEY_WITHOUT_CONTRIBUTES_INTO_MAPerror. If another tool binds the class into a map, lower it to a warning with thediagnostic-levelcompiler option.omit-redundant-mirrorsby default on Kotlin 2.4.0 and newer to omit generated declaration mirrors when compiler metadata and declaration finders provide the same information. It remains disabled by default on older Kotlin versions. Disable it withcompilerOptions.disable("omit-redundant-mirrors")in themetroDSL.enableTopLevelFunctionInjectionis disabled by default for now on all Kotlin versions because it makes incremental builds recompile more files. If you use top-level function injection, enable it withenableTopLevelFunctionInjection.set(true)in themetroDSL. See incremental compilation perf docs.2026.2.1.8).2026.2.3.2.0.4.2.5.0-Beta2.Contributors
Special thanks to the following contributors for contributing to this release!
Consider sponsoring Metro's development
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.