Repository navigation
chore: simplify and tighten release scripts - #2124
Merged
BlankParticle merged 4 commits intoOct 7, 2026
Merged
Conversation
- validate-publish-packages also fails when distilled's packages drift apart; Check runs it, and prepare.ts already does on release - prepare.ts only computes the next 2.0.0-beta.N; drop the version/ force-latest inputs, channel tags and the custom-tag branch in commit.sh - replace publish.sh (NPM_TOKEN dist-tag moves) with a pnpm publish loop to the default latest tag that skips already-published versions
BlankParticle
added this pull request to stack #2122
October 7, 2026 15:04
- restore the version input and prepare.ts's release specs (beta[.N], rc/alpha[.N], patch|minor|major, x.y.z, custom tags); only force-latest and the dist-tag output stay removed - scripts/release/publish.ts publishes each tarball to latest, skips versions already on npm, logs every package and writes a job summary table - drop the comments added in the previous commit
BlankParticle
marked this pull request as ready for review
October 7, 2026 15:18
Both run under node as Effect CLI scripts, like publish.ts: FileSystem for manifests, HttpClient for npm, ChildProcess for git/pnpm. prepare.ts keeps stdout for the version=/channel= lines and reports failures on stderr.
Contributor
|
Install the packages built from this commit: alchemypnpm install https://pkg.alchemy.run/alchemy/pr:2124:ac95173@alchemy.run (6)pnpm install https://pkg.alchemy.run/@alchemy.run/better-auth/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@alchemy.run/cloudflare-runtime/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@alchemy.run/frontend-frameworks/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@alchemy.run/node-utils/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@alchemy.run/floci/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@alchemy.run/pkg/pr:2124:ac95173Transitive Dependencies (18)pnpm install https://pkg.alchemy.run/@distilled.cloud/acme/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/aws/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/axiom/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/cloudflare/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/core/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/doppler/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/fly-io/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/gcp/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/hetzner/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/iceberg/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/infisical/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/neon/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/planetscale/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/prisma/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/railway/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/stripe/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/zerossl/pr:2124:ac95173pnpm install https://pkg.alchemy.run/@distilled.cloud/github/pr:2124:ac95173Published |
…ripts/ - scripts/package-manifest.ts: Schema for package.json, shared by prepare, publish and validate-publish-packages - named Data.TaggedError failures (VersionMismatch, InvalidReleaseSpec, PublishFailed, ...) instead of plain Error; npm responses decoded with Schema - tsconfig.scripts.json is composite and part of the root solution, so pnpm typecheck covers scripts/; cross-package imports use package names
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.
Releases always publish under npm's
latestdist-tag, and CI fails when package versions drift apart.Version sync:
validate:publish-packagesnow also requires every distilled package to share one version (alongside the existing alchemy check). Check runs it;prepare.tsalready does on release.Always
latest: theforce-latestinput and the per-channel dist-tags are gone. Theversioninput still selects the version (beta,beta.N,rc/alpha,patch|minor|major,x.y.z, or a custom0.0.0-<name>).No NPM_TOKEN:
publish.shand its token-based dist-tag moves are replaced byscripts/release/publish.ts(Effect). It publishes each tarball tolatestover OIDC, skips versions already on npm so a partial release can be re-run, and reports every package:The same results are written to the job summary as a table.
Effect scripts:
prepare.ts,validate-publish-packages.tsand the newpublish.tsare Effect CLI scripts run withnode, decodingpackage.jsonand npm responses with Schema (sharedscripts/package-manifest.ts) and failing with named errors (VersionMismatch,InvalidReleaseSpec,PublishFailed, …).prepare.tskeeps stdout for theversion=/channel=lines.Type-check
scripts/:tsconfig.scripts.jsonis composite and back in the root solution, sopnpm typecheckcovers it.