This document is for Symfony UX maintainers. It covers procedures that regular contributors don't need.
The Git tag is the source of truth for the released version. Workspace package.json files must already match the tag at publish time — release-on-npm.yaml publishes whatever versions are committed and does not verify that they match the tag.
release.sh keeps everything in sync. It rebuilds assets to confirm the committed dist/ files are up to date, bumps every workspace package.json, commits Bump npm packages to v3.3.0, and creates the signed v3.3.0 tag — all in one step. Nothing is pushed.
From the release branch, with upstream pointing to symfony/ux:
$ git checkout 3.x # or 2.x
$ git pull upstream 3.x
$ ./release.sh 3.3.0Review the commit and tag, then push:
$ git push upstream 3.x --follow-tagsPushing the tag triggers release-on-npm.yaml, which publishes each package to npm via the OIDC trusted publisher.
Each symfony/ux-* package lives in its own read-only repository split from this monorepo, managed on the split.sh dashboard.