Release Skill
Guide the user through the process of releasing a new version of the da_vinci packages.
Process
- •
Determine bump type: Ask the user which type of version bump to perform:
- •
major- Breaking changes (e.g., 3.0.0 → 4.0.0) - •
minor- New features, backward compatible (e.g., 3.0.0 → 3.1.0) - •
patch- Bug fixes, backward compatible (e.g., 3.0.0 → 3.0.1)
- •
- •
Run bump-version script: Execute
./scripts/bump-version.sh {bump_type} --no-changelogto:- •Update version in both
packages/core/pyproject.tomlandpackages/cdk/pyproject.toml - •Update
__version__inpackages/core/da_vinci/__init__.pyto match - •Update CDK dependency on core to exact version
- •Regenerate
uv.lock - •Capture the new version number from stdout
- •Update version in both
- •
Show version change: Display the version change to the user (old → new)
- •
Ask for changelog description: Prompt the user to describe the changes in this release. This should be a concise summary of:
- •New features added
- •Bugs fixed
- •Breaking changes (if major bump)
- •Other notable changes
- •
Update changelog: Run
./scripts/update-changelog.sh {version} "{description}"to add the entry to CHANGELOG.md - •
Show git diff: Display the changes made by running
git diffso the user can review - •
Commit changes: Create a commit with the version bump:
bashgit add . git commit -m "chore: release v{version}" - •
Create git tag: Create an annotated tag for the release:
bashgit tag -a v{version} -m "Release v{version}" - •
Confirm push: Ask the user if they want to push the commit and tag now. Explain that pushing the tag will trigger GitHub Actions to build and publish the packages to S3 PyPI.
- •
Push if confirmed: If the user confirms, push both the commit and tags:
bashgit push && git push --tags
- •
Inform about automation: Let the user know that:
- •GitHub Actions will now build both packages
- •Packages will be distributed to https://packages.davinciproject.dev/simple/
- •A GitHub Release will be created with the changelog
- •They can monitor progress in the Actions tab on GitHub
Important Notes
- •Both
da_vinciandda_vinci-cdkare always released together with the same version - •The version format is
MAJOR.MINOR.PATCH(SemVer) - •Tags use the format
v{version}(e.g.,v3.0.0) - •The bump-version script updates both packages and the lockfile automatically
- •Always verify the git diff before committing
- •GitHub Actions is triggered by the tag push, not the commit push
Example Flow
User: /release
Assistant: Which type of version bump do you want to perform?
- major (breaking changes)
- minor (new features)
- patch (bug fixes)
User: minor
Assistant: [Runs ./scripts/bump-version.sh minor --no-changelog]
Bumping version: 3.0.0 → 3.1.0
Please describe the changes in this release:
User: Added support for X, fixed bug in Y
Assistant: [Runs ./scripts/update-changelog.sh 3.1.0 "Added support for X, fixed bug in Y"]
[Shows git diff]
Ready to commit and tag? (yes/no)
User: yes
Assistant: [Creates commit and tag]
Do you want to push now and trigger the release? (yes/no)
User: yes
Assistant: [Pushes commit and tags]
Release v3.1.0 has been pushed! GitHub Actions will now build and publish the packages.
You can monitor progress at: https://github.com/{org}/{repo}/actions