chore(deps): update dependency org.kodein.mock.mockmp to v3 - #218
Open
renovate-self-hosted-apter[bot] wants to merge 1 commit into
Open
chore(deps): update dependency org.kodein.mock.mockmp to v3#218renovate-self-hosted-apter[bot] wants to merge 1 commit into
renovate-self-hosted-apter[bot] wants to merge 1 commit into
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Join our Discord community for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
renovate-self-hosted-apter
Bot
force-pushed
the
renovate/major-mockmp
branch
from
December 17, 2024 08:08
839c617 to
aa0d20a
Compare
renovate-self-hosted-apter
Bot
force-pushed
the
renovate/major-mockmp
branch
from
February 10, 2025 22:07
aa0d20a to
b6e51eb
Compare
renovate-self-hosted-apter
Bot
force-pushed
the
renovate/major-mockmp
branch
3 times, most recently
from
March 11, 2025 20:39
d045395 to
7835104
Compare
renovate-self-hosted-apter
Bot
force-pushed
the
renovate/major-mockmp
branch
from
July 29, 2025 06:14
7835104 to
ca049a3
Compare
renovate-self-hosted-apter
Bot
force-pushed
the
renovate/major-mockmp
branch
from
July 30, 2026 17:51
ca049a3 to
ac4e4d0
Compare
renovate-self-hosted-apter
Bot
force-pushed
the
renovate/major-mockmp
branch
2 times, most recently
from
July 31, 2026 14:30
8a440c5 to
db2c206
Compare
renovate-self-hosted-apter
Bot
force-pushed
the
renovate/major-mockmp
branch
from
August 9, 2026 22:47
db2c206 to
dbacf79
Compare
renovate-self-hosted-apter
Bot
force-pushed
the
renovate/major-mockmp
branch
3 times, most recently
from
August 24, 2026 10:53
7c79bad to
3b837b1
Compare
renovate-self-hosted-apter
Bot
force-pushed
the
renovate/major-mockmp
branch
2 times, most recently
from
August 25, 2026 16:53
1addec2 to
de2ff03
Compare
renovate-self-hosted-apter
Bot
force-pushed
the
renovate/major-mockmp
branch
from
August 26, 2026 13:12
de2ff03 to
31f7931
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.17.0→3.5.1-kt2.3Release Notes
kosi-libs/MocKMP (org.kodein.mock.mockmp)
v3.5.1-kt2.3: 3.5.1-kt2.33.5.1-kt2.3
The Kotlin 2.3 build of 3.5.1 — same sources, compiled and published against Kotlin 2.3.21 instead of 2.4.10. KSP stays at 2.3.10, which pairs with both.
Use this if your project is still on Kotlin 2.3:
plugins { kotlin("multiplatform") version "2.3.21" id("com.google.devtools.ksp") version "2.3.10" id("org.kodein.mock.mockmp") version "3.5.1-kt2.3" }Everything in the 3.5.1 notes applies unchanged — no breaking changes.
Fixes
Processor<NeverTouched>'s member types used to be seeded from the bare declaration, so a type-parameter member resolved toProcessor's own bound instead ofNeverTouched— leavingisAny<NeverTouched>()with noprovidePlaceholderbranch to resolve through at runtimeerror(...)with fake-flavoured advice ("register a@FakeProvider") that doesn't apply to something never requested by name, and the runtime wrapped that message twice on the way out, ending in an issue-tracker link even though the processor already knew the exact reason. It now throws a dedicatedMocKMPNoPlaceholderException, rethrown unwrapped, namingmocker.useReference(...)as the fix@FakeProvidernow resolves throughprovidePlaceholdertoo. It used to have no branch at all — removed from the Fake candidates the moment it was collected, but never added as a Placeholder either — soisAny<ProvidedType>()failed at runtime despite a valid user-supplied value existing for itThe only difference from 3.5.1 is the toolchain — same as every prior
-kt2.3build. No dependency version, resolved URL or integrity hash changes.Full Changelog: kosi-libs/MocKMP@v3.5.0-kt2.3...v3.5.1-kt2.3
v3.5.0: 3.5.03.5.0
isInstanceOfnow takes aKClassargument, not a type parameterisInstanceOf<T>()'s reifiedTdoubled as the key used to fetch a placeholder return value, via the generatedprovidePlaceholder(KClass<*>)dispatcher — but that dispatcher only has a branch for a type the processor actually saw declared somewhere (a mocked function's parameter/property type, or an enumerable sealed subtype). A type written only insideisInstanceOf<AdminCallback>()has no such branch, so the constraint threw at runtime, even though it compiled cleanly.isInstanceOfnow takes the class to check against as a regularKClass<*>argument. It is still areifiedfunction, but that generic type argument must never be given explicitly:The second form still compiles — nothing stops you from writing it — but it will throw
Could not find a way to get a reference of AdminCallbackat runtime, the exact bug this release fixes. Its reifiedTmust stay inferred from the surrounding call (normally the mocked function's own parameter type); theKClass<*>argument only drives the instance check, it has no bearing on whatTresolves to. Writing an explicit type argument alongside it reintroduces the same broken placeholder lookup — the failure message now names this specific mistake if it happens, but the fix is to never write the type argument in the first place.Action required: find every
isInstanceOf<Type>()call and rewrite it asisInstanceOf(Type::class)— with no<Type>anywhere in the call.Fixes
isInstanceOfsignature change above, plus a runtime message that now names an explicit type argument as the likely cause when placeholder lookup still fails insideisInstanceOfNullPointerException: null(#98). KSP2's error-type declaration for an unresolvable reference is itself aKSClassDeclarationwith no qualified name, so it passed every existing type check and only failed on a barequalifiedName!!, deep inside placeholder generation — often for a type the user's own code never names directly. An implicit Placeholder now degrades to a throwing stub instead of aborting the build; an explicit@Fake/@Mocktarget fails with a clear diagnostic naming the missing dependencyDocumentation
mocking.adocdocuments theisInstanceOfgotcha: callisInstanceOf(Type::class), neverisInstanceOf<Type>()Full Changelog: kosi-libs/MocKMP@v3.4.0...v3.5.0
v3.5.0-kt2.3: 3.5.0-kt2.33.5.0-kt2.3
The Kotlin 2.3 build of 3.5.0 — same sources, compiled and published against Kotlin 2.3.21 instead of 2.4.10. KSP stays at 2.3.10, which pairs with both.
Use this if your project is still on Kotlin 2.3:
plugins { kotlin("multiplatform") version "2.3.21" id("com.google.devtools.ksp") version "2.3.10" id("org.kodein.mock.mockmp") version "3.5.0-kt2.3" }Everything in the 3.5.0 notes applies unchanged, including the breaking change:
isInstanceOfnow takes aKClassargument, not a type parameterisInstanceOf<T>()'s reifiedTdoubled as the key used to fetch a placeholder return value, but the generated dispatcher only has a branch for a type the processor actually saw declared somewhere — so a type written only insideisInstanceOf<AdminCallback>()threw at runtime, even though it compiled cleanly.isInstanceOfnow takes the class to check against as a regularKClass<*>argument, and its still-reified generic type argument must never be given explicitly:Action required: find every
isInstanceOf<Type>()call and rewrite it asisInstanceOf(Type::class)— with no<Type>anywhere in the call.Also fixed
NullPointerException: null(#98). An implicit Placeholder now degrades to a throwing stub instead of aborting the build; an explicit@Fake/@Mocktarget fails with a clear diagnostic naming the missing dependency insteadisInstanceOf's failure message now names an explicit type argument as the likely cause, when placeholder lookup still fails inside itThe only difference from 3.5.0 is the toolchain — same as every prior
-kt2.3build. No dependency version, resolved URL or integrity hash changes.Full Changelog: kosi-libs/MocKMP@v3.4.0-kt2.3...v3.5.0-kt2.3
v3.4.0: 3.4.03.4.0
A correctness-and-safety release for mocking and faking: mocks are no longer silently duplicated as fakes, a generic type's placeholder is now instantiated at the exact type a caller needs instead of a widened bound, generated code opts in on the caller's behalf wherever it needs to, and it now suppresses deprecation warnings it has no way to avoid.
fake<T>()/mocker.mock<T>()also now refuse to serve a type nothing requested directly.Features
Placeholderkind, replacing accidental transitive mocks/fakes. A mocked interface's own member types used to be silently seeded into bothtoMockandtoFake, generating a redundant, unusedMockXxx/fakeXxx()for every type reached only that way — adding a property to a mocked interface would silently produce both a mock and a fake of its type. Placeholders now carry constructor transitivity only, never abstract-member transitivity (their members throw instead of being faked), andprovidePlaceholderprefers a Fake, then a Mock, then a Placeholder. A mock is now only ever generated for an explicit@Mock/@UsesMocksrequestkotlin.SubclassOptInRequired(e.g. kotlinx.serialization'sSerialDescriptor) orkotlin.RequiresOptIn(including through lexical nesting, e.g.SerialKind's sealed resolution landing onPolymorphicKind.OPEN, itself@ExperimentalSerializationApi) — used to fail to compile. Generated declarations now carry@OptInwherever they implement, extend, or mention a marked declaration/* Required by: ... */comments on generated declarations, naming the annotation site (@Mock,@Fake,@UsesMocks,@UsesFakes) and, for a transitively-reached type, each hop that led to it — previously this chain was only ever surfaced in a compile errorFixes
Id<Any?>) — which failed to typecheck wherever a constructor actually needed a specific instantiation (Id<String>). Keyed by the exact type now, mirroring how fakes already worked; the same bug in mocked-generic-interface construction is fixed alongside itfake<T>()/mocker.mock<T>()only serve explicitly-requested types. A type reached only transitively — a constructor parameter of another explicitly-faked type, say — used to be reachable throughfake<T>()anyway, even though nothing asked for it directly; if the type that needed it changed shape later, an unrelated test could silently start failing or returning something unrelated. Both accessors now only list types requested directly via@Fake/@UsesFakes/@Mock/@UsesMocks— a transitive dependency still gets its function generated and used internally, it just isn't exposedDEPRECATION/DEPRECATION_ERRORit has no way to avoid. A mocked/faked declaration's own signature — supertype, member types, constructor arguments, enum entries,KClass/typeOfdispatch keys — routinely gets mentioned by generated code, and can itself be@Deprecatedwithout the generated file being a place the user could act on that warning. Every generated file now opens with@file:Suppress("DEPRECATION", "DEPRECATION_ERROR")FakeXxximplementation class isprivate, and declared after itsfakeXxx()function. It used to be emitted at the module's own visibility, ahead of the function that builds it — leaking an implementation detail into the faked type's own package (risking a name collision with user code) even thoughfake<T>()is the only supported way to obtain oneInternal
Mockerthrows to unwind anevery {}/verify {}block no longer fills in a stack trace on the JVM — a small, always-on cost it never needed, since the exception is always caught internallyFull Changelog: kosi-libs/MocKMP@v3.3.0...v3.4.0
v3.4.0-kt2.3: 3.4.0-kt2.33.4.0-kt2.3
The Kotlin 2.3 build of 3.4.0 — same sources, compiled and published against Kotlin 2.3.21 instead of 2.4.10. KSP stays at 2.3.10, which pairs with both.
Use this if your project is still on Kotlin 2.3:
plugins { kotlin("multiplatform") version "2.3.21" id("com.google.devtools.ksp") version "2.3.10" id("org.kodein.mock.mockmp") version "3.4.0-kt2.3" }Everything in the 3.4.0 notes applies unchanged:
MockXxx/fakeXxx()pair — they now go through a distinctPlaceholderkind, which only ever throws if reached, instead of a mock or fake nothing asked forkotlin.SubclassOptInRequired- orkotlin.RequiresOptIn-marked declaration (e.g. kotlinx.serialization'sSerialDescriptor/SerialKind)MockXxx/fakeXxx()/placeholderXxx()declarations carry a/* Required by: ... */comment naming the annotation site and, for a transitively-reached type, each hop that led to itfake<T>()/mocker.mock<T>()now only serve types requested directly via@Fake/@UsesFakes/@Mock/@UsesMocks— a transitively-reached type is no longer silently exposed through themDEPRECATION/DEPRECATION_ERRORit has no way to avoid, so a project withallWarningsAsErrorson can mock/fake a deprecated type without the generated file itself failing the buildFakeXxximplementation class isprivateand declared after itsfakeXxx()function, instead of leaking at the module's own visibilityThe only difference from 3.4.0 is the toolchain, plus the
yarn.lockthat the 2.3.21 toolchain's bundled yarn writes — same as every prior-kt2.3build. No dependency version, resolved URL or integrity hash changes.Full Changelog: kosi-libs/MocKMP@v3.3.0-kt2.3...v3.4.0-kt2.3
v3.3.0: 3.3.03.3.0
A faking-focused feature release. The set of types the processor can produce a fake for grows substantially — objects, annotation classes, self-referential interfaces, and
kotlinx.coroutinestypes (Flow,Job,StateFlow, ...) — alongside fixes to@Fake/@UsesFakeshandling of nullable and function types, and toisAny()for a type only ever referenced nullably. The Gradle plugin is now also published to Maven Central.Features — more types can be faked
Objects and annotation classes are now fakeable:
fake<MySingleton>()returns the singleton itself, and an annotation class is faked by calling its constructor exactly like any other classSelf-referential interfaces and abstract classes can now be faked. A faked property whose value is itself a nested fake is now built lazily, on first read, instead of eagerly at construction — which is what makes this work:
fake<Node>()builds only the root; each further.parentis built the moment it's read, sonode.parent.parent.parentworks even though nothing bounds how deepNodecan gokotlin.Nothingis now a builtin: aNothing-typed member throwsUnsupportedOperationExceptionwhen reached, instead of the processor emitting code the compiler rejectsKClass<T>/Class<T>are now builtins too —String::classforKClass<String>, not a context-free literal — which is what makes an annotation class with such a parameter fakeable at allFeatures —
kotlinx.coroutinestypes are faked as builtinsFlow,SharedFlow/MutableSharedFlow,StateFlow/MutableStateFlow,Channeland friends,Job/CompletableJob,Deferred/CompletableDeferred,CoroutineScope,Mutex,Semaphore, andCoroutineContextare now faked as real, inert instances (emptyFlow(),Job(),Mutex(), ...) instead of generating a broken or useless implementation class.StateFlow<T>recurses into a real fake ofT—StateFlow<User>holds a fakedUser,StateFlow<User?>holdsnullkotlinx.coroutines-specific placeholder branches are gated on the consuming module's classpath, so a project that doesn't depend on it is unaffected@FakeProvidercan now override how any builtin is faked, including these — previously a builtin always wonFixes
@Fake/@UsesFakeson a nullable or function-typed target used to be handled inconsistently with how the same type is faked when reached transitively: a nullable target could be faked as its non-null builtin literal instead ofnull(and, for a builtin likeString?, broke the whole compilation via a duplicate placeholder branch), and a function-typed target was rejected outright even though its value is just an inline lambda. Both now resolve the same way a transitively-discovered occurrence of the same type already didisAny()(and every other constraint) threw for a type only ever referenced nullably. A mocked interface parameter typed e.g.Suit?, with no other reference toSuitanywhere, madeisAny()throwCould not find a way to get a reference of Suit— the processor had skipped generating a placeholder forSuit, reasoning thatnullalready covered its one nullable use, butisAny<T>()resolves its placeholder through the erasedT::class, which can't tell "TwasSuit" apart from "TwasSuit?" (typeOf<T>()would, but can't be used here — it fails to compile wherever the same reifiedTmight be inferred as a suspend functional type, KT-47562). A placeholder is now seeded for the type either way; fake value construction for an actually-nullable property is unaffected — it still fakes as plainnulleverywhere elsePublishing
buildscript {}block, or any setup that mirrors dependencies into an internal repository rather than resolving plugins from the PortalFull Changelog: kosi-libs/MocKMP@v3.2.0...v3.3.0
v3.3.0-kt2.3: 3.3.0-kt2.33.3.0-kt2.3
The Kotlin 2.3 build of 3.3.0 — same sources, compiled and published against Kotlin 2.3.21 instead of 2.4.10. KSP stays at 2.3.10, which pairs with both.
Use this if your project is still on Kotlin 2.3:
plugins { kotlin("multiplatform") version "2.3.21" id("com.google.devtools.ksp") version "2.3.10" id("org.kodein.mock.mockmp") version "3.3.0-kt2.3" }Everything in the 3.3.0 notes applies unchanged:
kotlinx.coroutinestypes (Flow,Job,StateFlow,Mutex, ...) are faked as real, inert instances instead of a generated implementation@Fake/@UsesFakeson a nullable or function-typed target is now handled consistently with a transitively-discovered occurrence of the same typeisAny()no longer throws for a type only ever referenced nullablyThe only difference from 3.3.0 is the toolchain, plus the
yarn.lockthat the 2.3.21 toolchain's bundled yarn writes: it collapses into one shared-key entry the blocks the 2.4.10 one duplicates per alias. No dependency version, resolved URL or integrity hash changes.Full Changelog: kosi-libs/MocKMP@v3.2.0-kt2.3...v3.3.0-kt2.3
v3.2.0: 3.2.03.2.0
A feature release, built on 3.1.0's correctness work. Faking is no longer limited to types that can be constructed: interfaces and abstract classes are faked by implementing them. And when a type genuinely cannot be faked, the error now names the chain of your declarations that required it. No API changes, and nothing that faked or mocked before behaves differently.
Features — faking interfaces and abstract classes
@Fakeand@UsesFakesnow accept interfaces and abstract classes:fake<UserRepository>()returns an instance of aFakeUserRepositoryclass generated next to the fake functionUnitdo nothing, functions returning a value return a fake of their return type, and properties hold a fake of theirs (avarkeeps whatever is later assigned)fun <T> convert(value: T): Tis faked asconvert(value) = value. With no such parameter (fun <T> get(): T) it is the one member that cannot be faked and throws when called; the rest of the fake is unaffectedkotlin.FunctionN, which Kotlin/JS forbids implementing — but the error now points at@Mock, which mocks a function type as a callable mockFeatures — diagnostics
A fake is rarely requested directly: it is reached through constructor parameters and, now, through abstract members. Naming only the type that failed left you with nothing of yours to look at, so every "cannot fake" diagnostic now prints the chain that required it:
The chain is recorded as the graph is walked, not reconstructed at failure time — a type can be discovered during expansion and only turn out to be unfakeable at generation
Placeholders seeded implicitly from a mocked interface's signatures are covered too. They never fail the build, so their path reaches you through the generated stub's runtime message — the case where none of the types involved appear in your code at all
Documentation
mocking.adocnow documents it: only abstract members are mocked, a concrete member keeps its real implementation, and the generated mock runs the class's constructor with a faked value per parameterFull Changelog: kosi-libs/MocKMP@v3.1.0...v3.2.0
v3.2.0-kt2.3: 3.2.0-kt2.33.2.0-kt2.3
The Kotlin 2.3 build of 3.2.0 — same sources, compiled and published against Kotlin 2.3.21 instead of 2.4.10. KSP stays at 2.3.10, which pairs with both.
Use this if your project is still on Kotlin 2.3:
plugins { kotlin("multiplatform") version "2.3.21" id("com.google.devtools.ksp") version "2.3.10" id("org.kodein.mock.mockmp") version "3.2.0-kt2.3" }Everything in the 3.2.0 notes applies unchanged:
@Fakeand@UsesFakesaccept interfaces and abstract classes, faked by a generated implementation rather than by a constructor callThe only difference from 3.2.0 is the toolchain, plus the
yarn.lockthat the 2.3.21 toolchain's bundled yarn writes: it collapses into one shared-key entry the blocks the 2.4.10 one duplicates per alias. No dependency version, resolved URL or integrity hash changes.Full Changelog: kosi-libs/MocKMP@v3.1.0-kt2.3...v3.2.0-kt2.3
v3.1.0: 3.1.03.1.0
A correctness and coverage release. No API changes: every fix below is behavioural, and the suite that guards them grew from 311 to 442 test results across the eight test projects.
Fixes — processor
@Mock/@Fakeproperties are now injected. A base class holding the mocks every test needs works as documentedGenData<GenData<T>>and friends resolve@UsesFakesKClass, fixing aClassCastExceptionon Kotlin/Wasm@Deprecatedis no longer propagated onto generated overrides, so mocking a deprecated member stops warning at the mockkotlin.Exception→java.lang.Exceptionon JVM) is generated intofake.java.langrather thanjava.lang, which the JVM forbids user code from contributing to@FakeProviderFixes — runtime
equals/hashCodeare never mocked — routing them through theMockerrecursed into the very lookup that invoked themReferencesis cleared onreset(), so a placeholder cannot survive into the next testbackPropertyno longer requires akotlin.AnyplaceholderisValidfails cleanly on a wrong-typed argument instead of throwing out of the surroundingevery/verifyFixes — Gradle plugin
actualtargets()rejects an unknown target name rather than silently filtering everything outBehaviour worth knowing
equals/hashCodeis no longer possible, by design.toStringremains mockablemockFunctionN(mocker)calls still key on the platform's own renderingDocumentation
facking.adocrenamed tofaking.adoc, with a redirect so the published URL keeps workingFull Changelog: kosi-libs/MocKMP@v3.0.1...v3.1.0
v3.1.0-kt2.3: 3.1.0-kt2.33.1.0-kt2.3
The Kotlin 2.3 build of 3.1.0 — same sources, compiled and published against Kotlin 2.3.21 instead of 2.4.10. KSP stays at 2.3.10, which pairs with both.
Use this if your project is still on Kotlin 2.3:
plugins { kotlin("multiplatform") version "2.3.21" id("com.google.devtools.ksp") version "2.3.10" id("org.kodein.mock.mockmp") version "3.1.0-kt2.3" }Everything in the 3.1.0 notes applies unchanged: the processor, runtime and Gradle plugin fixes, and the test suite that grew from 311 to 442 results. Verified on 2.3.21 —
:tests-projects:checkfrom clean gives the same 442 results with no failures, and the processor and plugin suites pass.The only difference from 3.1.0 is the toolchain, plus a regenerated
yarn.lock: the 2.3.21 toolchain bundles a different yarn, which writes the file with shared keys where the previous one duplicated a block per alias. No dependency version, resolved URL or integrity hash changes.Full Changelog: kosi-libs/MocKMP@v3.0.1-kt2.3...v3.1.0-kt2.3
v3.0.1: 3.0.13.0.1
Fixes
Unitno longer emit a redundantUnitbody, which produced an "Expression is unused — Redundant 'Unit'" warning in consuming projects — e.g. a faked(String) -> Unitnow generates{ _, -> }instead of{ _, -> Unit }Improvements
androidComponentsgenerated-source hookup is now also wired up for the main source set of Kotlin Multiplatform Android targets (previously only applied to test source sets), and the wiring is shared through a singleinstallExtractor()helper instead of being duplicatedOther
Full Changelog: kosi-libs/MocKMP@v3.0.0...v3.0.1
v3.0.1-kt2.3: 3.0.1-kt2.33.0.1-kt2.3
This is a Kotlin 2.3.21 build of MocKMP 3.0, for projects that cannot yet move to Kotlin 2.4. It carries the same AGP 9 requirement as 3.0.0.
Fixes
Unitno longer emit a redundantUnitbody, which produced an "Expression is unused — Redundant 'Unit'" warning in consuming projects — e.g. a faked(String) -> Unitnow generates{ _, -> }instead of{ _, -> Unit }Improvements
androidComponentsgenerated-source hookup is now also wired up for the main source set of Kotlin Multiplatform Android targets (previously only applied to test source sets), and the wiring is shared through a singleinstallExtractor()helper instead of being duplicatedOther
Full Changelog: kosi-libs/MocKMP@v3.0.0...v3.0.1-kt2.3
v3.0.0: 3.0.03.0.0
This release migrates the MocKMP Gradle plugin to the new Android Gradle Plugin APIs and is incompatible with AGP 8 or earlier. Only update to MocKMP 3.0 if you are also updating your project to AGP 9.
Breaking Changes
TestedExtension/variant APIs to the newandroidComponents(AndroidComponentsExtension) andCommonExtensionAPIs, adding proper support for the new host/device test source sets (HasHostTests,HasDeviceTests,HasUnitTest,HasAndroidTest)com.android.kotlin.multiplatform.libraryplugin (Android as a genuine Kotlin Multiplatform target) alongside the classiccom.android.library+kotlin("android")setupImprovements
websiteandvcsUrlto the Gradle plugin metadata for better documentation linking on the Gradle Plugin PortalFull Changelog: kosi-libs/MocKMP@v2.1.0...v3.0.0
v2.1.0: 2.1.02.1.0
Fixes
fakes.kt: two faked types with the same simple name in different packages (e.g.foo.Dataandbar.Data) produced duplicatetype_Dataproperties andwhenbranches that failed to compile. Generatedtype_*identifiers — and the generatedfakeXxx()function names — are now package-qualified (type_foo_Data,type_bar_Data) (#87)isAny()/isEqual()/ etc. placeholder mechanism with real, KSP-generated placeholder instances. Kotlin 2.3 defaultsgenericSafeCasts=truefor unoptimized Kotlin/Native binaries (KT-68165), which turned the old placeholder into a hardClassCastExceptionon every native test targetImprovements
kosi-publishwithmaven-publishacross all modules and unified Gradle configuration; added support for additional targets (watchOS, tvOS, wasmJs)MocKMPProcessorwas split from a single 420-line function into a documented, phase-organized set of KSP round functions — no behavior changeFull Changelog: kosi-libs/MocKMP@v2.0.2...v2.1.0
v2.0.2: 2.0.2What's Changed
Fixes
Related Gradle changes
gradle/guides#419
gradle/gradle#31407
Full Changelog: kosi-libs/MocKMP@v2.0.1...v2.0.2
v2.0.1: 2.0.1What's Changed
New Contributors
Full Changelog: kosi-libs/MocKMP@v2.0.0...v2.0.1
v2.0.0: 2.0.0Update to Kotlin 2.0
MIGRATION GUIDE
This updates brings breaking changes in the way MocKMP is applied to projects, as well as how mocks, fakes and injectors are accessed from common sources.
It does NOT bring any change in the mocks configuration / verifications as well as how the fakes and injectors work.
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, on day 1 of the month ( * 0-3 1 * * ) (UTC), 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.
This PR has been generated by Renovate Bot.