Skip to content

Adopt sbt-zipx 0.1.6 typed API and sbt 2.0.5 - #22

Open
russwyte wants to merge 2 commits into
mainfrom
chore/zipx-0.1.6
Open

Adopt sbt-zipx 0.1.6 typed API and sbt 2.0.5#22
russwyte wants to merge 2 commits into
mainfrom
chore/zipx-0.1.6

Conversation

@russwyte

@russwyte russwyte commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Part of the org-wide sbt-zipx 0.1.6 sweep.

Changes

  • sbt.version 2.0.4 -> 2.0.5
  • sbt-zipx 0.1.5 -> 0.1.6
  • Adopt the typed capability API

Typed API adoption

0.1.6 replaces bare Strings across the zipx public API with validated neotype types, checked at compile time. This PR takes the safety rather than the minimum needed to compile:

  • zipxJavaVersion := JdkVersion("25")
  • The fmt gate uses zipxTasks.once(Fmt, scalafmtCheckAll) with the real sbt key, so renaming the task is a build-load error rather than a CI failure
  • fmt is named once as val Fmt = CapabilityName("fmt") and reused in Capability.test.copy(needsCapabilities = ...), so a typo cannot silently produce a job that never runs
  • ZipxCentral.release.copy(command = _ => SbtCommand("release")) stays a literal because release is a command alias rather than a task key

Formatting follows this repo's convention of unaligned single-space := in sbt files.

Verification

Generated workflows are byte-identical after regeneration (no diff under .github/), which is the expected result: zipx's own .github/ did not change between 0.1.5 and 0.1.6, so the typed rewrite is confirmed semantics-preserving.

sbt "zipxWorkflowCheck; scalafmtCheckAll; testFull; scripted" all green, including + marklit/run-resource.

zipx 0.1.6 replaces bare Strings in its public API with validated neotype
types, so a typo'd capability name or JDK version is now a compile error
instead of a runner failure.

The fmt gate uses zipxTasks.once with the scalafmtCheckAll key, so renaming
the task fails the build load. The Central publish command stays a literal
SbtCommand because "release" is a command alias, not a task key.

Generated workflows are unchanged.
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