Skip to content

feat(scoop): Add a Scoop bucket and release-time package metadata automation - #49

Merged
iebb merged 3 commits into
iebb:mainfrom
4fuu:feat/scoop-bucket
Sep 22, 2026
Merged

iebb merged 3 commits into
iebb:mainfrom
4fuu:feat/scoop-bucket

Conversation

@4fuu

@4fuu 4fuu commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Add an in-repository Scoop bucket for Windows x64 and ARM64 installs, alongside the existing Homebrew tap. Keep both package managers on the latest published stable release automatically.

Changes

  • Add bucket/termgram.json, pinned to v0.1.20 with the release's SHA-256 checksums and SHA256SUMS-based autoupdate extraction.
  • Document Scoop installation, upgrades, and removal in the README.
  • Generate both package manifests with scripts/update-package-metadata.py, validating coverage of all six platform archives.
  • Reconcile package metadata after successful publication, including prerelease-only and empty plans. Select the latest published stable release independently of the current plan and download its SHA256SUMS, so overlapping rebuilds cannot substitute unpublished archive hashes.
  • Apply metadata to the current default branch in an isolated worktree. Retry normal pushes when the branch advances and skip the commit when metadata already matches. Use a chore(release): subject so metadata commits do not create another stable release.
  • Add focused regression checks to CI for published checksums, recovery from missed updates, idempotent reruns, absent stable releases, and concurrent branch updates.

Validation

  • Three local integration tests pass against isolated Git remotes and release fixtures, including a deliberate push race.
  • ShellCheck and Bash syntax checks pass for the metadata publisher; workflow syntax validates with actionlint.
  • Generating from the published v0.1.20 SHA256SUMS reproduces both committed manifests byte-for-byte; JSON and Ruby syntax checks pass.
  • All 39 Wiki pages pass the existing language-parity and link checks.
  • The original contribution verified the Windows x64 archive layout and download checksum. A complete Scoop install on Windows has not been exercised locally.

4fuu and others added 2 commits September 21, 2026 05:29
Install the stable Windows x64 and ARM64 release archives through Scoop with
pinned SHA-256 checksums and SHA256SUMS-based autoupdate hash extraction.
Document installation, Scoop-managed upgrades, and manifest maintenance in the
current README, mirroring the Homebrew tap.

Validated the manifest JSON with jq, both hash extraction patterns against the
published v0.1.20 SHA256SUMS, and a full download of termgram-0.1.20-windows.zip
whose SHA-256 matches the pinned value.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0c24b-d4c2-707c-86c1-da9f060dd6b7
Co-authored-by: Amp <amp@ampcode.com>
Regenerate Formula/termgram.rb and bucket/termgram.json from the release's
SHA256SUMS after publishing the latest stable release in a plan, commit the
metadata with a chore(release) subject, and push it to the default branch.
Prerelease-only plans leave the pinned versions untouched, and an unchanged
manifest skips the commit so idempotent republishes stay silent.

Remove the now-redundant Maintaining Homebrew and Maintaining Scoop README
sections, and match the manifest description with the formula's.

Validated the workflow YAML and its shell syntax, reproduced the committed
formula byte-for-byte from the published v0.1.20 SHA256SUMS, verified both
autoupdate hash-extraction patterns against those checksums, and simulated
the update flow for the pinned and a next version.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0c24b-d4c2-707c-86c1-da9f060dd6b7
Co-authored-by: Amp <amp@ampcode.com>
@4fuu

4fuu commented Sep 21, 2026

Copy link
Copy Markdown
Contributor Author

@iebb

Read checksums from the latest published stable release independently of
this CI run's release plan. Rebuilt archives can differ from bytes already
published by an overlapping run, and later plans omit published versions.

Apply generated metadata on the current default branch in an isolated
worktree, retry ordinary pushes when the branch advances, and skip commits
when the remote already contains the expected metadata. This also repairs
missed updates during prerelease-only or empty plans.

Add CI regression coverage for published checksums, reruns, missing stable
releases, and concurrent branch updates. Validate shell/workflow syntax and
reproduce the pinned manifests using the published v0.1.20 checksums.
@iebb
iebb merged commit 605ad1d into iebb:main Sep 22, 2026
8 checks passed
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.

2 participants