Files
duty-teller/.cursor/skills/project-release/SKILL.md
Nikolay Tatarinov 3c4c28a1ac feat: add project release and run tests skills documentation
- 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.
2026-03-04 10:18:43 +03:00

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.md has 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 in YYYY-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-teller with 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.