This document provides a step-by-step checklist for releasing new versions of Synaptic Canvas packages.
# Set version for all packages + marketplace
python3 scripts/set-package-version.py --all --marketplace <version>
# Validate everything
python3 scripts/validate-all.py
# Commit & PR
git add -A && git commit -m "chore: release v<version>"
git push && gh pr create --base main| Type | Command | When to Use |
|---|---|---|
| Marketplace Release | --all --marketplace X.Y.Z |
Major releases, all packages together |
| All Packages | --all X.Y.Z |
Sync all packages to same version |
| Single Package | <package> X.Y.Z |
Individual package update |
Use this checklist for a full marketplace release (all packages + platform version).
-
1. Ensure clean working tree
git status # Should show "nothing to commit" git pull # Get latest changes
-
2. Determine version number
- Check current version:
cat version.yaml - Follow SemVer:
- PATCH (0.8.1): Bug fixes only
- MINOR (0.9.0): New features, backwards compatible
- MAJOR (1.0.0): Breaking changes
- Check current version:
-
3. Preview changes (dry run)
python3 scripts/set-package-version.py --all --marketplace <version> --dry-run
Review the output to ensure all expected files will be updated.
-
4. Apply version bump
python3 scripts/set-package-version.py --all --marketplace <version>
-
5. Run full validation suite
python3 scripts/validate-all.py
All validators must pass (except optional "Plugin JSON" which may skip).
-
6. Run tests
pytest tests/ -v
- 7. Update CHANGELOGs (if significant changes)
- Root
CHANGELOG.mdfor marketplace-wide changes - Individual
packages/<pkg>/CHANGELOG.mdfor package-specific changes
- Root
-
8. Review changes
git status git diff --stat
-
9. Commit
git add -A git commit -m "chore: release v<version>" -
10. Push and create PR
git push origin develop gh pr create --base main --title "Release: v<version>" --body "## Summary - Marketplace version bump to v<version> - All packages updated to v<version> ## Validation - [x] All validation checks pass - [x] Tests pass "
-
11. Wait for CI checks
- All GitHub Actions must pass
- Review any failures and fix if needed
-
12. Merge PR
gh pr merge --squash
- 13. Create GitHub release (optional)
gh release create v<version> --title "v<version>" --notes "Release notes here"
For releasing a single package independently.
-
1. Check current version
cat packages/<package>/manifest.yaml | grep version
-
2. Preview changes
python3 scripts/set-package-version.py <package> <version> --dry-run
-
3. Apply version bump
python3 scripts/set-package-version.py <package> <version>
-
4. Validate
python3 scripts/validate-all.py
-
5. Update package CHANGELOG
- Edit
packages/<package>/CHANGELOG.md
- Edit
-
6. Commit
git add -A git commit -m "chore(<package>): release v<version>" -
7. PR & merge
If you get "Version decrement not allowed":
# Use --force to override (use with caution)
python3 scripts/set-package-version.py --all <version> --forceIf validate-all.py fails:
- Check the specific validator that failed
- Run it individually for details:
python3 scripts/validate-marketplace-sync.py python3 scripts/validate-cross-references.py python3 scripts/audit-versions.py
- Fix issues and re-run
The set-package-version.py script automatically regenerates registries. If you need to manually regenerate:
python3 scripts/update-registry.py --allWhen you run set-package-version.py --all --marketplace <version>:
packages/<pkg>/manifest.yamlpackages/<pkg>/.claude-plugin/plugin.jsonpackages/<pkg>/commands/*.mdpackages/<pkg>/skills/*/SKILL.mdpackages/<pkg>/agents/*.md
.claude-plugin/marketplace.json.claude-plugin/registry.jsondocs/registries/nuget/registry.json
version.yaml(if--marketplaceflag used)
→ Documentation Index - Central hub for all guides
- Versioning Strategy - Version numbering philosophy
- Dependency Validation - Validation details
- Diagnostic Tools - Troubleshooting scripts