vibetunnel/docs/RELEASE_IMPROVEMENTS.md
2025-07-08 02:15:04 +01:00

2.3 KiB

Release Process Improvements Summary

Issues Fixed

1. Dry-Run Mode Now Actually Dry

  • Added proper --dry-run flag support that prevents ALL file modifications
  • Shows what would be done without making any changes
  • Can be used with any release type: ./scripts/release.sh beta 7 --dry-run

2. Clear Parameter Documentation

  • Added --help flag with comprehensive usage examples
  • Better error messages that show exactly what's expected
  • Created RELEASE_PROCESS.md with detailed workflow documentation

3. CHANGELOG.md Location Fixed

  • Script now looks in project root first (where it actually exists)
  • Removed confusing warnings about copying to mac/ directory
  • Falls back gracefully if not found

4. iOS Info.plist Fixed

  • Changed from hardcoded "1.0" to $(MARKETING_VERSION)
  • Changed from hardcoded "1" to $(CURRENT_PROJECT_VERSION)
  • Now properly syncs with version.xcconfig

5. Version Management Clarified

  • Documented that version.xcconfig is the source of truth
  • Script parameters are for validation, not version modification
  • Clear examples of correct usage for each release type

New Features

Enhanced Error Messages

# Before: Confusing error
❌ Error: Pre-release number required for beta

# After: Clear guidance
❌ Error: Pre-release number required for beta releases
Usage: ./scripts/release.sh beta <number>
Example: ./scripts/release.sh beta 7

Proper Argument Parsing

  • Supports flags in any order
  • Validates pre-release numbers are positive integers
  • Shows helpful examples on errors

Comprehensive Documentation

  • docs/RELEASE_PROCESS.md - Complete workflow guide
  • Clear explanation of version vs release type relationship
  • Common mistakes and troubleshooting section

Usage Examples

Test a release without changes:

./scripts/release.sh beta 7 --dry-run

Get help:

./scripts/release.sh --help

Create actual release:

./scripts/release.sh beta 7

Benefits

  1. Safer: Dry-run prevents accidental modifications during testing
  2. Clearer: Better documentation and error messages reduce confusion
  3. Consistent: iOS now uses same version variables as macOS
  4. Maintainable: Improved code structure makes future changes easier