Skip to content

Quick Release Guide

This guide provides the essential commands for releasing cyber-trackr-live. For detailed explanations, see the Architecture documentation.

Prerequisites Check

bash
# Ensure you're on main and up to date
git checkout main
git pull origin main
git status  # Should show no changes

# Ensure tests pass
bundle exec rake test
npm run docs:validate

# Verify Docker is running
docker --version

Release Commands

Patch Release (Bug Fixes)

bash
# 1. Prepare the release (updates version, regenerates everything)
bundle exec rake release:patch

# 2. Push changes
git push origin main

# 3. Create tag and trigger release
bundle exec rake release

Minor Release (New Features)

bash
# 1. Prepare the release
bundle exec rake release:minor

# 2. Push changes
git push origin main

# 3. Create tag and trigger release
bundle exec rake release

Major Release (Breaking Changes)

bash
# 1. Prepare the release
bundle exec rake release:major

# 2. Push changes
git push origin main

# 3. Create tag and trigger release
bundle exec rake release

What Happens Automatically

When you run bundle exec rake release:patch/minor/major:

  • ✅ Updates version in openapi/openapi.yaml
  • ✅ Syncs package.json version
  • ✅ Regenerates Ruby client
  • ✅ Runs all tests
  • ✅ Generates changelogs
  • ✅ Creates release notes
  • ✅ Builds documentation
  • ✅ Commits changes

When you run bundle exec rake release:

  • ✅ Creates git tag
  • ✅ Pushes tag to GitHub
  • ✅ Triggers GitHub Actions

GitHub Actions then:

  • ✅ Runs tests
  • ✅ Creates GitHub Release
  • ✅ Publishes gem to RubyGems
  • ✅ Deploys documentation

Monitoring the Release

After pushing the tag, monitor progress at:

Quick Troubleshooting

  • "Working directory not clean" → Commit or stash changes first
  • "Must be on main branch" → Run git checkout main
  • Version check fails → Run bundle exec rake version_check for details
  • Tests failing → Fix issues before releasing

For more help, see Troubleshooting.

Released under the Apache-2.0 License.