Alpha/beta/RC tagging patterns and GitHub pre-release workflows for managing pre-production releases. Use when creating alpha releases, beta releases, release candidates, managing pre-release branches, testing release workflows, or when user mentions pre-release, alpha, beta, RC, release candidate, or pre-production versioning.
Limited to specific tools
Additional assets for this skill
This skill is limited to using the following tools:
examples/alpha-workflow.mdexamples/beta-workflow.mdexamples/multi-prerelease-pipeline.mdexamples/rc-workflow.mdscripts/create-prerelease.shscripts/promote-prerelease.shscripts/test-prerelease.shtemplates/alpha-version-tag.templatetemplates/beta-version-tag.templatetemplates/github-prerelease-workflow.ymltemplates/prerelease-config.jsontemplates/rc-version-tag.templatePre-release version management patterns including alpha, beta, and release candidate (RC) tagging with GitHub pre-release workflows.
This skill provides comprehensive patterns for managing pre-release versions throughout the software development lifecycle. It supports semantic versioning pre-release identifiers (alpha, beta, rc) with GitHub Actions automation for safe pre-production testing.
Semantic versioning pre-release format:
<major>.<minor>.<patch>-<prerelease>.<number>
Examples:
1.0.0-alpha.1 - First alpha release1.0.0-alpha.2 - Second alpha release1.0.0-beta.1 - First beta release1.0.0-beta.2 - Second beta release1.0.0-rc.1 - First release candidate1.0.0-rc.2 - Second release candidate1.0.0 - Stable release (promoted from RC)Purpose: Internal testing, highly unstable, breaking changes expected
Characteristics:
When to use:
Purpose: External testing, feature complete but may have bugs
Characteristics:
When to use:
Purpose: Final pre-release testing, production ready unless critical bugs found
Characteristics:
When to use:
All scripts are located in scripts/ and provide functional pre-release management.
Create a new pre-release version with automatic version calculation.
Usage:
bash scripts/create-prerelease.sh <prerelease_type> <base_version>
Parameters:
prerelease_type: alpha, beta, or rcbase_version: Target stable version (e.g., 1.0.0)Example:
# Create first alpha release for version 1.0.0
bash scripts/create-prerelease.sh alpha 1.0.0
# Output: 1.0.0-alpha.1
# Create next alpha release
bash scripts/create-prerelease.sh alpha 1.0.0
# Output: 1.0.0-alpha.2
Features:
Promote a pre-release to the next stage or stable release.
Usage:
bash scripts/promote-prerelease.sh <current_version>
Promotion Path:
alpha.N → beta.1
beta.N → rc.1
rc.N → stable (removes pre-release identifier)
Example:
# Promote alpha to beta
bash scripts/promote-prerelease.sh 1.0.0-alpha.3
# Output: 1.0.0-beta.1
# Promote beta to RC
bash scripts/promote-prerelease.sh 1.0.0-beta.2
# Output: 1.0.0-rc.1
# Promote RC to stable
bash scripts/promote-prerelease.sh 1.0.0-rc.2
# Output: 1.0.0
Features:
Validate pre-release version format and readiness.
Usage:
bash scripts/test-prerelease.sh <version>
Validations:
Exit Codes:
0: All validations passed1: Format validation failed2: Consistency check failed3: Git tag conflict4: Changelog missingExample:
# Validate alpha release
bash scripts/test-prerelease.sh 1.0.0-alpha.1
# Validate RC release
bash scripts/test-prerelease.sh 1.0.0-rc.1
All templates are located in templates/ and provide production-ready configurations.
GitHub Actions workflow for automated pre-release creation and testing.
Location: templates/github-prerelease-workflow.yml
Features:
Trigger Branches:
alpha/* → Creates alpha releasesbeta/* → Creates beta releasesrelease/* → Creates RC releasesUsage:
# Copy to project
cp templates/github-prerelease-workflow.yml .github/workflows/prerelease.yml
# Customize as needed
vim .github/workflows/prerelease.yml
Git tag annotation template for alpha releases.
Location: templates/alpha-version-tag.template
Format:
Alpha Release v{VERSION}
🚧 INTERNAL TESTING ONLY
This is an unstable alpha release for internal testing.
Breaking changes are expected in future releases.
Changes:
{CHANGELOG}
Testing:
- [ ] Unit tests passed
- [ ] Integration tests passed
- [ ] Manual testing completed
DO NOT USE IN PRODUCTION
Git tag annotation template for beta releases.
Location: templates/beta-version-tag.template
Format:
Beta Release v{VERSION}
🧪 EARLY ACCESS
This is a beta release for early adopters and testing.
Features are complete but bugs may exist.
Changes:
{CHANGELOG}
Testing:
- [ ] All tests passing
- [ ] Performance benchmarks completed
- [ ] Documentation reviewed
- [ ] Known issues documented
Use with caution in production environments.
Git tag annotation template for release candidates.
Location: templates/rc-version-tag.template
Format:
Release Candidate v{VERSION}
✅ PRODUCTION READY (pending final validation)
This release candidate is considered stable and ready for production
unless critical issues are discovered during final testing.
Changes:
{CHANGELOG}
Validation:
- [x] All tests passing
- [x] Performance validated
- [x] Documentation complete
- [x] Security audit completed
- [ ] Production deployment tested
Expected stable release: {EXPECTED_DATE}
Configuration template for pre-release workflow settings.
Location: templates/prerelease-config.json
Structure:
{
"prerelease": {
"alpha": {
"branch_pattern": "alpha/*",
"auto_increment": true,
"testing_required": ["unit", "integration"],
"notification_channels": ["slack-dev"],
"retention_days": 30
},
"beta": {
"branch_pattern": "beta/*",
"auto_increment": true,
"testing_required": ["unit", "integration", "e2e"],
"notification_channels": ["slack-qa", "slack-dev"],
"retention_days": 90
},
"rc": {
"branch_pattern": "release/*",
"auto_increment": true,
"testing_required": ["unit", "integration", "e2e", "performance"],
"notification_channels": ["slack-releases", "slack-qa"],
"retention_days": 180
}
}
}
All examples are located in examples/ and demonstrate real-world workflows.
Complete alpha release workflow from creation to promotion.
Location: examples/alpha-workflow.md
Covers:
Complete beta release workflow including feedback integration.
Location: examples/beta-workflow.md
Covers:
Complete release candidate workflow to stable release.
Location: examples/rc-workflow.md
Covers:
Managing multiple concurrent pre-release tracks.
Location: examples/multi-prerelease-pipeline.md
Covers:
This skill supports versioning plugin commands:
--prerelease flagIf version already exists:
# Check existing tags
git tag -l "v1.0.0-*"
# Delete conflicting tag
git tag -d v1.0.0-alpha.1
# Recreate with correct number
bash scripts/create-prerelease.sh alpha 1.0.0
If promotion fails:
# Validate current version
bash scripts/test-prerelease.sh 1.0.0-alpha.3
# Check promotion path
# alpha.N → beta.1 → rc.1 → stable
# Force promotion if needed
bash scripts/promote-prerelease.sh 1.0.0-alpha.3 --force
If GitHub Actions workflow fails:
# Check workflow logs
gh run list --workflow=prerelease.yml
# View specific run
gh run view <run-id>
# Re-run failed jobs
gh run rerun <run-id>
If versions are out of sync:
# Check all version locations
bash scripts/test-prerelease.sh 1.0.0-beta.1
# Manual sync if needed
# Update VERSION file
echo '{"version": "1.0.0-beta.1"}' > VERSION
# Update package.json
npm version 1.0.0-beta.1 --no-git-tag-version
# Update pyproject.toml
sed -i 's/version = .*/version = "1.0.0-beta.1"/' pyproject.toml