Repository navigation
Release tooling after 0.2.0: bin/release.sh, verify scripts that check Central, templates on 0.2.0 - #162
Merged
Conversation
…k Central, templates on 0.2.0
- bin/release.sh: the route 0.2.0 took, as one command. The Mac builds the tag
unsigned; the staging comes back without ._ files; every module is checked
(four files, POM fields, checksums, no SNAPSHOT), signed here, verified, and
uploaded USER_MANAGED. It waits for VALIDATED and never publishes.
RELEASE_UPLOAD=0 rehearses without uploading.
- verify-getting-started{,-apple}.sh: THICKET_VERSION=<v> now means "check a
release": no publishLocal, empty coursier cache / Ivy home / global base, and
a failure unless every thicket jar came from repo1.maven.org. Before, both
ignored THICKET_VERSION and always tested local jars, though docs/14 said to
run them against the release.
- templates: default to 0.2.0. All three defaulted to 0.1.0, never published, so
copying a template as the README says failed to resolve.
- README, docs/13: 0.2.0 is on Central; the gaps left are an Android template
and iOS device builds (#161). docs/14 §14.4-14.5 rewritten; decision-log entry.
Measured:
- THICKET_VERSION=0.2.0 bin/verify-getting-started.sh: PASS, 5 thicket jars
from repo1.maven.org, 6089368-byte binary, still running at 10 s. Local mode:
PASS (0.2.0-SNAPSHOT). THICKET_VERSION=0.2.0-SNAPSHOT (local only): FAILS,
resolution looks only in the empty Ivy home.
- verify-getting-started-apple.sh, THICKET_VERSION=0.2.0, on the Mac: macOS
window 320x192 and iOS simulator both PASS, jars from repo1.maven.org. The
first run failed: sbt's socket path under the Mac's $TMPDIR was too long; a
short SBT_GLOBAL_SERVER_DIR fixed it.
- bin/release.sh 0.2.0 with RELEASE_UPLOAD=0: 69 modules, 276 signatures
verified, 52 MB bundle. 44 of 69 jars byte-identical to Central; the 25 Scala
Native jars are not (recorded in docs/14). 9.9.9 refused: no tag.
- The GTK template copied out with empty caches: before, ResolveException for
sbt-thicket 0.1.0; after, nativeLink exit 0 from Central alone.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Note
Copilot was unable to complete this review at the selected tier due to model policy or plan restrictions.
🔵 Needs a closer look
The change introduces release automation that depends on a remote macOS build plus real Sonatype/Maven Central and GPG interactions, which cannot be reliably validated without an end-to-end rehearsal in the actual environment.
No open issues 🎉
What changed in this PR
Adds post-0.2.0 release automation and verification tooling, and updates templates/docs to reflect the first published release on Maven Central.
Changes:
- Adds
bin/release.sh <version>to orchestrate staging, verification, signing, and Central Portal upload/validation waiting (without publishing). - Updates getting-started verification scripts to support release-mode checks (
THICKET_VERSION=...) with isolated sbt/coursier state and Central provenance validation. - Bumps templates to default to
0.2.0and refreshes README/docs/decision log to match the new release and verification workflow.
| File | Description |
|---|---|
| templates/hello-thicket/project/plugins.sbt | Updates the hello-thicket template to default the sbt-thicket plugin version to 0.2.0. |
| templates/hello-thicket-macos/project/plugins.sbt | Updates the macOS template to default the sbt-thicket plugin version to 0.2.0. |
| templates/hello-thicket-ios/project/plugins.sbt | Updates the iOS template to default the sbt-thicket plugin version to 0.2.0. |
| README.md | Refreshes project status and getting-started guidance to reflect that 0.2.0 is available on Maven Central. |
| docs/decisions.md | Adds a decision-log entry documenting the two-machine release route (Mac builds; Linux signs/uploads). |
| docs/14-releasing.md | Rewrites release/verification instructions around the new scripts and records details of the 0.2.0 release process. |
| docs/13-phases.md | Updates the phase/status documentation to reflect current publishing state and remaining gaps after 0.2.0. |
| bin/verify-getting-started.sh | Adds a release-mode verification path driven by THICKET_VERSION using isolated caches and Maven Central provenance checks. |
| bin/verify-getting-started-apple.sh | Adds an Apple-focused release-mode verification path with isolated caches, provenance checks, and an sbt server-dir workaround. |
| bin/release.sh | Introduces a release orchestration script to fetch a tag, stage artifacts, verify/sign them, upload to Central, and wait for validation without publishing. |
Review effort: Balanced
rleibman
added a commit
that referenced
this pull request
Nov 13, 2026
One conflict: docs/decisions.md, where both sides added a 2026-11-12 entry at the top of the log. Both kept, the Android entry first. Statements #162 brought in that this branch makes untrue, corrected in the same merge: README's "no Android template or plugin yet" and docs/13's phase-5 "Still open: an Android template and plugin". docs/18's status (#163) goes from "being built" to built. Measured: sbt --error checkLinux on the merged tree, exit 0, 356 passed, 0 failed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rleibman
added a commit
that referenced
this pull request
Nov 13, 2026
One conflict: docs/decisions.md, where main's two 2026-11-12 entries and this branch's 2026-11-03 camera-preview entry were both added at the top. All kept, newest first. Brought in line with rules main gained since this branch: - thicket-camera-preview-apple sets `description` (#157: every published module does; the POM's description is what Central's search shows). - The Swift-carrying Apple modules are eight with this one, not seven: docs/14 §14.5 and bin/release.sh's header. docs/14's 2026-11-09 rehearsal record keeps "seven", which was true then. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Item 1 of the post-0.2.0 list. The iOS device-builds issue is #161; the Android options come separately.
Changes
bin/release.sh <version>: the route 0.2.0 took, as one command.publish; platforms/publishunsigned.._*files.USER_MANAGED.RELEASE_UPLOAD=0rehearses without uploading.bin/verify-getting-started.shand-apple.sh:THICKET_VERSION=<v>now checks a release. The script skipspublishLocaland gives sbt an empty coursier cache, Ivy home and global base. It fails unless every Thicket jar came fromrepo1.maven.org. Until now both scripts ignoredTHICKET_VERSIONand always tested local jars, thoughdocs/14told you to run them against the release.Templates default to
0.2.0. All three defaulted to0.1.0, which was never published. Copying a template, as the README says, failed to resolve.Docs:
docs/13: 0.2.0 is on Central. The gaps left are an Android template and iOS device builds (Mac: iOS device builds — published jars carry simulator-only Swift libraries #161).docs/14§14.4–14.5 rewritten for the new scripts, plus a record of 0.2.0.Measured
THICKET_VERSION=0.2.0 bin/verify-getting-started.sh0.2.0-SNAPSHOT)THICKET_VERSION=0.2.0-SNAPSHOT, a version that exists only in~/.ivy2/localTHICKET_VERSION=0.2.0 bin/verify-getting-started-apple.shon the Mac$TMPDIR; a shortSBT_GLOBAL_SERVER_DIRfixed itbin/release.sh 0.2.0,RELEASE_UPLOAD=0bin/release.sh 9.9.9THICKET_VERSIONResolveException … sbt-thicket_sbt2_3:0.1.0; after:nativeLinkexit 0 from Central aloneFindings, not fixed here
docs/14.Not run
checkLinux: nothing here is a build input. The templates are outside the build, and the rest is shell and docs. CI runs it anyway.🤖 Generated with Claude Code