chore(deps): update dependency io.insert-koin.compiler.plugin to v1.0.2#225
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency io.insert-koin.compiler.plugin to v1.0.2#225renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
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.0.1→1.0.2Release Notes
InsertKoinIO/koin-compiler-plugin (io.insert-koin.compiler.plugin)
v1.0.2Compare Source
A correctness-focused maintenance release: it removes several false compile-safety errors in multi-module projects, fixes duplicate-hint KLIB failures on iOS/Native/WASM-JS, and hardens per-compilation state under parallel Gradle daemons.
🔑 Highlights
@Modulewhose dependency is provided by a sibling module (assembled only at@KoinApplication/startKoin) no longer fails withKOIN-D001. It defers to the entry-point graph, and surfaces a newKOIN-W002warning only when no complete closure is visible in the compilation (#51).@ComponentScanand cross-module top-level@Singlefunctions no longer emit duplicate hint declarations that broke KLIB serialization (#62).parametersOfhelpers, and outer DSL qualifiers are now understood (#36, #49, #61, #41).KoinApplication(configuration = koinConfiguration { … })now runs full-graph safety (#38).🐛 Fixes
False
KOIN-D001for cross-module (sibling) dependencies — #51 (KTZ-4256)In a layered multi-module build, a
@Moduleis compiled without visibility of the sibling modules a downstream@KoinApplication(modules = […])assembles alongside it. Per-module (A2) validation therefore reported a provider that lives in a sibling as a hardKOIN-D001missing dependency. Validation now defers an unresolved binding when a provider hint for the type exists elsewhere on the build graph, settling it authoritatively at the entry-point closure (A3) or at runtimecheckModules(). When no complete closure is present in the compilation (e.g. a leaf library module), it emits the newKOIN-W002warning instead of an error.Duplicate hint declarations broke iOS / Native / WASM-JS — #62 (KTZ-4365)
A cross-module
@ComponentScancovering a dependency module's package, and cross-module top-level@Singlefunctions, could register the same definition more than once — emitting duplicatecomponentscan_*/definition_function_*hint declarations. The JVM/DEX toolchain tolerated it (a D8 "multiple definitions" warning); KLIB serialization (iOS/Native/WASM-JS) rejected it with a hardSignatureClashDetectorerror. Definitions are now de-duplicated by class identity (and by type+qualifier for functions), so each is emitted exactly once per target.False
KOIN-D001for typed DSL definitions with non-createlambdas — #36, #49single<T> { existingInstance },single<T> { provideX() },viewModel { VM() }and similar shapes are now recognized as providingT, so compile-safety no longer reportsTas a missing definition. The user's lambda is left untouched.False
KOIN-D006for indirectparametersOfhelpers — #61A call site passing an opaque params lambda (e.g.
{ buildParams() }) no longer triggersKOIN-D006("forgotparametersOf"). The diagnostic now fires only when no params lambda is present at all.Qualifier lost on DSL
createdefinitions — #41An outer DSL qualifier (
single<T>(named("x")) { create(::T) }) is now propagated into the compile-safety hints, so qualified cross-module definitions resolve correctly instead of producing spurious mismatches.Compose
koinConfiguration { }entry point not validated — #38KoinApplication(configuration = koinConfiguration { modules(…) })is now recognized as a Koin entry point, enabling full-graph (A3) compile-safety for Compose apps. ThekoinConfigurationcall is only marked as an entry point — it is not rewritten, so runtime behavior is unchanged.Flaky / order-dependent behavior under parallel Gradle daemons — (KTZ-4414)
Plugin config flags and the
@PropertyValueregistry were held in process-global mutable state shared across every compilation in a Gradle daemon. Parallel or interleaved compilations could read another build's flags or have a@PropertyValuedefault dropped. State is now held per-compilation (thread-local, rebound onto the IR phase), matching the existing per-compilation message-collector handling.This changes generated code and can affect runtime resolution. Auto-detected bindings no longer include framework plumbing / marker supertypes:
kotlin.Any,org.koin.core.component.KoinComponent,KoinScopeComponent, andandroidx.lifecycle.ViewModel/AndroidViewModel. Previously a@KoinViewModel/@Singleclass implementing one of these could be auto-bound to the framework base type, lettingget<ViewModel>()/get<KoinComponent>()resolve to an arbitrary component (silent wrong-instance resolution). A definition is now registered under its own type and its genuine domain interfaces only.Explicit bindings are unaffected —
@Single(binds = [ViewModel::class])still binds exactly what you list. If you relied on auto-binding to one of the excluded supertypes, add it explicitly withbinds = [...].✅ Compatibility
📦 Install
plugins { id("io.insert-koin.compiler.plugin") version "1.0.2" }Full changelog: InsertKoinIO/koin-compiler-plugin@1.0.1...1.0.2
Configuration
📅 Schedule: (UTC)
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.