This document outlines the release process for contributor.info, including versioning, changelog generation, and deployment procedures.
We use Semantic Versioning and Conventional Commits for automated releases:
- Commits trigger automated version bumps
- Changelogs are generated from commit messages
- Releases are deployed to production automatically
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Note: Conventional commit format is recommended but not strictly enforced. Non-conventional commits will show warnings but won't block PR merging.
fix: Bug fix (patch version bump)feat: New feature (minor version bump)perf: Performance improvements (minor version bump)refactor: Code refactoring (minor version bump)docs: Documentation changes (no release)style: Code formatting (no release)test: Adding or updating tests (no release)chore: Build process, dependency updates (no release)ci: CI/CD configuration changes (no release)
Major version bumps are only triggered via manual GitHub Actions workflow. This prevents accidental major releases and ensures intentional version control.
Major releases require explicit manual action to prevent accidental breaking version bumps.
Force a major release via GitHub Actions:
- Navigate to Actions tab in GitHub repository
- Select Release workflow
- Click Run workflow button
- Select branch:
main - Choose Release type:
major - Click Run workflow to execute
This creates an empty commit with a BREAKING CHANGE footer that triggers semantic-release to bump the major version.
After triggering a major release, verify:
# Check if release was created
gh release list --limit 3
# View release notes
gh release view v2.0.0
# Verify production deployment
curl -I https://contributor.info- API Breaking Changes: New endpoint structure, removed fields
- Component Refactoring: Changed prop interfaces, removed components
- Database Schema Changes: New required fields, removed tables
- Build System Updates: New Node.js version, changed build output
- Authentication Changes: New login flow, removed auth methods
# Patch release (1.0.0 → 1.0.1)
git commit -m "fix: resolve login redirect issue"
# Minor release (1.0.0 → 1.1.0)
git commit -m "feat: add repository health insights"
git commit -m "perf: optimize database queries"
git commit -m "refactor: restructure authentication module"
# Major release (1.0.0 → 2.0.0)
# Use GitHub Actions manual workflow trigger onlyCheck your commit messages before pushing:
npm run check-commitsThis script provides helpful feedback about conventional commit format but is non-blocking.
- Create feature branches from
main - Use conventional commit messages
- Submit pull requests for review
- Automatic checks: Tests, TypeScript, linting
- Manual review: Code quality, functionality
- Squash and merge: Use conventional commit format for merge message
When code is merged to main:
- Version calculation: Based on conventional commits since last release
- Changelog generation: From commit messages and PR data
- Git tag creation: Semantic version tag
- GitHub release: With generated changelog
- Production deployment: To Netlify
For critical hotfixes that need immediate release:
# 1. Create hotfix branch
git checkout -b hotfix/critical-security-fix
# 2. Make the fix with conventional commit
git commit -m "fix: patch security vulnerability in auth"
# 3. Push and create PR
git push origin hotfix/critical-security-fix
# 4. Merge PR - triggers automatic releaseFor testing releases before production:
# 1. Create pre-release tag
git tag v1.2.0-beta.1
# 2. Push tag
git push origin v1.2.0-beta.1
# 3. Manual GitHub release with "pre-release" flagCheck current version:
# From package.json
npm version
# From git tags
git describe --tags --abbrev=0
# From GitHub releases
gh release list --limit 1Versions are automatically calculated by semantic-release based on:
- Patch (x.x.1):
fix:commits - Minor (x.1.x):
feat:,perf:,refactor:commits - Major (1.x.x): Manual GitHub Actions trigger only
Changelogs are automatically generated including:
- Breaking Changes: Major version updates
- Features: New functionality added
- Bug Fixes: Issues resolved
- Performance: Performance improvements
- Dependencies: Dependency updates
# Changelog
## [1.2.0] - 2024-01-15
### Features
- Add repository health insights with AI analysis
- Implement responsive insights sidebar
- Add LLM-powered recommendations
### Bug Fixes
- Fix login redirect loop on expired tokens
- Resolve mobile layout issues in contributor cards
### Performance
- Add caching layer for API responses
- Optimize bundle size with code splittingAutomatically triggered on releases:
- Build:
npm run buildwith optimizations - Tests: Full test suite execution
- Deploy: To Netlify production environment
- Verification: Automatic health checks
Required for production deployment:
VITE_GITHUB_CLIENT_ID=your_github_app_id
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_OPENAI_API_KEY=your_openai_api_key # Optional for LLM featuresIf issues are detected post-deployment:
# 1. Identify last known good release
gh release list
# 2. Redeploy previous version via Netlify dashboard
# Or revert the problematic commit:
git revert <commit-hash>
git push origin main # Triggers new releaseAfter each release:
- Application loads successfully
- Authentication flow works
- Repository search functions
- GitHub API integration operational
- No console errors in production
- Netlify: Deployment status and performance metrics
- GitHub: API rate limit monitoring
- Supabase: Database performance and health
- OpenAI: API usage and cost tracking (if enabled)
Release Failed
- Check GitHub Actions logs
- Verify conventional commit format
- Ensure all tests pass
Deployment Failed
- Check Netlify build logs
- Verify environment variables
- Test build locally:
npm run build
Missing Changelog
- Ensure commits follow conventional format
- Check semantic-release configuration
- Verify GitHub token permissions
Major Release Issues
- No major version bump: Major releases require manual GitHub Actions trigger
- Manual trigger failed: Check repository permissions and workflow dispatch settings
- Release workflow not triggered: Verify push is to
mainbranch for automatic releases
- Infrastructure: Netlify support
- Database: Supabase support
- Repository: GitHub support
- LLM Services: OpenAI support
- Use clear, descriptive messages
- Include issue numbers when applicable
- Follow conventional commit format consistently
- Highlight user-facing changes
- Include migration instructions for breaking changes
- Link to relevant documentation
- Test locally before committing
- Verify all automated tests pass
- Test deployment in preview environment
For questions about the release process, see CONTRIBUTING.md or open an issue.