Skip to content

chore: upgrade Scala Native 0.5.11 -> 0.5.12#882

Open
He-Pin wants to merge 1 commit into
databricks:masterfrom
He-Pin:deps/scala-native-0.5.12
Open

chore: upgrade Scala Native 0.5.11 -> 0.5.12#882
He-Pin wants to merge 1 commit into
databricks:masterfrom
He-Pin:deps/scala-native-0.5.12

Conversation

@He-Pin
Copy link
Copy Markdown
Contributor

@He-Pin He-Pin commented May 30, 2026

Summary

Bump the native cross module from Scala Native 0.5.11 → 0.5.12 (release notes).

The version bump itself is source-free (native hash rendering keeps its hand-rolled bytesToHex helper; java.util.HexFormat is available in 0.5.12 but not needed). However, the 0.5.12 artifacts are not yet mirrored to the Databricks JFrog repo, so fork-PR CI — which has no JFrog OIDC token (JFROG_ACCESS_TOKEN="dummy", see get-jfrog-token.sh) and whose hashFiles('build.mill') dep-cache key changes on this bump — fails to resolve them:

unauthorized: .../org/scala-native/tools_2.13/0.5.12/tools_2.13-0.5.12.pom
unauthorized: .../org/scala-native/test-runner_2.13/0.5.12/test-runner_2.13-0.5.12.pom

So this PR also makes fix-build-config.sh fall back to public Maven Central on fork PRs:

  • When JFROG_ACCESS_TOKEN == "dummy" (fork PRs): resolve from maven-central.storage.googleapis.com, force mill --no-server, add curl retries, and pin MILL_VERSION. This lets not-yet-mirrored public dependency versions be validated by fork CI.
  • Internal PRs (real OIDC token): unchanged — keep using JFrog + credentials.

Verification

  • compile + nativeLink succeed under -Werror + full LTO.
  • Native test suite: 462/462 pass.
  • CLI output byte-identical to 0.5.11 on the jrsonnet realworld configs (kube-prometheus, loki, mimir, tempo), sha256 verified.
  • Both CI repository paths (fork → Maven Central, internal → JFrog) verified locally in an isolated sandbox.

Motivation:
Adopt the latest Scala Native 0.5.x patch release. The new artifacts are
not yet mirrored to the Databricks JFrog repo, so fork-PR CI (which has no
JFrog OIDC token, JFROG_ACCESS_TOKEN="dummy") cannot resolve them and fails
with "unauthorized" on org.scala-native:tools_2.13:0.5.12 / test-runner.

Modification:
- Bump scalaNativeVersion from 0.5.11 to 0.5.12 (no source changes needed;
  native hash rendering keeps its existing bytesToHex helper).
- fix-build-config.sh: when JFROG_ACCESS_TOKEN is "dummy" (fork PRs), resolve
  from public Maven Central instead of JFrog, so public dependency versions
  not yet mirrored to JFrog can still be validated. Also force mill --no-server,
  add curl retries, and pin MILL_VERSION for the fork path. Internal PRs keep
  using JFrog unchanged.

Result:
Native compile (-Werror, full LTO) and link succeed; native test suite
462/462 pass; CLI output byte-identical to 0.5.11 on the jrsonnet realworld
configs (kube-prometheus, loki, mimir, tempo). Both fork (Maven Central) and
internal (JFrog) CI repository paths verified locally in a sandbox.
@He-Pin He-Pin force-pushed the deps/scala-native-0.5.12 branch from bf8fe3a to cfe0675 Compare May 30, 2026 18:47
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