Skip to content

Adopt sk.ainet.multiplatform from SKaiNET-build-logic (asr-domain, transformer-core, llm-core) - #434

Merged
michalharakal merged 1 commit into
developfrom
feature/adopt-skainet-build-logic
Sep 12, 2026
Merged

michalharakal merged 1 commit into
developfrom
feature/adopt-skainet-build-logic

Conversation

@michalharakal

Copy link
Copy Markdown
Contributor

Summary

  • Migrates the three modules downstream ASR cartridges and asr-cli actually consume (asr-domain, transformer-core, llm-core) to the published sk.ainet.multiplatform/sk.ainet.npm-pins plugins from SKaiNET-build-logic, replacing hand-rolled target-list boilerplate.
  • Retires this repo's own buildSrc entirely -- it existed solely to provide sk.ainet.transformers.bom-coverage, now consumed from the same shared plugin (already reconciled to keep this repo's own POM-completeness fail-fast check, not drop it). llm-bom/build.gradle.kts needed zero changes.
  • Two real per-module deltas handled explicitly, not forced to plugin defaults: llm-core keeps androidNativeArm32() manual (it doesn't want androidNativeArm64, which the plugin's androidNative group would also add) alongside its existing hand-wired source-set hierarchy; llm-core opts out of explicitApi=true (a handful of pre-existing declarations in DecoderGgufWeightLoader.kt are missing visibility modifiers -- fixing that source is a separate follow-up, not part of this build-tooling change).
  • Scope, deliberately: the other ~24 modules (llm-agent, llm-inference/*, llm-runtime/*) are NOT touched here. Several (llm-runtime/kgemma: 257 lines/14 custom source sets; llm-runtime/kllama: 220/21) have far more extensive custom wiring deserving individual handling, and none are on the dependency path cartridge releases or asr-cli need.

Test plan

  • Full multi-project configuration green
  • asr-domain/transformer-core/llm-core compile clean on jvm + linuxX64 (+ androidNativeArm32 for llm-core)
  • Real jvmTest green for transformer-core and llm-core
  • publishToMavenLocal green
  • The real proof: all three downstream consumers -- asr-whisper-iree-cartridge, asr-moonshine-iree-cartridge, asr-cli -- verified green against the mavenLocal-published result via their own full check (+ asr-cli's shadowJar)

🤖 Generated with Claude Code

…ansformer-core, llm-core)

Migrates the three modules that downstream ASR cartridges and asr-cli
actually consume (asr-domain, transformer-core, llm-core) to the
published sk.ainet.multiplatform/sk.ainet.npm-pins convention plugins
from github.com/SKaiNET-developers/SKaiNET-build-logic, replacing their
hand-rolled plugins{}/kotlin{ android{...}; jvm(); ...; js{browser()}/
wasmJs{browser()} } target boilerplate with id("sk.ainet.multiplatform")
+ a per-module skainet { namespace = ... } block and a gradle.properties
skainet.targets declaration.

Retires this repo's own buildSrc entirely: it existed solely to provide
sk.ainet.transformers.bom-coverage, which is now consumed from the same
shared plugin jar (already reconciled to include this repo's own
POM-completeness fail-fast check -- both implementations' logic is kept,
not one picked over the other). llm-bom's own build.gradle.kts needed
zero changes -- id("sk.ainet.transformers.bom-coverage") now resolves
externally via pluginManagement.plugins{} instead of from buildSrc.

Two real per-module deltas handled, not blindly forced to the plugin's
defaults:
- llm-core wants androidNativeArm32 only, not the androidNativeArm64 the
  plugin's androidNative target group would also add -- declared
  manually in the module's own kotlin{} block instead (alongside its
  already-hand-wired registryBasedMain/nativeMain source-set hierarchy,
  kotlin.mpp.applyDefaultHierarchyTemplate=false, untouched).
- llm-core opts out of the plugin's explicitApi=true default
  (DecoderGgufWeightLoader.kt has a handful of pre-existing declarations
  missing visibility modifiers, never caught before since explicit API
  mode was never on here -- fixing that source is a separate, smaller
  follow-up, not folded into this build-tooling migration).

The other 24-ish modules in this repo (llm-agent, llm-inference/*,
llm-runtime/*, etc.) are NOT migrated here -- several have much more
extensive custom source-set wiring (llm-runtime/kgemma: 257 lines/14
custom source sets; llm-runtime/kllama: 220 lines/21) that deserves
individual, careful handling rather than a batch pass, and none of them
are on the dependency path cartridge releases/publishing or asr-cli
actually need.

Verified: full multi-project configuration green; asr-domain/
transformer-core/llm-core compile clean on jvm + linuxX64 (+
androidNativeArm32 for llm-core); real jvmTest green for transformer-core
and llm-core; publishToMavenLocal green; and -- the real proof -- all
three downstream consumers (asr-whisper-iree-cartridge,
asr-moonshine-iree-cartridge, asr-cli) verified green against the
mavenLocal-published result via their own full `check` (+ asr-cli's
shadowJar).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@michalharakal
michalharakal merged commit 4695631 into develop Sep 12, 2026
2 checks passed
@michalharakal
michalharakal deleted the feature/adopt-skainet-build-logic branch September 12, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant