Skip to content

feat: add GitHub release workflow and documentation#15

Merged
brianrobt merged 5 commits into
masterfrom
cursor/release-process-d95a
Jul 19, 2026
Merged

feat: add GitHub release workflow and documentation#15
brianrobt merged 5 commits into
masterfrom
cursor/release-process-d95a

Conversation

@brianrobt

@brianrobt brianrobt commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

Establishes a formal release process for gvm2 with GitHub Releases integration.

Changes

Release Workflow (.github/workflows/release.yml)

  • Triggers on tag push (v*)
  • Validates that the tag matches the VERSION file
  • Uses ffurrer2/extract-release-notes@v2 to parse the ChangeLog (Keep a Changelog format)
  • Creates a GitHub Release via softprops/action-gh-release@v2
  • Marks pre-releases (-rc, -beta, -alpha) appropriately

Documentation (RELEASING.md)

  • Step-by-step release process
  • Version numbering guidelines based on semantic versioning
  • Conventional commit → version bump mapping
  • Pre-release and hotfix instructions

ChangeLog Updates

Version Bump

  • Updates VERSION to 1.2.1 in preparation for the next release

Release Process Going Forward

  1. Review commits since last tag to determine version bump
  2. Update VERSION file
  3. Add changelog entry with version and date
  4. Commit with chore: release vX.Y.Z
  5. Create and push tag: git tag vX.Y.Z && git push origin vX.Y.Z
  6. Workflow creates GitHub Release automatically

Note on v1.2.0

The v1.2.0 release was documented in ChangeLog but never tagged. Consider retroactively tagging commit 42f3656 as v1.2.0 to maintain release history:

git tag v1.2.0 42f3656
git push origin v1.2.0
Open in Web Open in Cursor 

Summary by CodeRabbit

  • New Features

    • Added automated GitHub Releases for version tags, including release notes and prerelease detection.
    • Added documented procedures for standard, prerelease, and hotfix releases.
  • Bug Fixes

    • Improved terminal message coloring for supported terminals, including warnings and errors.
    • Simplified version verification during installation.
  • Documentation

    • Updated the changelog with the 1.2.1 release entry and release-process reference.
  • Chores

    • Updated the application version to 1.2.1.

cursoragent and others added 2 commits July 19, 2026 12:26
- Add .github/workflows/release.yml triggered on tag push
- Validates tag matches VERSION file
- Extracts release notes from ChangeLog
- Creates GitHub Release automatically
- Add RELEASING.md with step-by-step release process

Co-authored-by: Brian Thompson <brianrobt@users.noreply.github.com>
- Remove Unreleased section from ChangeLog (per new release process)
- Convert pending fix (#8) to versioned 1.2.1 entry
- Bump VERSION to 1.2.1
- Add reference to RELEASING.md in ChangeLog header

Co-authored-by: Brian Thompson <brianrobt@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 50a1dc71-30e1-40d9-b02b-e089d3eab2e0

📥 Commits

Reviewing files that changed from the base of the PR and between fba86cf and 9d2ede4.

📒 Files selected for processing (9)
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • ChangeLog
  • RELEASING.md
  • VERSION
  • scripts/function/display_error
  • scripts/function/display_fatal
  • scripts/function/display_message
  • scripts/function/display_warning

📝 Walkthrough

Walkthrough

The release process now publishes GitHub Releases from versioned tags, documents release procedures, and updates version metadata. CI compares installed versions directly, while terminal display functions use ANSI coloring for supported terminals.

Changes

Release process

Layer / File(s) Summary
Release metadata and procedure
VERSION, ChangeLog, RELEASING.md
Version 1.2.1 and its dated changelog section are added, with documented standard, prerelease, and hotfix release steps.
Tag-triggered release publication
.github/workflows/release.yml
Tags matching v* are validated against VERSION, paired with extracted changelog notes, and published as GitHub Releases with prerelease detection.
Installed version verification
.github/workflows/ci.yml
The CI check compares the expected and installed gvm VERSION files with diff -q.

Terminal output coloring

Layer / File(s) Summary
ANSI-colored display functions
scripts/function/display_*
Error, fatal, message, and warning functions use ANSI sequences for xterm and xterm-256color, with plain-output fallbacks.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant GitTag as Git tag push
  participant ReleaseWorkflow as Release workflow
  participant VERSION
  participant ChangeLog
  participant GitHubRelease as GitHub Release
  GitTag->>ReleaseWorkflow: Push v* tag
  ReleaseWorkflow->>VERSION: Validate tag version
  ReleaseWorkflow->>ChangeLog: Extract release notes
  ReleaseWorkflow->>GitHubRelease: Create release and set prerelease flag
Loading

Possibly related PRs

  • brianrobt/gvm2#5: Modifies the same CI step that verifies the locally installed gvm version.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cursor/release-process-d95a

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

cursoragent and others added 3 commits July 19, 2026 12:32
… bash

Replace custom awk script with ffurrer2/extract-release-notes@v2 action
for parsing Keep a Changelog format.

Co-authored-by: Brian Thompson <brianrobt@users.noreply.github.com>
Co-authored-by: Brian Thompson <brianrobt@users.noreply.github.com>
tput sgr0 on macOS outputs \033(B\033[m which includes a 'switch to
ASCII character set' sequence. GitHub Actions logs don't handle this
properly, causing '(B' characters to appear in output.

Using direct ANSI escape codes (\033[0;XXm) avoids this issue and is
more portable. Also added xterm-256color to TERM checks.

Co-authored-by: Brian Thompson <brianrobt@users.noreply.github.com>
@brianrobt
brianrobt marked this pull request as ready for review July 19, 2026 12:52
@brianrobt
brianrobt merged commit db47da5 into master Jul 19, 2026
6 of 7 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