Prepare and publish a new version of the waza azd extension. USE FOR: "publish extension", "release new version", "bump version", "prepare release", "update changelog", "azd publish", "new release", "version bump", "cut a release". DO NOT USE FOR: running evals (use waza), writing skills (use skill-authoring), CI/CD pipeline changes (edit workflow files directly).
Automate version bumps, changelog updates, and PR creation for waza azd extension releases.
Follow these steps in order. Ask the user for input at each decision point.
Get the current version from version.txt and extension.yaml, then collect commits since the last release:
cat version.txt
# Find the latest azd extension version tags
git tag --list 'azd-ext-microsoft-azd-waza_*' --sort=-v:refname | head -5
# Get commits since last azd extension tag
last_tag=$(git tag --list 'azd-ext-microsoft-azd-waza_*' --sort=-v:refname | head -1)
git log "${last_tag}..HEAD" --oneline --no-decorate
If version.txt and extension.yaml differ, flag it to the user before proceeding.
Summarize the changes grouped by type:
feat: commitsfix: commitsrefactor:, chore:, docs: commitsPresent the summary to the user for review.
Then update CHANGELOG.md. The changelog follows Keep a Changelog format.
Perform these updates (using a placeholder version X.Y.Z — the actual version is determined in Step 2):
Move Unreleased content: Move any items currently under ## [Unreleased] into a staging area. If [Unreleased] is empty, populate from the git log summary gathered above.
Populate from commits: Prepare entries grouped under ### Added, ### Fixed, ### Changed as appropriate based on the commits gathered above.
Hold these changelog entries — the new version section header and comparison links will be finalized after the version is determined in Step 2.
Based on the changes gathered in Step 1, recommend a version bump type using standard semver semantics:
feat!:, BREAKING CHANGE:) → (MAJOR+1).0.0feat:) → MAJOR.(MINOR+1).0fix:, docs:, refactor:, chore:) → MAJOR.MINOR.(PATCH+1)Present the recommendation with rationale (e.g., "I see 3 feat: commits and no breaking changes — recommending a minor bump").
ASK THE USER to confirm the recommended bump or choose a different one.
Compute the new version and confirm with the user before proceeding.
Then finalize the changelog:
Create new version section: Insert a new section below ## [Unreleased] with today's date:
## [X.Y.Z] - YYYY-MM-DD
Add the prepared entries from Step 1 under the new version section.
Update comparison links at the bottom of the file:
[Unreleased]: https://github.com/microsoft/waza/compare/azd-ext-microsoft-azd-waza_X.Y.Z...HEAD
[X.Y.Z]: https://github.com/microsoft/waza/compare/azd-ext-microsoft-azd-waza_PREVIOUS...azd-ext-microsoft-azd-waza_X.Y.Z
Clear the Unreleased section: Leave ## [Unreleased] with empty subsections or blank.
Update these files with the new version:
version.txt — Replace contents with new version stringextension.yaml — Update the version: fieldShow the user a summary of all changes made:
version.txt, extension.yaml, CHANGELOG.mdgit diffASK THE USER: Should I create a PR with these changes?
If yes:
Create a feature branch:
git checkout -b release/v{VERSION}
Stage and commit all changes:
git add version.txt extension.yaml CHANGELOG.md
git commit -m "chore: Prepare release v{VERSION}"
Push the branch:
git push origin release/v{VERSION}
Create a PR using the GitHub CLI:
gh pr create \
--title "Release v{VERSION}" \
--body "## Release v{VERSION}
### Changes
{changelog entries for this version}
### Checklist
- [ ] Version bumped in version.txt and extension.yaml
- [ ] CHANGELOG.md updated
- [ ] CI passes
- [ ] Ready to publish via 'Publish azd Extension' workflow" \
--base main \
--head release/v{VERSION}
If no:
| File | Purpose | What Gets Updated |
|------|---------|-------------------|
| version.txt | Single source of version truth | New semver version string |
| extension.yaml | azd extension manifest | version: field |
| CHANGELOG.md | Human-readable change history | New version section with entries |
feat:, fix:, chore:, docs:, refactor:) when interpreting git historyrelease/v{VERSION}azd-ext-release.yml) to build, pack, and publish the extensionSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer