Skip to content

build(deps): Bump skainet from 0.18.0 to 0.19.1#59

Open
dependabot[bot] wants to merge 1 commit intodevelopfrom
dependabot/gradle/skainet-0.19.1
Open

build(deps): Bump skainet from 0.18.0 to 0.19.1#59
dependabot[bot] wants to merge 1 commit intodevelopfrom
dependabot/gradle/skainet-0.19.1

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Apr 21, 2026

Bumps skainet from 0.18.0 to 0.19.1.
Updates sk.ainet.core:skainet-lang-core from 0.18.0 to 0.19.1

Changelog

Sourced from sk.ainet.core:skainet-lang-core's changelog.

[0.19.1] - 2026-04-21

Fixed

  • Broken POM for skainet-backend-cpu: The 0.19.0 POM for sk.ainet.core:skainet-backend-cpu-* declared a runtime dependency on sk.ainet:skainet-backend-api-jvm:unspecified — wrong group coordinate and no valid version, because skainet-backend-api was not configured to publish and the root allprojects { group = "sk.ainet" } disagreed with the GROUP=sk.ainet.core used by vanniktech's maven publish plugin. Consumers pulling 0.19.0 hit unresolved-dependency errors. Fixed by:
    • Applying vanniktech.mavenPublish and setting POM_ARTIFACT_ID=skainet-backend-api on skainet-backend-api so it is actually published alongside the BOM entry that already referenced it.
    • Aligning allprojects { group = "sk.ainet.core" } with the GROUP property and pinning version from VERSION_NAME so project(...) coordinates in generated POMs are consistent.
  • CI guard: New verify-published-poms job publishes to the local Maven repository and fails the build if any generated .pom contains <version>unspecified</version> or references a project-local group outside sk.ainet.core, preventing a regression of this class of coordinate bug.

[0.19.0] - 2026-04-20

Added

Tokenizers

  • Qwen / GPT-2 Byte-Level BPE Tokenizer: QwenByteLevelBpeTokenizer implements the full GPT-2-style pipeline — byte-to-unicode mapping, GPT-2 pretokenization regex, merge-rank BPE, and atomic special-token splitting. Builds from either GGUF metadata (fromGgufFields) or a HuggingFace tokenizer.json (fromTokenizerJson). Verified against Qwen2.5-0.5B reference token IDs from HuggingFace transformers. (#463)
  • LLaMA / SentencePiece Tokenizer: SentencePieceTokenizer implements the llama.cpp SPM pipeline — whitespace escape (), code-point symbol split, score-priority BPE (the SPM rule, opposite of the merge-rank rule used for GPT-2 BPE), and <0xNN> byte fallback for unknown characters. Builds from GGUF (tokenizer.ggml.model == "llama") and HuggingFace tokenizer.json (model.type == "Unigram"). Verified against TinyLlama-1.1B reference token IDs from HuggingFace transformers. (#464)
  • TokenizerFactory with Per-Architecture Dispatch: Tokenizer selection is now per-architecture, not per file format. TokenizerFactory.fromGguf(fields) and .fromTokenizerJson(json) inspect tokenizer.ggml.model / model.type and dispatch to the right implementation — Qwen/GPT-2 → byte-level BPE, LLaMA/Gemma/TinyLlama → SentencePiece — regardless of whether weights come from GGUF or SafeTensors. (#463)
  • Tokenizer Interface: Common surface implemented by TekkenTokenizer, QwenByteLevelBpeTokenizer, and SentencePieceTokenizer (encode, decode, vocabSize, bosTokenId, eosTokenId).
  • GGUF Tokenizer Metadata: GgufModelMetadata now exposes tokenizerModel, tokenizerTokens, tokenizerMerges, tokenizerTokenTypes, bosTokenId, and eosTokenId so callers can build a tokenizer without re-parsing the raw field map.

StableHLO → IREE compilation

  • Whisper Encoder E2E: Whisper encoder now compiles end-to-end via SKaiNET → StableHLO → IREE.
  • Real StableHLO Lowerings: softmax, layerNorm, and rmsnorm now lower to real StableHLO ops (reductions, broadcast_in_dim, standard ops) instead of custom_call stubs. (#467, #479, #480)
  • New Op Converters: gather / embedding, and concat / slice / cast StableHLO converters. (#483, #489)
  • Activation Alias: silu / SiLU registered as an alias for swish in ActivationOperationsConverter. (#484)
  • ConstantMaterializationPolicy: Seam for externalizing large weight tensors out of the StableHLO module (enables .irpa externalization). (#524)
  • Splat Constant Folding: Uniform-value tensor constants collapsed to dense<v> splat instead of fully materialized arrays. (#522)
  • SSA Value Type Tracking: Tracks SSA value types so reshape emits the operand's declared type, producing valid MLIR. (#521)
  • Tensor Encoding in Output: tensor_encoding comments in StableHLO output and a top-level skainet.tensor_encodings module attribute. (#473, #477)

IREE .irpa weight files

  • skainet-io-iree-params Module: New module with IrpaWriter for writing IREE Parameter Archive (.irpa) files. Accepts FileBacked handles via mmap on JVM / Android for zero-copy weight export. (#523, #525, #528, #529)

Backend API

  • skainet-backend-api Module: New module cleanly separating backend contracts; CPU backend now depends on it. (#468)
  • TensorEncoding Metadata: Accessor for TensorSpec.metadata and propagation through TraceToGraphBuilder.finalize, keeping quantization encoding visible end-to-end. (#469)

Java API (0.19.0 surface polish)

  • Annotated StableHloConverterFactory and TokenizerFactory for idiomatic Java call sites. (#400)
  • Renamed TensorSpecEncoding.kt class for Java callers. (#400)
  • Added skainet-backend-api to the BOM. (#400)
  • New ReleaseApiJavaTest covering the 0.19.0 Java surface. (#400)

Docs (Antora migration)

  • Antora + Diátaxis: Migrated docs to Antora with Divio / Diátaxis layout (tutorials, how-tos, reference, explanation). (#494)
  • skainet-docs-ui v1.1.1: Adopted the new theme with Diátaxis card-grid landing page. (#501)
  • Operator Coverage Matrix: Emit cross-backend Operator Coverage Matrix generated from TensorOps surface scan. (#494, #511)
  • Ops Docs: KDoc @param extraction, real version stamps, LaTeX rendering, fixed partials, and dropped void backend. (#511, #513)
  • Dokka API Bundle: Wired into the Antora site build. (#494)
  • Local Mermaid: Drop kroki, render Mermaid locally via mmdc. (#496)

... (truncated)

Commits
  • 324a98b Add CI guard that rejects invalid coordinates in published POMs
  • c73c543 Fix skainet-backend-cpu POM to publish valid backend-api coordinates
  • d9b64ae Release 0.19.0
  • 0aa9ba3 Merge pull request #538 from SKaiNET-developers/fix/535-flatten-shape-inference
  • e6935c3 Make Whisper encoder compile end-to-end via SKaiNET → StableHLO → IREE
  • c04257c Merge pull request #537 from SKaiNET-developers/fix/536-conv-inferoutputs-shape
  • 63c4dbf Track per-sample shape through DSL spatial layers (#535)
  • 9a12185 Compute real conv output shapes in graph operations (#536)
  • d484a47 Merge pull request #534 from SKaiNET-developers/fix/docs-mermaid-crashpad-home
  • 739611d Set HOME=/tmp in Antora image so chromium crashpad can launch
  • Additional commits viewable in compare view

Updates sk.ainet.core:skainet-lang-models from 0.18.0 to 0.19.1

Changelog

Sourced from sk.ainet.core:skainet-lang-models's changelog.

[0.19.1] - 2026-04-21

Fixed

  • Broken POM for skainet-backend-cpu: The 0.19.0 POM for sk.ainet.core:skainet-backend-cpu-* declared a runtime dependency on sk.ainet:skainet-backend-api-jvm:unspecified — wrong group coordinate and no valid version, because skainet-backend-api was not configured to publish and the root allprojects { group = "sk.ainet" } disagreed with the GROUP=sk.ainet.core used by vanniktech's maven publish plugin. Consumers pulling 0.19.0 hit unresolved-dependency errors. Fixed by:
    • Applying vanniktech.mavenPublish and setting POM_ARTIFACT_ID=skainet-backend-api on skainet-backend-api so it is actually published alongside the BOM entry that already referenced it.
    • Aligning allprojects { group = "sk.ainet.core" } with the GROUP property and pinning version from VERSION_NAME so project(...) coordinates in generated POMs are consistent.
  • CI guard: New verify-published-poms job publishes to the local Maven repository and fails the build if any generated .pom contains <version>unspecified</version> or references a project-local group outside sk.ainet.core, preventing a regression of this class of coordinate bug.

[0.19.0] - 2026-04-20

Added

Tokenizers

  • Qwen / GPT-2 Byte-Level BPE Tokenizer: QwenByteLevelBpeTokenizer implements the full GPT-2-style pipeline — byte-to-unicode mapping, GPT-2 pretokenization regex, merge-rank BPE, and atomic special-token splitting. Builds from either GGUF metadata (fromGgufFields) or a HuggingFace tokenizer.json (fromTokenizerJson). Verified against Qwen2.5-0.5B reference token IDs from HuggingFace transformers. (#463)
  • LLaMA / SentencePiece Tokenizer: SentencePieceTokenizer implements the llama.cpp SPM pipeline — whitespace escape (), code-point symbol split, score-priority BPE (the SPM rule, opposite of the merge-rank rule used for GPT-2 BPE), and <0xNN> byte fallback for unknown characters. Builds from GGUF (tokenizer.ggml.model == "llama") and HuggingFace tokenizer.json (model.type == "Unigram"). Verified against TinyLlama-1.1B reference token IDs from HuggingFace transformers. (#464)
  • TokenizerFactory with Per-Architecture Dispatch: Tokenizer selection is now per-architecture, not per file format. TokenizerFactory.fromGguf(fields) and .fromTokenizerJson(json) inspect tokenizer.ggml.model / model.type and dispatch to the right implementation — Qwen/GPT-2 → byte-level BPE, LLaMA/Gemma/TinyLlama → SentencePiece — regardless of whether weights come from GGUF or SafeTensors. (#463)
  • Tokenizer Interface: Common surface implemented by TekkenTokenizer, QwenByteLevelBpeTokenizer, and SentencePieceTokenizer (encode, decode, vocabSize, bosTokenId, eosTokenId).
  • GGUF Tokenizer Metadata: GgufModelMetadata now exposes tokenizerModel, tokenizerTokens, tokenizerMerges, tokenizerTokenTypes, bosTokenId, and eosTokenId so callers can build a tokenizer without re-parsing the raw field map.

StableHLO → IREE compilation

  • Whisper Encoder E2E: Whisper encoder now compiles end-to-end via SKaiNET → StableHLO → IREE.
  • Real StableHLO Lowerings: softmax, layerNorm, and rmsnorm now lower to real StableHLO ops (reductions, broadcast_in_dim, standard ops) instead of custom_call stubs. (#467, #479, #480)
  • New Op Converters: gather / embedding, and concat / slice / cast StableHLO converters. (#483, #489)
  • Activation Alias: silu / SiLU registered as an alias for swish in ActivationOperationsConverter. (#484)
  • ConstantMaterializationPolicy: Seam for externalizing large weight tensors out of the StableHLO module (enables .irpa externalization). (#524)
  • Splat Constant Folding: Uniform-value tensor constants collapsed to dense<v> splat instead of fully materialized arrays. (#522)
  • SSA Value Type Tracking: Tracks SSA value types so reshape emits the operand's declared type, producing valid MLIR. (#521)
  • Tensor Encoding in Output: tensor_encoding comments in StableHLO output and a top-level skainet.tensor_encodings module attribute. (#473, #477)

IREE .irpa weight files

  • skainet-io-iree-params Module: New module with IrpaWriter for writing IREE Parameter Archive (.irpa) files. Accepts FileBacked handles via mmap on JVM / Android for zero-copy weight export. (#523, #525, #528, #529)

Backend API

  • skainet-backend-api Module: New module cleanly separating backend contracts; CPU backend now depends on it. (#468)
  • TensorEncoding Metadata: Accessor for TensorSpec.metadata and propagation through TraceToGraphBuilder.finalize, keeping quantization encoding visible end-to-end. (#469)

Java API (0.19.0 surface polish)

  • Annotated StableHloConverterFactory and TokenizerFactory for idiomatic Java call sites. (#400)
  • Renamed TensorSpecEncoding.kt class for Java callers. (#400)
  • Added skainet-backend-api to the BOM. (#400)
  • New ReleaseApiJavaTest covering the 0.19.0 Java surface. (#400)

Docs (Antora migration)

  • Antora + Diátaxis: Migrated docs to Antora with Divio / Diátaxis layout (tutorials, how-tos, reference, explanation). (#494)
  • skainet-docs-ui v1.1.1: Adopted the new theme with Diátaxis card-grid landing page. (#501)
  • Operator Coverage Matrix: Emit cross-backend Operator Coverage Matrix generated from TensorOps surface scan. (#494, #511)
  • Ops Docs: KDoc @param extraction, real version stamps, LaTeX rendering, fixed partials, and dropped void backend. (#511, #513)
  • Dokka API Bundle: Wired into the Antora site build. (#494)
  • Local Mermaid: Drop kroki, render Mermaid locally via mmdc. (#496)

... (truncated)

Commits
  • 324a98b Add CI guard that rejects invalid coordinates in published POMs
  • c73c543 Fix skainet-backend-cpu POM to publish valid backend-api coordinates
  • d9b64ae Release 0.19.0
  • 0aa9ba3 Merge pull request #538 from SKaiNET-developers/fix/535-flatten-shape-inference
  • e6935c3 Make Whisper encoder compile end-to-end via SKaiNET → StableHLO → IREE
  • c04257c Merge pull request #537 from SKaiNET-developers/fix/536-conv-inferoutputs-shape
  • 63c4dbf Track per-sample shape through DSL spatial layers (#535)
  • 9a12185 Compute real conv output shapes in graph operations (#536)
  • d484a47 Merge pull request #534 from SKaiNET-developers/fix/docs-mermaid-crashpad-home
  • 739611d Set HOME=/tmp in Antora image so chromium crashpad can launch
  • Additional commits viewable in compare view

Updates sk.ainet.core:skainet-lang-ksp-annotations from 0.18.0 to 0.19.1

Changelog

Sourced from sk.ainet.core:skainet-lang-ksp-annotations's changelog.

[0.19.1] - 2026-04-21

Fixed

  • Broken POM for skainet-backend-cpu: The 0.19.0 POM for sk.ainet.core:skainet-backend-cpu-* declared a runtime dependency on sk.ainet:skainet-backend-api-jvm:unspecified — wrong group coordinate and no valid version, because skainet-backend-api was not configured to publish and the root allprojects { group = "sk.ainet" } disagreed with the GROUP=sk.ainet.core used by vanniktech's maven publish plugin. Consumers pulling 0.19.0 hit unresolved-dependency errors. Fixed by:
    • Applying vanniktech.mavenPublish and setting POM_ARTIFACT_ID=skainet-backend-api on skainet-backend-api so it is actually published alongside the BOM entry that already referenced it.
    • Aligning allprojects { group = "sk.ainet.core" } with the GROUP property and pinning version from VERSION_NAME so project(...) coordinates in generated POMs are consistent.
  • CI guard: New verify-published-poms job publishes to the local Maven repository and fails the build if any generated .pom contains <version>unspecified</version> or references a project-local group outside sk.ainet.core, preventing a regression of this class of coordinate bug.

[0.19.0] - 2026-04-20

Added

Tokenizers

  • Qwen / GPT-2 Byte-Level BPE Tokenizer: QwenByteLevelBpeTokenizer implements the full GPT-2-style pipeline — byte-to-unicode mapping, GPT-2 pretokenization regex, merge-rank BPE, and atomic special-token splitting. Builds from either GGUF metadata (fromGgufFields) or a HuggingFace tokenizer.json (fromTokenizerJson). Verified against Qwen2.5-0.5B reference token IDs from HuggingFace transformers. (#463)
  • LLaMA / SentencePiece Tokenizer: SentencePieceTokenizer implements the llama.cpp SPM pipeline — whitespace escape (), code-point symbol split, score-priority BPE (the SPM rule, opposite of the merge-rank rule used for GPT-2 BPE), and <0xNN> byte fallback for unknown characters. Builds from GGUF (tokenizer.ggml.model == "llama") and HuggingFace tokenizer.json (model.type == "Unigram"). Verified against TinyLlama-1.1B reference token IDs from HuggingFace transformers. (#464)
  • TokenizerFactory with Per-Architecture Dispatch: Tokenizer selection is now per-architecture, not per file format. TokenizerFactory.fromGguf(fields) and .fromTokenizerJson(json) inspect tokenizer.ggml.model / model.type and dispatch to the right implementation — Qwen/GPT-2 → byte-level BPE, LLaMA/Gemma/TinyLlama → SentencePiece — regardless of whether weights come from GGUF or SafeTensors. (#463)
  • Tokenizer Interface: Common surface implemented by TekkenTokenizer, QwenByteLevelBpeTokenizer, and SentencePieceTokenizer (encode, decode, vocabSize, bosTokenId, eosTokenId).
  • GGUF Tokenizer Metadata: GgufModelMetadata now exposes tokenizerModel, tokenizerTokens, tokenizerMerges, tokenizerTokenTypes, bosTokenId, and eosTokenId so callers can build a tokenizer without re-parsing the raw field map.

StableHLO → IREE compilation

  • Whisper Encoder E2E: Whisper encoder now compiles end-to-end via SKaiNET → StableHLO → IREE.
  • Real StableHLO Lowerings: softmax, layerNorm, and rmsnorm now lower to real StableHLO ops (reductions, broadcast_in_dim, standard ops) instead of custom_call stubs. (#467, #479, #480)
  • New Op Converters: gather / embedding, and concat / slice / cast StableHLO converters. (#483, #489)
  • Activation Alias: silu / SiLU registered as an alias for swish in ActivationOperationsConverter. (#484)
  • ConstantMaterializationPolicy: Seam for externalizing large weight tensors out of the StableHLO module (enables .irpa externalization). (#524)
  • Splat Constant Folding: Uniform-value tensor constants collapsed to dense<v> splat instead of fully materialized arrays. (#522)
  • SSA Value Type Tracking: Tracks SSA value types so reshape emits the operand's declared type, producing valid MLIR. (#521)
  • Tensor Encoding in Output: tensor_encoding comments in StableHLO output and a top-level skainet.tensor_encodings module attribute. (#473, #477)

IREE .irpa weight files

  • skainet-io-iree-params Module: New module with IrpaWriter for writing IREE Parameter Archive (.irpa) files. Accepts FileBacked handles via mmap on JVM / Android for zero-copy weight export. (#523, #525, #528, #529)

Backend API

  • skainet-backend-api Module: New module cleanly separating backend contracts; CPU backend now depends on it. (#468)
  • TensorEncoding Metadata: Accessor for TensorSpec.metadata and propagation through TraceToGraphBuilder.finalize, keeping quantization encoding visible end-to-end. (#469)

Java API (0.19.0 surface polish)

  • Annotated StableHloConverterFactory and TokenizerFactory for idiomatic Java call sites. (#400)
  • Renamed TensorSpecEncoding.kt class for Java callers. (#400)
  • Added skainet-backend-api to the BOM. (#400)
  • New ReleaseApiJavaTest covering the 0.19.0 Java surface. (#400)

Docs (Antora migration)

  • Antora + Diátaxis: Migrated docs to Antora with Divio / Diátaxis layout (tutorials, how-tos, reference, explanation). (#494)
  • skainet-docs-ui v1.1.1: Adopted the new theme with Diátaxis card-grid landing page. (#501)
  • Operator Coverage Matrix: Emit cross-backend Operator Coverage Matrix generated from TensorOps surface scan. (#494, #511)
  • Ops Docs: KDoc @param extraction, real version stamps, LaTeX rendering, fixed partials, and dropped void backend. (#511, #513)
  • Dokka API Bundle: Wired into the Antora site build. (#494)
  • Local Mermaid: Drop kroki, render Mermaid locally via mmdc. (#496)

... (truncated)

Commits
  • 324a98b Add CI guard that rejects invalid coordinates in published POMs
  • c73c543 Fix skainet-backend-cpu POM to publish valid backend-api coordinates
  • d9b64ae Release 0.19.0
  • 0aa9ba3 Merge pull request #538 from SKaiNET-developers/fix/535-flatten-shape-inference
  • e6935c3 Make Whisper encoder compile end-to-end via SKaiNET → StableHLO → IREE
  • c04257c Merge pull request #537 from SKaiNET-developers/fix/536-conv-inferoutputs-shape
  • 63c4dbf Track per-sample shape through DSL spatial layers (#535)
  • 9a12185 Compute real conv output shapes in graph operations (#536)
  • d484a47 Merge pull request #534 from SKaiNET-developers/fix/docs-mermaid-crashpad-home
  • 739611d Set HOME=/tmp in Antora image so chromium crashpad can launch
  • Additional commits viewable in compare view

Updates sk.ainet.core:skainet-compile-core from 0.18.0 to 0.19.1

Changelog

Sourced from sk.ainet.core:skainet-compile-core's changelog.

[0.19.1] - 2026-04-21

Fixed

  • Broken POM for skainet-backend-cpu: The 0.19.0 POM for sk.ainet.core:skainet-backend-cpu-* declared a runtime dependency on sk.ainet:skainet-backend-api-jvm:unspecified — wrong group coordinate and no valid version, because skainet-backend-api was not configured to publish and the root allprojects { group = "sk.ainet" } disagreed with the GROUP=sk.ainet.core used by vanniktech's maven publish plugin. Consumers pulling 0.19.0 hit unresolved-dependency errors. Fixed by:
    • Applying vanniktech.mavenPublish and setting POM_ARTIFACT_ID=skainet-backend-api on skainet-backend-api so it is actually published alongside the BOM entry that already referenced it.
    • Aligning allprojects { group = "sk.ainet.core" } with the GROUP property and pinning version from VERSION_NAME so project(...) coordinates in generated POMs are consistent.
  • CI guard: New verify-published-poms job publishes to the local Maven repository and fails the build if any generated .pom contains <version>unspecified</version> or references a project-local group outside sk.ainet.core, preventing a regression of this class of coordinate bug.

[0.19.0] - 2026-04-20

Added

Tokenizers

  • Qwen / GPT-2 Byte-Level BPE Tokenizer: QwenByteLevelBpeTokenizer implements the full GPT-2-style pipeline — byte-to-unicode mapping, GPT-2 pretokenization regex, merge-rank BPE, and atomic special-token splitting. Builds from either GGUF metadata (fromGgufFields) or a HuggingFace tokenizer.json (fromTokenizerJson). Verified against Qwen2.5-0.5B reference token IDs from HuggingFace transformers. (#463)
  • LLaMA / SentencePiece Tokenizer: SentencePieceTokenizer implements the llama.cpp SPM pipeline — whitespace escape (), code-point symbol split, score-priority BPE (the SPM rule, opposite of the merge-rank rule used for GPT-2 BPE), and <0xNN> byte fallback for unknown characters. Builds from GGUF (tokenizer.ggml.model == "llama") and HuggingFace tokenizer.json (model.type == "Unigram"). Verified against TinyLlama-1.1B reference token IDs from HuggingFace transformers. (#464)
  • TokenizerFactory with Per-Architecture Dispatch: Tokenizer selection is now per-architecture, not per file format. TokenizerFactory.fromGguf(fields) and .fromTokenizerJson(json) inspect tokenizer.ggml.model / model.type and dispatch to the right implementation — Qwen/GPT-2 → byte-level BPE, LLaMA/Gemma/TinyLlama → SentencePiece — regardless of whether weights come from GGUF or SafeTensors. (#463)
  • Tokenizer Interface: Common surface implemented by TekkenTokenizer, QwenByteLevelBpeTokenizer, and SentencePieceTokenizer (encode, decode, vocabSize, bosTokenId, eosTokenId).
  • GGUF Tokenizer Metadata: GgufModelMetadata now exposes tokenizerModel, tokenizerTokens, tokenizerMerges, tokenizerTokenTypes, bosTokenId, and eosTokenId so callers can build a tokenizer without re-parsing the raw field map.

StableHLO → IREE compilation

  • Whisper Encoder E2E: Whisper encoder now compiles end-to-end via SKaiNET → StableHLO → IREE.
  • Real StableHLO Lowerings: softmax, layerNorm, and rmsnorm now lower to real StableHLO ops (reductions, broadcast_in_dim, standard ops) instead of custom_call stubs. (#467, #479, #480)
  • New Op Converters: gather / embedding, and concat / slice / cast StableHLO converters. (#483, #489)
  • Activation Alias: silu / SiLU registered as an alias for swish in ActivationOperationsConverter. (#484)
  • ConstantMaterializationPolicy: Seam for externalizing large weight tensors out of the StableHLO module (enables .irpa externalization). (#524)
  • Splat Constant Folding: Uniform-value tensor constants collapsed to dense<v> splat instead of fully materialized arrays. (#522)
  • SSA Value Type Tracking: Tracks SSA value types so reshape emits the operand's declared type, producing valid MLIR. (#521)
  • Tensor Encoding in Output: tensor_encoding comments in StableHLO output and a top-level skainet.tensor_encodings module attribute. (#473, #477)

IREE .irpa weight files

  • skainet-io-iree-params Module: New module with IrpaWriter for writing IREE Parameter Archive (.irpa) files. Accepts FileBacked handles via mmap on JVM / Android for zero-copy weight export. (#523, #525, #528, #529)

Backend API

  • skainet-backend-api Module: New module cleanly separating backend contracts; CPU backend now depends on it. (#468)
  • TensorEncoding Metadata: Accessor for TensorSpec.metadata and propagation through TraceToGraphBuilder.finalize, keeping quantization encoding visible end-to-end. (#469)

Java API (0.19.0 surface polish)

  • Annotated StableHloConverterFactory and TokenizerFactory for idiomatic Java call sites. (#400)
  • Renamed TensorSpecEncoding.kt class for Java callers. (#400)
  • Added skainet-backend-api to the BOM. (#400)
  • New ReleaseApiJavaTest covering the 0.19.0 Java surface. (#400)

Docs (Antora migration)

  • Antora + Diátaxis: Migrated docs to Antora with Divio / Diátaxis layout (tutorials, how-tos, reference, explanation). (#494)
  • skainet-docs-ui v1.1.1: Adopted the new theme with Diátaxis card-grid landing page. (#501)
  • Operator Coverage Matrix: Emit cross-backend Operator Coverage Matrix generated from TensorOps surface scan. (#494, #511)
  • Ops Docs: KDoc @param extraction, real version stamps, LaTeX rendering, fixed partials, and dropped void backend. (#511, #513)
  • Dokka API Bundle: Wired into the Antora site build. (#494)
  • Local Mermaid: Drop kroki, render Mermaid locally via mmdc. (#496)

... (truncated)

Commits
  • 324a98b Add CI guard that rejects invalid coordinates in published POMs
  • c73c543 Fix skainet-backend-cpu POM to publish valid backend-api coordinates
  • d9b64ae Release 0.19.0
  • 0aa9ba3 Merge pull request #538 from SKaiNET-developers/fix/535-flatten-shape-inference
  • e6935c3 Make Whisper encoder compile end-to-end via SKaiNET → StableHLO → IREE
  • c04257c Merge pull request #537 from SKaiNET-developers/fix/536-conv-inferoutputs-shape
  • 63c4dbf Track per-sample shape through DSL spatial layers (#535)
  • 9a12185 Compute real conv output shapes in graph operations (#536)
  • d484a47 Merge pull request #534 from SKaiNET-developers/fix/docs-mermaid-crashpad-home
  • 739611d Set HOME=/tmp in Antora image so chromium crashpad can launch
  • Additional commits viewable in compare view

Updates sk.ainet.core:skainet-compile-dag from 0.18.0 to 0.19.1

Changelog

Sourced from sk.ainet.core:skainet-compile-dag's changelog.

[0.19.1] - 2026-04-21

Fixed

  • Broken POM for skainet-backend-cpu: The 0.19.0 POM for sk.ainet.core:skainet-backend-cpu-* declared a runtime dependency on sk.ainet:skainet-backend-api-jvm:unspecified — wrong group coordinate and no valid version, because skainet-backend-api was not configured to publish and the root allprojects { group = "sk.ainet" } disagreed with the GROUP=sk.ainet.core used by vanniktech's maven publish plugin. Consumers pulling 0.19.0 hit unresolved-dependency errors. Fixed by:
    • Applying vanniktech.mavenPublish and setting POM_ARTIFACT_ID=skainet-backend-api on skainet-backend-api so it is actually published alongside the BOM entry that already referenced it.
    • Aligning allprojects { group = "sk.ainet.core" } with the GROUP property and pinning version from VERSION_NAME so project(...) coordinates in generated POMs are consistent.
  • CI guard: New verify-published-poms job publishes to the local Maven repository and fails the build if any generated .pom contains <version>unspecified</version> or references a project-local group outside sk.ainet.core, preventing a regression of this class of coordinate bug.

[0.19.0] - 2026-04-20

Added

Tokenizers

  • Qwen / GPT-2 Byte-Level BPE Tokenizer: QwenByteLevelBpeTokenizer implements the full GPT-2-style pipeline — byte-to-unicode mapping, GPT-2 pretokenization regex, merge-rank BPE, and atomic special-token splitting. Builds from either GGUF metadata (fromGgufFields) or a HuggingFace tokenizer.json (fromTokenizerJson). Verified against Qwen2.5-0.5B reference token IDs from HuggingFace transformers. (#463)
  • LLaMA / SentencePiece Tokenizer: SentencePieceTokenizer implements the llama.cpp SPM pipeline — whitespace escape (), code-point symbol split, score-priority BPE (the SPM rule, opposite of the merge-rank rule used for GPT-2 BPE), and <0xNN> byte fallback for unknown characters. Builds from GGUF (tokenizer.ggml.model == "llama") and HuggingFace tokenizer.json (model.type == "Unigram"). Verified against TinyLlama-1.1B reference token IDs from HuggingFace transformers. (#464)
  • TokenizerFactory with Per-Architecture Dispatch: Tokenizer selection is now per-architecture, not per file format. TokenizerFactory.fromGguf(fields) and .fromTokenizerJson(json) inspect tokenizer.ggml.model / model.type and dispatch to the right implementation — Qwen/GPT-2 → byte-level BPE, LLaMA/Gemma/TinyLlama → SentencePiece — regardless of whether weights come from GGUF or SafeTensors. (#463)
  • Tokenizer Interface: Common surface implemented by TekkenTokenizer, QwenByteLevelBpeTokenizer, and SentencePieceTokenizer (encode, decode, vocabSize, bosTokenId, eosTokenId).
  • GGUF Tokenizer Metadata: GgufModelMetadata now exposes tokenizerModel, tokenizerTokens, tokenizerMerges, tokenizerTokenTypes, bosTokenId, and eosTokenId so callers can build a tokenizer without re-parsing the raw field map.

StableHLO → IREE compilation

  • Whisper Encoder E2E: Whisper encoder now compiles end-to-end via SKaiNET → StableHLO → IREE.
  • Real StableHLO Lowerings: softmax, layerNorm, and rmsnorm now lower to real StableHLO ops (reductions, broadcast_in_dim, standard ops) instead of custom_call stubs. (#467, #479, #480)
  • New Op Converters: gather / embedding, and concat / slice / cast StableHLO converters. (#483, #489)
  • Activation Alias: silu / SiLU registered as an alias for swish in ActivationOperationsConverter. (#484)
  • ConstantMaterializationPolicy: Seam for externalizing large weight tensors out of the StableHLO module (enables .irpa externalization). (#524)
  • Splat Constant Folding: Uniform-value tensor constants collapsed to dense<v> splat instead of fully materialized arrays. (#522)
  • SSA Value Type Tracking: Tracks SSA value types so reshape emits the operand's declared type, producing valid MLIR. (#521)
  • Tensor Encoding in Output: tensor_encoding comments in StableHLO output and a top-level skainet.tensor_encodings module attribute. (#473, #477)

IREE .irpa weight files

  • skainet-io-iree-params Module: New module with IrpaWriter for writing IREE Parameter Archive (.irpa) files. Accepts FileBacked handles via mmap on JVM / Android for zero-copy weight export. (#523, #525, #528, #529)

Backend API

  • skainet-backend-api Module: New module cleanly separating backend contracts; CPU backend now depends on it. (#468)
  • TensorEncoding Metadata: Accessor for TensorSpec.metadata and propagation through TraceToGraphBuilder.finalize, keeping quantization encoding visible end-to-end. (#469)

Java API (0.19.0 surface polish)

  • Annotated StableHloConverterFactory and TokenizerFactory for idiomatic Java call sites. (#400)
  • Renamed TensorSpecEncoding.kt class for Java callers. (#400)
  • Added skainet-backend-api to the BOM. (#400)
  • New ReleaseApiJavaTest covering the 0.19.0 Java surface. (#400)

Docs (Antora migration)

  • Antora + Diátaxis: Migrated docs to Antora with Divio / Diátaxis layout (tutorials, how-tos, reference, explanation). (#494)
  • skainet-docs-ui v1.1.1: Adopted the new theme with Diátaxis card-grid landing page. (#501)
  • Operator Coverage Matrix: Emit cross-backend Operator Coverage Matrix generated from TensorOps surface scan. (#494, #511)
  • Ops Docs: KDoc @param extraction, real version stamps, LaTeX rendering, fixed partials, and dropped void backend. (#511, #513)
  • Dokka API Bundle: Wired into the Antora site build. (#494)
  • Local Mermaid: Drop kroki, render Mermaid locally via mmdc. (#496)

... (truncated)

Commits
  • 324a98b Add CI guard that rejects invalid coordinates in published POMs
  • c73c543 Fix skainet-backend-cpu POM to publish valid backend-api coordinates
  • d9b64ae Release 0.19.0
  • 0aa9ba3 Merge pull request #538 from SKaiNET-developers/fix/535-flatten-shape-inference
  • e6935c3 Make Whisper encoder compile end-to-end via SKaiNET → StableHLO → IREE
  • c04257c Merge pull request #537 from SKaiNET-developers/fix/536-conv-inferoutputs-shape
  • 63c4dbf Track per-sample shape through DSL spatial layers (#535)
  • 9a12185 Compute real conv output shapes in graph operations (#536)
  • d484a47 Merge pull request #534 from SKaiNET-developers/fix/docs-mermaid-crashpad-home
  • 739611d Set HOME=/tmp in Antora image so chromium crashpad can launch
  • Additional commits viewable in compare view

Updates sk.ainet.core:skainet-compile-opt from 0.18.0 to 0.19.1

Changelog

Sourced from sk.ainet.core:skainet-compile-opt's changelog.

[0.19.1] - 2026-04-21

Fixed

  • Broken POM for skainet-backend-cpu: The 0.19.0 POM for sk.ainet.core:ska...

    Description has been truncated

Bumps `skainet` from 0.18.0 to 0.19.1.

Updates `sk.ainet.core:skainet-lang-core` from 0.18.0 to 0.19.1
- [Changelog](https://github.com/SKaiNET-developers/SKaiNET/blob/develop/CHANGELOG.md)
- [Commits](SKaiNET-developers/SKaiNET@0.18.0...0.19.1)

Updates `sk.ainet.core:skainet-lang-models` from 0.18.0 to 0.19.1
- [Changelog](https://github.com/SKaiNET-developers/SKaiNET/blob/develop/CHANGELOG.md)
- [Commits](SKaiNET-developers/SKaiNET@0.18.0...0.19.1)

Updates `sk.ainet.core:skainet-lang-ksp-annotations` from 0.18.0 to 0.19.1
- [Changelog](https://github.com/SKaiNET-developers/SKaiNET/blob/develop/CHANGELOG.md)
- [Commits](SKaiNET-developers/SKaiNET@0.18.0...0.19.1)

Updates `sk.ainet.core:skainet-compile-core` from 0.18.0 to 0.19.1
- [Changelog](https://github.com/SKaiNET-developers/SKaiNET/blob/develop/CHANGELOG.md)
- [Commits](SKaiNET-developers/SKaiNET@0.18.0...0.19.1)

Updates `sk.ainet.core:skainet-compile-dag` from 0.18.0 to 0.19.1
- [Changelog](https://github.com/SKaiNET-developers/SKaiNET/blob/develop/CHANGELOG.md)
- [Commits](SKaiNET-developers/SKaiNET@0.18.0...0.19.1)

Updates `sk.ainet.core:skainet-compile-opt` from 0.18.0 to 0.19.1
- [Changelog](https://github.com/SKaiNET-developers/SKaiNET/blob/develop/CHANGELOG.md)
- [Commits](SKaiNET-developers/SKaiNET@0.18.0...0.19.1)

Updates `sk.ainet.core:skainet-backend-cpu` from 0.18.0 to 0.19.1
- [Changelog](https://github.com/SKaiNET-developers/SKaiNET/blob/develop/CHANGELOG.md)
- [Commits](SKaiNET-developers/SKaiNET@0.18.0...0.19.1)

Updates `sk.ainet.core:skainet-io-core` from 0.18.0 to 0.19.1
- [Changelog](https://github.com/SKaiNET-developers/SKaiNET/blob/develop/CHANGELOG.md)
- [Commits](SKaiNET-developers/SKaiNET@0.18.0...0.19.1)

Updates `sk.ainet.core:skainet-io-gguf` from 0.18.0 to 0.19.1
- [Changelog](https://github.com/SKaiNET-developers/SKaiNET/blob/develop/CHANGELOG.md)
- [Commits](SKaiNET-developers/SKaiNET@0.18.0...0.19.1)

Updates `sk.ainet.core:skainet-io-safetensors` from 0.18.0 to 0.19.1
- [Changelog](https://github.com/SKaiNET-developers/SKaiNET/blob/develop/CHANGELOG.md)
- [Commits](SKaiNET-developers/SKaiNET@0.18.0...0.19.1)

---
updated-dependencies:
- dependency-name: sk.ainet.core:skainet-lang-core
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: sk.ainet.core:skainet-lang-models
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: sk.ainet.core:skainet-lang-ksp-annotations
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: sk.ainet.core:skainet-compile-core
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: sk.ainet.core:skainet-compile-dag
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: sk.ainet.core:skainet-compile-opt
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: sk.ainet.core:skainet-backend-cpu
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: sk.ainet.core:skainet-io-core
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: sk.ainet.core:skainet-io-gguf
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: sk.ainet.core:skainet-io-safetensors
  dependency-version: 0.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants