Final gate of #1136 — runs after all other sub-issues close, and is the last one to close. Nothing in the ternary effort is "done" until the licensing, attribution, and OSS-compliance story of the vendored code is verifiably in order — in the repo and in the shipped artifacts.
Why a dedicated issue
This effort introduced the repo's first vendored third-party source (hs_ml_ternary_neon.c from anjaustin/neogpu, MIT) and code written against a second MIT upstream (BitNet.cpp, vendored in NeoGPU's tree) for the I2_S wire format (#1140). MIT is permissive but not obligation-free: the copyright notice and license text must accompany "copies or substantial portions" — which includes compiled copies inside our published jars, klibs, and AARs, not just the source tree.
Repo-level compliance
Artifact-level compliance (the part reuse lint cannot see)
Close-out
Definition of done: a third party auditing a shipped SKaiNET release can trace every vendored byte to its upstream, license, and copyright holder without asking us.
Final gate of #1136 — runs after all other sub-issues close, and is the last one to close. Nothing in the ternary effort is "done" until the licensing, attribution, and OSS-compliance story of the vendored code is verifiably in order — in the repo and in the shipped artifacts.
Why a dedicated issue
This effort introduced the repo's first vendored third-party source (
hs_ml_ternary_neon.cfrom anjaustin/neogpu, MIT) and code written against a second MIT upstream (BitNet.cpp, vendored in NeoGPU's tree) for the I2_S wire format (#1140). MIT is permissive but not obligation-free: the copyright notice and license text must accompany "copies or substantial portions" — which includes compiled copies inside our published jars, klibs, and AARs, not just the source tree.Repo-level compliance
reuse lintpasses on the repo (REUSE.tomlprecedence = "closest"+ the.licensesidecar undernative/src/vendor/neogpu/); wire it into CI so it stays passingnative/src/vendor/neogpu/README.mdagainstanjaustin/neogpu@0846b24, and that "Local modifications: none" is still trueLICENSES/holds every license the tree now references; drop or justify the currently-unreferenced entries (Apache-2.0.txt,CC0-1.0.txt) so the directory reflects realityI2sRepack.kt/Constants.kt, following the existing llama.cpp precedent in the GGUF constants header — the layout rule was reimplemented against their sourcesArtifact-level compliance (the part
reuse lintcannot see)skainet-backend-native-cpu(jar with bundledlibskainet_kernels.*, klibs embedding the static archive) andskainet-backend-jni-cpu(AAR with both.sovariants) ship compiled NeoGPU code → each published artifact must carry the NeoGPU MIT notice: aMETA-INF/third-party notices file (or equivalent for AAR), listing NeoGPU (and BitNet.cpp if any of its code lands beyond format knowledge)<licenses>of the affected artifacts reviewed — SKaiNET's own MIT stays, third-party notices travel with the artifact, not just the repoUpstream courtesies (agreed in anjaustin/neogpu#1)
-marchpinning insight, layout-flavor findings)QK_I2_Sarchitecture-dependence discovery (x86=128 / ARM=64) — it affects anyone consuming stock GGUFsClose-out
microsoft/bitnet-b1.58-2B-4TGGUF (the [ternary-f32] Phase 4: GGUF I2_S (type 36) import with group→sequential repack, keep-packed BITNET_B1_58 #1140 caveat) and record the confirmedI2sGgufLayoutdefault in the docsDefinition of done: a third party auditing a shipped SKaiNET release can trace every vendored byte to its upstream, license, and copyright holder without asking us.