Skip to content

chore: stop committing dist/, publish WIP releases via CI only - #6

Open
k0stik wants to merge 5 commits into
mainfrom
chore/SOF-7942-1
Open

chore: stop committing dist/, publish WIP releases via CI only#6
k0stik wants to merge 5 commits into
mainfrom
chore/SOF-7942-1

Conversation

@k0stik

@k0stik k0stik commented Aug 17, 2026

Copy link
Copy Markdown
Member

Summary

  • Stop committing dist/ build output to git; it's now gitignored.
  • Add CI-only WIP release workflow (.github/workflows/release-wip.yml): pushing a commit with [release] builds, packs, and publishes a GitHub pre-release tarball tagged wip-<short-sha>.
  • Add scheduled cleanup workflow (.github/workflows/cleanup-wip-releases.yml) that removes stale wip-* pre-releases whose commit is no longer any branch's tip (never touches non-prerelease releases).
  • Bump this package's own @mat3ra/* dependencies to their released WIP tarball URLs.
  • Add RELEASING.md documenting the CI-only release process.

Part of the repo-wide rollout to stop committing dist/ across @mat3ra/* packages (companion PR: mat3ra/actions#43).

Test plan

  • CI release workflow ran successfully on this branch and published a wip-* pre-release tarball
  • Local build/typecheck passes against bumped dependencies

k0stik added 3 commits August 17, 2026 15:34
Mirrors the rollout on the rest of the stack: dist/ gitignored,
pre-commit hook no longer force-adds dist, and
.github/workflows/release-wip.yml + cleanup-wip-releases.yml wire up
mat3ra/actions' composite actions. Bumps ade, code, cove, esse, ide,
made, mode, prode, standata, wave.js, wode to their WIP release
tarballs.

Fixes a type error surfaced by the newer @mat3ra/mode: its own
Model.toJSON() return type (ModelEntity) declares `type: string`
rather than the literal-typed union AnyModelSchema expects, so
ModelConversionHandler.convertToCategorized's stricter parameter type
no longer accepts it directly. Casts model?.toJSON() to
AnyModelSchema at both call sites - the runtime JSON is already
correctly shaped, mode's own declared type is just looser than that.
RELEASING.md documents the CI-only publish path.
mat3ra/actions is being made public, so callers no longer need to
checkout it and invoke the composite action locally; call the
workflow_call reusable workflow directly instead.

[release]
k0stik added 2 commits August 18, 2026 13:07
Full explanation (why this exists, tag scheme, EINTEGRITY gotcha,
cleanup policy) now lives in one place instead of duplicated near-
identically across 22 repos.
The js/publish action never ran a build step - it relied entirely on
dist/ already being committed to git. Since dist/ was gitignored in
this rollout, a real `npm publish` on merge would ship whatever
partial/stale dist/ happens to exist in the CI workspace instead of a
full build (already caused broken @mat3ra/esse@2026.8.18-0 and
@mat3ra/utils@2026.8.18-0 releases).

Adding prepublishOnly (an npm lifecycle hook npm publish runs
automatically) running the same build script already used and
verified by release-wip.yml. Verified locally: rm -rf dist && npm run
prepublishOnly produces a complete dist/.
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