Skip to content

Enhance Release Workflow: Automated Changelog Management and Validation#81

Merged
thomas-vilte merged 4 commits intomasterfrom
dev
Jan 5, 2026
Merged

Enhance Release Workflow: Automated Changelog Management and Validation#81
thomas-vilte merged 4 commits intomasterfrom
dev

Conversation

@thomas-vilte
Copy link
Owner

@thomas-vilte thomas-vilte commented Jan 5, 2026

Description

I implemented a more robust release workflow by automating the management of the [Unreleased] section in CHANGELOG.md. This PR introduces automatic migration of unreleased changes to the new version entry, comprehensive changelog validation, and a significantly improved preview UI for releases.

Key Changes

  • Automated Changelog Migration: Implemented logic to automatically shift content from the [Unreleased] header to the new versioned header during the release process.
  • Changelog Validation: Added a validation engine that checks for ISO 8601 dates, comparison links, and proper sectioning (###) to ensure "Keep a Changelog" compliance.
  • Enhanced Release Preview: Refactored the preview command to display distinct sections for the Release Summary, CHANGELOG.md Preview, and GitHub Release Notes using a new PrintSectionHeader UI component.
  • Resilient File I/O: Improved error handling for file operations with actionable user suggestions for permission and path issues.

Technical Impact

  • Service Encapsulation: The ReleaseService now handles the full lifecycle of changelog formatting and validation, decoupling it from the command layer.
  • Data Integrity: Regex-based validation prevents malformed changelogs from being committed to the repository.
  • Testing Coverage: Introduced three new test suites covering unreleased section migration, validation logic, and semantic section rendering.

Fixes #81

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

How Has This Been Tested?

I implemented comprehensive unit tests for the new service methods and manually verified the CLI output.

  • Unit tests
  • Integration tests
  • Manual test: Verified the new CLI preview sections and file writing logic locally.

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

🧪 Test Plan & Evidence

Suggested Manual Verification

  • API/Backend: Attach JSON response or logs as evidence of correct behavior
  • Performance: Ensure no significant latency increase
  • Unit Tests: Run go test ./... and ensure all tests pass
  • No Regressions: Verify that related features still work as expected

@thomas-vilte thomas-vilte changed the title Dev Enhance Release Workflow: Automated Changelog Management and Validation Jan 5, 2026
@thomas-vilte thomas-vilte added feature New features test Testing, trials, and coverage labels Jan 5, 2026
@thomas-vilte thomas-vilte merged commit ef501cf into master Jan 5, 2026
1 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New features test Testing, trials, and coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant