Skip to content

Conversation

@graycreate
Copy link
Member

Summary

This PR implements a comprehensive changelog management system that automatically extracts version-specific release notes from CHANGELOG.md and uses them in TestFlight releases.

Changes

  1. CHANGELOG.md - New changelog file with:

    • Structured format for version history
    • Current v1.1.1 entries populated from git history
    • Clear instructions for maintaining changelog
  2. fastlane/changelog_helper.rb - Ruby module that:

    • Extracts changelog for specific version from CHANGELOG.md
    • Validates that changelog entry exists before release
    • Formats content for TestFlight (converts numbered lists to bullets)
    • Handles 4000-character TestFlight limit
  3. fastlane/Fastfile - Updated to:

    • Import and use changelog_helper
    • Validate changelog exists before building
    • Extract version-specific changelog
    • Pass changelog to TestFlight upload
  4. CLAUDE.md - Added documentation:

    • Complete version and changelog workflow
    • Step-by-step release process
    • Fastlane command reference

How It Works

Before this PR:

  • All TestFlight releases showed: "Bug fixes and improvements"

After this PR:

  • Automatically extracts version-specific changelog
  • Fails build if CHANGELOG.md missing entry for current version
  • Formats changelog properly for TestFlight display

Example Workflow

When releasing version 1.2.0:

  1. Update V2er/Config/Version.xcconfig:

    MARKETING_VERSION = 1.2.0
    
  2. Update CHANGELOG.md:

    ## v1.2.0
    1. Feature: New awesome feature
    2. Fix: Critical bug fix
  3. Commit and push - CI will automatically:

    • Validate changelog exists
    • Extract changelog for v1.2.0
    • Upload to TestFlight with proper release notes

Testing

✅ Tested changelog extraction locally:

  • Successfully extracts v1.1.1 changelog
  • Converts numbered lists to bullets
  • Handles missing versions gracefully

Benefits

  • 📝 Better communication - Testers see specific changes
  • 🔒 Enforced documentation - Build fails without changelog
  • 🚀 Automated process - No manual TestFlight edits needed
  • 📊 Version history - CHANGELOG.md provides clear project history

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

- Create CHANGELOG.md to maintain version history
- Add changelog_helper.rb to extract version-specific changelogs
- Update Fastfile to validate and use CHANGELOG.md content
- Automatically format changelog for TestFlight (numbered list to bullets)
- Add comprehensive documentation in CLAUDE.md
- Build will fail if CHANGELOG.md missing entry for current version

This ensures all TestFlight releases have proper, version-specific
release notes instead of generic 'Bug fixes and improvements' text.
Copilot AI review requested due to automatic review settings October 9, 2025 14:43
@graycreate graycreate merged commit a5a6079 into main Oct 9, 2025
@github-actions github-actions bot added the size/L label Oct 9, 2025
@github-actions
Copy link

github-actions bot commented Oct 9, 2025

Code Coverage Report ❌

Current coverage: 0%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants