name: release description: Use when cutting a barwise release - bumping the single monorepo version, tagging, and creating the GitHub release that builds the downloadable artifacts. Carries the bump-sequence gotchas (workspace dependency refs, SERVER_VERSION sync, tutorial regeneration) that make a naive npm version fail CI.
Cutting a Barwise Release
The project uses a single version number across all packages, tracked by git tags on the main branch. Versions follow semver. Changes accumulate on main; a release is an intentional act, not automatic.
- Develop -- merge PRs to main. CI runs build + test + lint.
- Decide to release -- when a meaningful set of changes has landed.
- Bump versions -- update package.json files and tag (below).
- Create a GitHub release -- triggers the artifact build workflow.
To review what changed since the last release:
git log --oneline v1.2.0..HEAD
Bump versions and tag
All commands run from barwise/. The --no-workspaces-update flag
prevents npm from resolving workspace dependencies against the public
registry (these packages are not published). Use patch for bug fixes
and small improvements, minor for new features or format support:
npm version patch --workspaces --include-workspace-root \
--no-git-tag-version --no-workspaces-update
VER=$(node -p "require('./package.json').version")
git add -A && git commit -m "bump to $VER"
git tag -a "v$VER" -m "v$VER: brief description"
git push origin main --tags
Three gotchas, each of which fails CI if skipped:
--no-workspaces-updateleaves each package's internal@barwise/*dependency refs at the previous version. Bump those to the new version too (a one-pass rewrite of the@barwise/*entries in everypackages/*/package.json), then runnpm installto refresh the lockfile -- otherwisenpm cifails trying to fetch the old version from the registry.- Bump the pinned
SERVER_VERSIONinpackages/mcp/src/server.ts; a version-sync test asserts it matches package.json. - Run
npm run regen:tutorial: the committed tutorial Markdown stamps the tool version, and its drift test fails until regenerated.
The barwise-vscode extension has its own version (visible in the VS
Code marketplace) which may differ from the library packages. The
npm version command bumps each package relative to its current
version, so they stay in sync if they start in sync.
Create a GitHub release
gh release create v1.3.0 --title "v1.3.0" --generate-notes
--generate-notes builds the changelog from merged PRs since the last
tag. (Remote sessions have no gh CLI; use the GitHub MCP release
tools instead.) The release.yml workflow then builds and attaches
the artifacts: the VS Code extension (.vsix), the standalone CLI
bundle (barwise-cli-<ver>.cjs), the MCP server bundle
(barwise-mcp-<ver>.cjs), and a SHA256SUMS file. The same workflow
refreshes a rolling edge pre-release on every push to main, so a
current download always exists between tagged releases.
Minor releases: run the Phase A architecture review
A minor release is the cadence point for the deep assessment in
barwise/docs/specs/archive/architecture-analysis.spec.md: walk the scenario
catalog in docs/architecture-scenarios.md, refresh the reflexion and
hotspot snapshot via npm run arch:triage -- --base <last-release-tag>
(so the ranking covers only the changes since that release), and
commit a new dated docs/REPO_REVIEW-<YYYY-MM-DD>.md. The continuous
fitness functions (npm run depcruise, npm run purity) guard the
structural pillars between releases; this review covers the judgment
calls they cannot.
Expert Next.js App Router
Developpement
Un skill qui transforme Claude en expert Next.js App Router.
Générateur de README
Developpement
Crée des README.md professionnels et complets pour vos projets.
Rédacteur de Documentation API
Developpement
Génère de la documentation API complète au format OpenAPI/Swagger.