Skip to content

Conversation

@victorbruce
Copy link
Owner

🎯 What This PR Does

Implements automated semantic versioning, changelog generation, and simplifies Git workflow to Feature β†’ Main.

βœ… Changes

Added

  • standard-version package for automated releases
  • Release scripts in package.json:
    • npm run release - automatic version bump
    • npm run release:minor - minor version bump (new features)
    • npm run release:major - major version bump (breaking changes)
    • npm run release:patch - patch version bump (bug fixes)
    • npm run release:dry-run - test without changes
  • .versionrc.json - standard-version configuration
  • Initial CHANGELOG.md documenting v1.0.0 release
  • Updated README with simplified workflow documentation

Changed

  • Git workflow simplified: Feature β†’ Main (removed dev branch)
  • Branch protection now applies only to main
  • All features go directly to main via PR

πŸš€ New Workflow

Before

main β†’ dev β†’ feature β†’ dev β†’ main
(2 PRs per feature, complex)

After

main β†’ feature β†’ main
(1 PR per feature, simple)

πŸ”„ Release Process

# After PR merge to main
git checkout main
git pull origin main

# Run release (analyzes commits, bumps version, updates changelog)
npm run release

# Push with tags
git push --follow-tags origin main

πŸ“‹ How It Works

Conventional commits drive everything:

feat: add Angular Material      β†’ v1.0.0 β†’ v1.1.0 (MINOR)
fix: resolve build issue        β†’ v1.0.0 β†’ v1.0.1 (PATCH)
feat!: upgrade to Angular 21    β†’ v1.0.0 β†’ v2.0.0 (MAJOR)

standard-version automatically:

  • βœ… Analyzes commits since last tag
  • βœ… Determines correct version bump
  • βœ… Updates package.json versions
  • βœ… Generates CHANGELOG.md entry
  • βœ… Creates git commit and tag

πŸ§ͺ Testing

  • Dry run successful: npm run release:dry-run
  • All scripts added and tested
  • Configuration file validated
  • Documentation comprehensive
  • Conventional commit format verified
  • CI pipeline passes

πŸ“š Documentation

Added to README:

  • Simplified Git Flow explanation
  • Semantic versioning guide
  • Release process with examples
  • Conventional commit format reference
  • Step-by-step feature creation guide

πŸ—‘οΈ Cleanup

  • Branch dev removed (simplified workflow)
  • Branch protection updated (only main protected)
  • All future features target main directly

πŸ”„ Next Steps After Merge

  1. Remove dev branch protection (if exists)
  2. First release with standard-version:
   git checkout main
   git pull origin main
   npm run release:patch  # 1.0.0 β†’ 1.0.1
   git push --follow-tags origin main
  1. Verify:
    • package.json shows v1.0.1
    • CHANGELOG.md updated
    • Git tag v1.0.1 exists on main
    • GitHub release can be created from tag

πŸ“– Resources


Type: Tooling & Workflow improvement
Breaking Changes: None (infrastructure only)
Version: No bump (will be v1.0.1 after merge)

@victorbruce victorbruce self-assigned this Dec 23, 2025
@victorbruce victorbruce added the chore behind-the-scenes tasks which do not directly modify production code label Dec 23, 2025
@victorbruce victorbruce linked an issue Dec 23, 2025 that may be closed by this pull request
@victorbruce victorbruce merged commit 0c5c837 into main Dec 23, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore behind-the-scenes tasks which do not directly modify production code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Setup standard-version

2 participants