Skip to content

feat: Add release-drafter for automated release management - #2

Merged
httpdss merged 2 commits into
mainfrom
cursor/add-release-drafter-5c2e
Aug 23, 2026
Merged

feat: Add release-drafter for automated release management#2
httpdss merged 2 commits into
mainfrom
cursor/add-release-drafter-5c2e

Conversation

@httpdss

@httpdss httpdss commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Changes

This PR adds automated release management to the struct-action repository, including release drafting and major version tagging for GitHub Action consumers.

What's included:

  • .github/release-drafter.yml: Configuration with v-prefixed tag template (v$RESOLVED_VERSION)
    • Categories for features, bug fixes, and maintenance
    • Version resolver with major/minor/patch labels (default: patch)
  • .github/workflows/release-drafter.yml: Workflow that runs on push to main and workflow_dispatch
    • Uses release-drafter/release-drafter@v7 (pinned to major version)
    • Grants contents: write permission
    • Uses GITHUB_TOKEN for authentication
  • .github/workflows/z-major-tagging.yml: Automatic major version tag management
    • Triggers on all tag pushes (v**)
    • Uses phwt/major-tagging-action@v1 to move/create major tags
    • When v1.2.3 is published, automatically updates the v1 tag to point to it
  • README updates: Comprehensive documentation about releases and version pinning

Release Strategy

After this PR is merged:

  1. First Release: The first push to main will automatically draft a release tagged as v1.0.0
  2. Major Version Tag: When v1.0.0 is published, the v1 tag will be automatically created/moved to point to it
  3. Subsequent Releases: Future releases (v1.1.0, v1.2.0, etc.) will automatically update the v1 tag

User Experience

Action consumers can pin to:

  • @v1 - Automatically gets minor and patch updates (recommended for most users)
  • @v1.0.0 - Pins to a specific version

Example usage:

- uses: httpdss/struct-action@v1

The v1 tag will always point to the latest v1.x.x release, providing a stable API while allowing users to automatically receive bug fixes and new features.

Testing

Once merged, pushing to main will trigger the release-drafter workflow and create a draft release with tag vX.Y.Z based on PR labels. When that release is published, the major-tagging workflow will automatically create/update the v1 tag.

Open in Web Open in Cursor 

- Add .github/release-drafter.yml with v-prefixed tag template
- Add workflow to run on push to main and workflow_dispatch
- Configure version-resolver with major/minor/patch labels (default: patch)
- Update README with release and version pinning information
- First release will be v1.0.0

Co-authored-by: Kenneth Belitzky <kenny@belitzky.com>
@cursor
cursor Bot force-pushed the cursor/add-release-drafter-5c2e branch from fd497a5 to 3b7f8b1 Compare August 23, 2026 20:39
- Add z-major-tagging.yml to automatically move major tags (v1)
- When v1.2.3 is published, v1 tag is created/moved to point to it
- Uses phwt/major-tagging-action@v1
- Updated README with detailed release management documentation

Co-authored-by: Kenneth Belitzky <kenny@belitzky.com>
@httpdss
httpdss marked this pull request as ready for review August 23, 2026 21:02
@httpdss
httpdss merged commit b1c3fb0 into main Aug 23, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants