Releasing
GitHub is boussadjra/queryweave. npm is the
queryweave org, which owns the @queryweave/* scope. Those are independent names: do not move
the git repository to queryweave/queryweave.
The Release workflow only runs when github.repository is boussadjra/queryweave.
Every public package shares one version. pnpm publish:packages publishes in dependency order,
skips versions already on the registry, and chooses the dist-tag from the policy below. Do not use
changeset publish; the lockstep publisher is the source of truth.
Dist-tags
Section titled “Dist-tags”npm gave the first version ever published the latest tag, whatever its prerelease id. The policy
follows that fact rather than fighting it:
- Until a stable version exists, every publish goes to
latest, sopnpm add @queryweave/coreresolves the newest prerelease. There are no channel tags to remember, and the docs use bare package names. Thealphatag that the first publish created stays behind at0.1.0-alpha.1and is not maintained. - Once
0.1.0is on the registry,latestholds the stable line and a prerelease is published under its own id:0.2.0-beta.0underbeta,0.2.0-rc.0underrc.
pnpm publish:packages --tag <tag> overrides the policy for one run.
Cutting a new prerelease line
Section titled “Cutting a new prerelease line”Changesets is in pre mode, which decides the prerelease id of every automated version bump. Moving from alpha to beta needs both the pre-mode tag and the version to change, in this order:
pnpm changeset pre exitpnpm changeset pre enter betapnpm version:set 0.1.0-beta.0Commit the three results together. Later changesets then produce 0.1.0-beta.1, 0.1.0-beta.2,
and so on through the Version PR.
Do not run pnpm version:set and changeset version for the same release. Leaving pre mode for
the first stable release is pnpm changeset pre exit followed by a normal Version PR.
Before the next release
Section titled “Before the next release”-
The GitHub repository has been public since 2026-09-22, which provenance attestations, the
repositorylinks in every package manifest, and the ADR links in this site depend on. Confirm that private vulnerability reporting is enabled in the repository’s security settings, becauseSECURITY.mdsends reporters there. -
On each package page (
npmjs.com/package/@queryweave/core/access, and the same fortesting,browser,server,node,standard-schema,vue,vue-router,nuxt), confirm a GitHub Actions trusted publisher is attached:- Organization or user:
boussadjra - Repository:
queryweave - Workflow filename:
release.yml - Environment name:
release
0.1.0-beta.1published all nine packages over OIDC, so the publishers are attached. A later publish that logsSkipped OIDCmeans one is missing or no longer matches these values. - Organization or user:
-
Require 2FA and disallow tokens on those packages. Confirm no
NPM_TOKENsecret remains on the repository; thereleaseenvironment variableNPM_TRUSTED_PUBLISHINGis alreadytrue. -
Add a changeset for the release, merge, then merge the Version PR. Confirm the tag afterwards:
Terminal window npm view @queryweave/core versionnpm dist-tag ls @queryweave/core
Later releases
Section titled “Later releases”A user-visible change needs a changeset in the pull request. Merging to main opens a Version PR
that bumps the lockstep version and writes CHANGELOG.md. Merging that PR publishes with
pnpm publish:packages when NPM_TRUSTED_PUBLISHING is true.
The Release workflow never runs from a fork or a pull request. The publish jobs request
id-token: write only for themselves.
What is still deferred
Section titled “What is still deferred”Tuple, object, and JSON families; per-parameter omission policy; and server response contribution are on the roadmap.