Bumpup Versions Skill
This skill provides a standardized workflow to synchronize and increment version numbers across the entire monorepo (root and all packages) using native pnpm commands.
When to Use
- •When preparing for a release that requires a unified version bump across all packages.
- •When you notice version drift between the root
package.jsonand workspace packages. - •When requested to "bump versions", "release a new version", or "sync package versions".
Instructions
1. Determine Target Version
Identify if you are performing a semantic bump (patch, minor, major) or setting an explicit version (e.g., 1.0.0).
2. Synchronize Workspace Packages
Run the version command recursively across all packages in the workspace using pnpm -r exec. The --no-git-tag-version flag prevents automatic git tagging and commits, and --allow-same-version ensures it doesn't fail if a package is already at the target version.
pnpm -r exec pnpm version <version_or_bump_type> --no-git-tag-version --allow-same-version
3. Update Root Version
Update the root package.json to match the workspace versions.
pnpm version <version_or_bump_type> --no-git-tag-version --allow-same-version
4. Update Lockfile and Internal References
Run pnpm install to ensure pnpm-lock.yaml is updated with the new versions and any internal workspace dependencies (using workspace:*) are correctly resolved.
pnpm install
5. Verify Changes
Check a sample of package.json files to ensure they all reflect the new version.
grep '"version":' package.json packages/*/package.json packages/plugins/*/package.json
Termination Criteria
- •The
versionfield in the rootpackage.jsonmatches the target version. - •The
versionfield in allpackages/**/package.jsonfiles matches the target version. - •
pnpm-lock.yamlhas been updated and there are no linting/test regressions related to the version change.
Examples
Scenario: Performing a patch bump across the monorepo
- •Agent: "I will bump the version to the next patch."
- •Command:
pnpm -r exec pnpm version patch --no-git-tag-version --allow-same-version - •Command:
pnpm version patch --no-git-tag-version --allow-same-version - •Command:
pnpm install - •Verification:
grep '"version":' package.json packages/*/package.json
Scenario: Setting an explicit version (e.g., 0.2.0)
- •Agent: "Synchronizing all packages to version 0.2.0."
- •Command:
pnpm -r exec pnpm version 0.2.0 --no-git-tag-version --allow-same-version - •Command:
pnpm version 0.2.0 --no-git-tag-version --allow-same-version - •Command:
pnpm install