- Introduced SKILL.md files for project release and running tests in the duty-teller project. - Documented the project release workflow, including steps for updating CHANGELOG, committing changes, and tagging releases. - Provided instructions for running backend (pytest) and frontend (Vitest) tests, including prerequisites and failure handling. - Enhanced user guidance for verifying changes and ensuring test coverage.
2.4 KiB
2.4 KiB
name, description
| name | description |
|---|---|
| project-release | Performs a project release by updating CHANGELOG for the new version, committing all changes, and pushing a version tag. Use when the user asks to release, cut a release, publish a version, or to update changelog and push a tag. |
Project Release
Release workflow for duty-teller: update changelog, commit, tag, and push. Triggers Gitea Actions (Docker build) on v* tags.
Prerequisites
- Decide the new version (e.g.
2.1.0). Use Semantic Versioning. - Ensure
CHANGELOG.mdhas entries under## [Unreleased](or add a short note like "No changes" if intentional).
Steps
1. Update CHANGELOG.md
- Replace the
## [Unreleased]section with a dated release section:## [X.Y.Z] - YYYY-MM-DD(use today's date inYYYY-MM-DD).
- Leave a new empty
## [Unreleased]section after it (for future edits). - At the bottom of the file, add the comparison link for the new version:
[X.Y.Z]: https://github.com/your-org/duty-teller/releases/tag/vX.Y.Z- (Replace
your-org/duty-tellerwith the real repo URL if different.)
- Update the
[Unreleased]link to compare against this release, e.g.:[Unreleased]: https://github.com/your-org/duty-teller/compare/vX.Y.Z...HEAD
Format follows Keep a Changelog; keep existing subsections (Added, Changed, Security, etc.) under the new version.
2. Bump version in pyproject.toml (optional)
- Set
version = "X.Y.Z"in[project]so it matches the release. Skip if the project does not sync version here.
3. Commit and tag
- Stage all changes:
git add -A - Commit with Conventional Commits:
git commit -m "chore(release): vX.Y.Z" - Create annotated tag:
git tag -a vX.Y.Z -m "Release vX.Y.Z" - Push branch:
git push origin main(or current branch) - Push tag:
git push origin vX.Y.Z
Pushing the v* tag triggers .gitea/workflows/docker-build.yml (Docker build and release).
Checklist
- CHANGELOG:
[Unreleased]→[X.Y.Z] - YYYY-MM-DD, new empty[Unreleased], links at bottom updated - pyproject.toml version set to X.Y.Z (if used)
git add -A&&git commit -m "chore(release): vX.Y.Z"git tag -a vX.Y.Z -m "Release vX.Y.Z"git push origin main&&git push origin vX.Y.Z
Notes
- Do not push tags from unreleased or uncommitted changelog.
- If the repo URL in CHANGELOG links is a placeholder, keep it or ask the user for the correct base URL.