Skip to content

Create GitHub Releases from existing git tags #105

@jasoneplumb

Description

@jasoneplumb

Parent Epic

#104

Problem

The repo has 20+ git tags (v0.1.0-beta through v0.20.8-beta) but zero GitHub Releases. The Releases tab is empty. This is the single most visible gap — releases are the primary signal that a project is actively maintained and deliberately versioned.

Current State

$ gh release list --repo jasoneplumb/webmap.dev
# (empty)

$ git tag | wc -l
# 20+

CHANGELOG.md has detailed release notes for every version.

Desired State

Every git tag has a corresponding GitHub Release with:

  • Release title matching the tag (e.g., v0.20.8-beta)
  • Release notes extracted from CHANGELOG.md for that version
  • Pre-release flag set for -beta versions
  • Latest release badge visible on the repo page

Implementation Details

  1. Parse CHANGELOG.md to extract notes for each version
  2. For each git tag, create a GitHub Release using gh release create
  3. Mark -beta versions as pre-releases
  4. Verify the Releases tab shows all versions with notes

Key Files

  • CHANGELOG.md — source of release notes content
  • Git tags — source of version list

Commands Reference

# List all tags
git tag --sort=-version:refname

# Create a release from an existing tag
gh release create v0.20.8-beta --title "v0.20.8-beta" --notes "..." --prerelease

# For non-beta releases (when they exist)
gh release create v1.0.0 --title "v1.0.0" --notes "..."

Suggested Prompt

Read CHANGELOG.md and create GitHub Releases for every git tag in the repo.
For each tag:
1. Extract the release notes from CHANGELOG.md for that version
2. Create a GitHub Release with `gh release create <tag> --title "<tag>" --notes "<notes>"`
3. Add the --prerelease flag for any version containing "-beta" or "-alpha"
4. Process tags in chronological order (oldest first) so "Latest" badge lands on the newest

Verify with `gh release list` when done.

Acceptance Criteria

  • Every git tag has a corresponding GitHub Release
  • Release notes match CHANGELOG.md content for each version
  • Beta versions are marked as pre-releases
  • Latest release badge shows the most recent version

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Critical — fix immediatelyenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions