Quereus uses bumpp for version bumping and follows semver.
Tags use the v prefix (e.g. v1.0.0).
Curate release notes during the cycle in an untracked .release-notes.pending.md
at the repo root (gitignored). When yarn gh-release runs, it uses that file as the
GitHub release body and then consumes (deletes) it. If the file is absent, the release
falls back to GitHub's auto-generated notes — so the file is entirely optional. There is
no committed CHANGELOG.md; the published GitHub releases are the canonical history.
yarn buildsucceedsyarn checkpasses- Clean working tree (
git statusshows no uncommitted changes)
yarn releaseThis first runs scripts/release-guard.js — an interactive gate that prints a banner and requires you to type yes to confirm yarn check passed on this commit (it aborts on a non-interactive terminal). Only then does it run yarn bump (interactive version prompt, commits, tags, pushes), yarn pub (clean + build + publish each package), and yarn gh-release.
git status # no uncommitted changes
git pull origin main# Interactive — prompts for version type (major / minor / patch / prerelease)
yarn bump
# Or specify the release type directly
yarn bump --release patch
yarn bump --release minor
yarn bump --release majorbumpp will:
- Update
versionin allpackage.jsonfiles (recursive) - Commit the changes
- Create an annotated tag:
v{version} - Push the commit and tag to
origin
# Publish all public packages (clean + build + publish each)
yarn pubOr publish individually:
yarn pub:quereus
yarn pub:store
yarn pub:sync
# etc.yarn gh-releaseUses .release-notes.pending.md as the body if present (then deletes it), otherwise
falls back to gh release create v{version} --generate-notes.
yarn bump --release prerelease --preid rc # e.g. 1.1.0-rc.0
yarn bump --release prerelease --preid beta # e.g. 1.1.0-beta.0Publish prereleases with a dist-tag so they don't become latest:
# Manually publish each package with --tag next- Branch from the release tag:
git checkout -b hotfix/v1.0.1 v1.0.0 - Apply the fix, commit
- Bump:
yarn bump --release patch - Publish:
yarn pub - Merge back into
main
All packages in the monorepo share the same version number. The --recursive flag in the bump script ensures this stays in sync. Do not manually edit version numbers in individual package.json files.
-
yarn checkpasses (there is no CI — this local run is the only pre-publish safety net) -
yarn buildsucceeds -
yarn testpasses - Clean working tree
-
.release-notes.pending.mdcurated (optional — omit for auto-generated notes) -
yarn release(oryarn bump+yarn pubseparately) - GitHub release created (
yarn gh-release)