Skip to content

Published BOM 0.21.1 imports unresolvable sk.ainet:skainet-bom:0.21.0 #97

@michalharakal

Description

@michalharakal

Summary

The BOM published as sk.ainet.transformers:skainet-transformers-bom:0.21.1 cannot be consumed from public Maven Central. Any project that does

implementation(platform("sk.ainet.transformers:skainet-transformers-bom:0.21.1"))

fails dependency resolution because the BOM transitively imports an artifact that has never been published.

Evidence

The POM at https://repo.maven.apache.org/maven2/sk/ainet/transformers/skainet-transformers-bom/0.21.1/skainet-transformers-bom-0.21.1.pom ends with this <dependencyManagement> entry:

<dependency>
  <groupId>sk.ainet</groupId>
  <artifactId>skainet-bom</artifactId>
  <version>0.21.0</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>

But there is no sk.ainet:skainet-bom on Central at all — the directory https://repo.maven.apache.org/maven2/sk/ainet/skainet-bom/ 404s, and there is no maven-metadata.xml. The engine BOM has simply never been published. Tracked in the engine repo: SKaiNET-developers/SKaiNET#584.

Reproduction

// settings.gradle.kts → mavenCentral() only
dependencies {
    implementation(platform("sk.ainet.transformers:skainet-transformers-bom:0.21.1"))
    implementation("sk.ainet.transformers:skainet-transformers-inference-bert")
}

Gradle reports:

Could not resolve sk.ainet.transformers:skainet-transformers-bom:0.21.1.
  > Could not parse POM ...skainet-transformers-bom-0.21.1.pom
    > Could not find sk.ainet:skainet-bom:0.21.0.

Workaround for consumers

Stop importing the BOM. Pin every transformer artifact at 0.21.1 directly and every sk.ainet.core:* artifact at 0.21.0 (which is what the individual transformer POMs already pin internally). This works against public Maven Central with no extra repositories.

Suggested fix (one of)

  1. Best: have the engine repo publish sk.ainet:skainet-bom (Publish sk.ainet:skainet-bom to Maven Central SKaiNET#584) and bump the import here to a real version (likely 0.22.x once the engine catches up).
  2. Alternative: drop the <scope>import</scope> of the engine BOM from the transformers BOM and instead enumerate the engine artifacts (sk.ainet.core:skainet-lang-core, skainet-backend-cpu, skainet-io-core, skainet-io-safetensors, skainet-compile-core) at the engine version transformers was built against.
  3. Quickest: republish a 0.21.2 patch where the import points at a version that actually exists.

Why this matters

This is the only published BOM, so any downstream that follows the standard "import the BOM, then add artifacts without versions" pattern is hard-blocked. Hit while migrating the leaf-cli sample to 0.21.1.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions