Problem
skainet-test-groundtruth's kotlin { } block only declares android() and jvm() targets (skainet-test/skainet-test-groundtruth/build.gradle.kts). There's no macosArm64() / iosArm64() / linuxX64() / any Kotlin/Native target at all.
That makes GroundTruthValidator(ops, factory) unusable from any Kotlin/Native-only consumer — for example an out-of-tree GPU backend that only publishes K/N targets (macOS/iOS) and has no JVM target to fall back to. Right now the only way to get any ground-truth coverage for a backend like that is to hand-roll independent fixtures outside the module entirely, which duplicates exactly the hand-written-mapping problem #985/#986/#988 are already trying to avoid on the JVM/Python side.
Ask
Add at least one Kotlin/Native target (macosArm64 would cover the common Apple-Silicon dev case) to skainet-test-groundtruth, so GroundTruthValidator and its fixtures can be consumed by K/N-only modules the same way the skainet-backend-cpu src/goldenTest pattern already works on the JVM side.
Things worth checking first:
- Does GGUF fixture loading (
skainet-io-gguf) already build for K/N targets?
- Does anything in
commonMain currently reach for a jvm()-only API?
- Does the Docker/PyTorch fixture-generation step need to change, or only the Kotlin consumption side?
Context
Ran into this concretely while trying to wire ground-truth validation into an out-of-tree, Kotlin/Native-only MLX/Metal backend module — ended up redefining that task around a small hand-written independent NumPy fixture instead, since the module couldn't be depended on at all from a K/N-only target set.
Related: #984, #985, #988.
Problem
skainet-test-groundtruth'skotlin { }block only declaresandroid()andjvm()targets (skainet-test/skainet-test-groundtruth/build.gradle.kts). There's nomacosArm64()/iosArm64()/linuxX64()/ any Kotlin/Native target at all.That makes
GroundTruthValidator(ops, factory)unusable from any Kotlin/Native-only consumer — for example an out-of-tree GPU backend that only publishes K/N targets (macOS/iOS) and has no JVM target to fall back to. Right now the only way to get any ground-truth coverage for a backend like that is to hand-roll independent fixtures outside the module entirely, which duplicates exactly the hand-written-mapping problem #985/#986/#988 are already trying to avoid on the JVM/Python side.Ask
Add at least one Kotlin/Native target (
macosArm64would cover the common Apple-Silicon dev case) toskainet-test-groundtruth, soGroundTruthValidatorand its fixtures can be consumed by K/N-only modules the same way theskainet-backend-cpusrc/goldenTestpattern already works on the JVM side.Things worth checking first:
skainet-io-gguf) already build for K/N targets?commonMaincurrently reach for ajvm()-only API?Context
Ran into this concretely while trying to wire ground-truth validation into an out-of-tree, Kotlin/Native-only MLX/Metal backend module — ended up redefining that task around a small hand-written independent NumPy fixture instead, since the module couldn't be depended on at all from a K/N-only target set.
Related: #984, #985, #988.