ci(release): add an alpha (pre-release) dist-tag lane#261
Merged
Conversation
Derive the npm dist-tag from the version in release.yml so a pre-release version (X.Y.Z-alpha.N) publishes to the `alpha` dist-tag instead of moving `latest`. This is what lets the write-side alpha elements (barebuild-action / barebuild-invalidate-on) ship for opt-in (`npm install @vanelsas/baredom@alpha`) without pushing unstable code to every stable consumer. - "Derive version from tag": compute dist_tag (any semver pre-release identifier → that identifier, e.g. alpha/rc; no identifier → latest) and prerelease (bool). - Publish to NPM: `npm publish --tag "$dist_tag"`. - Clojars deploy: skipped for pre-releases (npm/ESM-only; also avoids re-deploying an unbumped jar version). - GitHub Release: marked prerelease for pre-release versions. STABLE releases are byte-for-byte unchanged: a plain X.Y.Z yields dist_tag=latest, prerelease=false → npm `latest` + Clojars + normal release, exactly as before. Generic infrastructure, so it lands on main; the alpha version bump + tag happen on the feature branch (see docs/RELEASING.md → "Alpha (pre-release) releases"). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
avanelsas
added a commit
that referenced
this pull request
Jun 10, 2026
Retire BareBuild entirely from the BareDOM repo. Removes the read-side orchestration elements (barebuild-router / barebuild-route / barebuild-data), the BareBuild CLI generator + project template, the Phase-4 demo app, all BareBuild docs, and reverts the alpha (pre-release) dist-tag CI lane (#261). Removed merged work: #252, #253, #256, #258, #259, #260, #261. Preserved: #257 (unrelated x-form/x-select fix) and #263 (x-select .value), which only happened to land in the same window. The seam was clean (CI-enforced via the now-removed scripts/check-barebuild-boundary.bb): no non-BareBuild component imported any BareBuild code, so this is deletion + reference-block edits only. Reference edits: - registry.cljs / core.cljs: drop barebuild-registers - shadow-cljs.edn / package.json: drop the barebuild-* ESM modules + exports - public/index.html / README.md / docs/components.md: drop the Orchestration category (now empty) - scripts/generate_types.bb / metadata.bb: type only x-* again - .github/workflows/ci.yml: drop the boundary check + demo-app E2E job - .github/workflows/release.yml + docs/RELEASING.md: revert the #261 alpha lane - custom-elements.json: regenerated (no barebuild entries) - CLAUDE.md / src/baredom/utils/dom.cljs: scrub barebuild from inline examples Verified: clj-kondo 0/0, release lib 0 warnings, compile test 0 warnings, npm test 5096 passing, require-style / du-discipline / method-api / bundle-size guards all green. Co-authored-by: Claude Opus 4.8 (1M context) <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.
What
Adds a pre-release dist-tag lane to
release.ymlso experimental work can ship on the npmalphatag without movinglatest. This is the one infrastructure gap the write-side alpha audit flagged: todaynpm publish(no--tag) would pointlatestat any version published, so taggingv4.0.0-alpha.0would push the unstable write-side elements to every stable consumer.How
The dist-tag is derived from the version in the "Derive version from tag" step:
4.0.0-alpha.0→alpha,4.0.0-rc.1→rc) → that tag;X.Y.Z(no identifier) →latest.Four small, version-aware edits:
dist_tag+prereleaseoutputsnpm publish --access public --tag "$dist_tag"if: prerelease == 'false'— skip for pre-releases (npm/ESM-only; also avoids re-deploying an unbumped jar)prerelease: <bool>Stable releases are unchanged
A plain
vX.Y.Zyieldsdist_tag=latest,prerelease=false→ npmlatest+ Clojars + a normal GitHub release, byte-for-byte as before. Verified the derivation locally:Scope / sequencing
This PR is generic infrastructure only — it lands on
main. The actual alpha publish (version bump to4.0.0-alpha.N, tag,npm publish) happens later on the feature branch (feat/barebuild-write-side), which will mergemainfirst so the tagged commit carries this logic.docs/RELEASING.mdgains an "Alpha (pre-release) releases" section documenting the procedure. Nopackage.json/version changes here.Valid YAML confirmed (js-yaml).
🤖 Generated with Claude Code