Release Automation Skill
When to use this skill
Use this skill when:
- •Bumping project version (major, minor, patch)
- •Generating changelogs from git history
- •Publishing Python packages to PyPI
- •Building and pushing Docker images
- •Creating GitHub releases
- •Coordinating multi-step release processes
- •Managing pre-release and beta versions
Semantic Versioning (SemVer)
Paracle follows Semantic Versioning 2.0.0: MAJOR.MINOR.PATCH
v0.1.0 → v0.2.0 → v0.2.1 → v1.0.0
Version Components
MAJOR (breaking changes):
- •Incompatible API changes
- •Removed features
- •Changed behavior that breaks existing code
MINOR (new features):
- •New functionality (backward compatible)
- •New features added
- •Deprecation of features (but not removal)
PATCH (bug fixes):
- •Bug fixes
- •Performance improvements
- •Documentation updates
- •Security patches
Pre-Release Versions
v0.1.0-alpha.1 ← Alpha release v0.1.0-beta.2 ← Beta release v0.1.0-rc.1 ← Release candidate v0.1.0 ← Stable release
Version Bump Decision Tree
┌─────────────────────────────────────────────────┐ │ What changed? │ ├─────────────────────────────────────────────────┤ │ Breaking API changes? │ │ ├─ YES → MAJOR bump (0.1.0 → 1.0.0) │ │ └─ NO → Continue │ │ │ │ New features (backward compatible)? │ │ ├─ YES → MINOR bump (0.1.0 → 0.2.0) │ │ └─ NO → Continue │ │ │ │ Bug fixes only? │ │ └─ YES → PATCH bump (0.1.0 → 0.1.1) │ └─────────────────────────────────────────────────┘
Paracle Version Examples
# Current: v0.0.1 (initial development) # Add new feature (Phase 1-3) v0.0.1 → v0.1.0 # First feature-complete version # Add minor feature (Phase 4) v0.1.0 → v0.2.0 # API server added # Fix bug v0.2.0 → v0.2.1 # Bug fix # Add Phase 5 features v0.2.1 → v0.3.0 # Sandbox execution # Breaking API change v0.3.0 → v1.0.0 # Stable release
Version Management
Version Bump Script
Located at: scripts/bump_version.py
# Bump version python scripts/bump_version.py <major|minor|patch> # Examples python scripts/bump_version.py major # 0.1.0 → 1.0.0 python scripts/bump_version.py minor # 0.1.0 → 0.2.0 python scripts/bump_version.py patch # 0.1.0 → 0.1.1 # Pre-release python scripts/bump_version.py minor --pre alpha # 0.1.0 → 0.2.0-alpha.1 python scripts/bump_version.py patch --pre beta # 0.1.0 → 0.1.1-beta.1
What it updates:
- •
pyproject.toml- Project version - •
packages/paracle_core/__version__.py- Runtime version - •
docs/VERSION- Documentation version
Manual Version Update
If script unavailable, update manually:
1. pyproject.toml:
[project] name = "paracle" version = "0.2.0" # ← Update here
2. version.py:
# packages/paracle_core/__version__.py __version__ = "0.2.0" # ← Update here
3. Verify consistency:
# Check all versions match grep -r "version = " pyproject.toml grep -r "__version__ = " packages/paracle_core/__version__.py
Changelog Management
Changelog Generation
Located at: scripts/generate_changelog.py
# Generate changelog from git commits python scripts/generate_changelog.py # Generate for specific version python scripts/generate_changelog.py --version v0.2.0 # Generate from tag range python scripts/generate_changelog.py --from v0.1.0 --to v0.2.0 # Output to file python scripts/generate_changelog.py --output CHANGELOG.md
Changelog Format (Keep a Changelog)
# Changelog All notable changes to Paracle will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - New features in develop, not yet released ### Changed - Changes to existing functionality ### Deprecated - Features that will be removed in future ### Removed - Features removed in this version ### Fixed - Bug fixes ### Security - Security fixes ## [0.2.0] - 2026-01-06 ### Added - REST API server with FastAPI - Workflow execution endpoints (sync/async) - CLI workflow management commands - Support for xAI, DeepSeek, Groq providers ### Changed - Refactored CLI to use API-first architecture - Improved error handling in orchestration engine ### Fixed - Agent inheritance resolution bug - Memory leak in workflow execution ## [0.1.0] - 2026-01-04 ### Added - Initial release - Core agent framework - Basic workflow orchestration - SQLite persistence - OpenAI and Anthropic providers [Unreleased]: https://github.com/IbIFACE-Tech/paracle-lite/compare/v0.2.0...HEAD [0.2.0]: https://github.com/IbIFACE-Tech/paracle-lite/compare/v0.1.0...v0.2.0 [0.1.0]: https://github.com/IbIFACE-Tech/paracle-lite/releases/tag/v0.1.0
Manual Changelog Entry
If automatic generation fails:
## [0.2.0] - 2026-01-06 ### Added - feat(api): add workflow execution endpoints - feat(cli): add workflow management commands - feat(providers): support xAI, DeepSeek, Groq ### Changed - refactor(cli): migrate to API-first architecture ### Fixed - fix(domain): resolve agent inheritance bug - fix(orchestration): patch memory leak in execution
Guidelines:
- •Group by commit type (Added/Changed/Fixed)
- •Use past tense ("Added" not "Add")
- •Be specific but concise
- •Link to issues when applicable
- •Include breaking changes prominently
Package Publishing
PyPI Publishing
Prerequisites
# Install build tools pip install build twine # Configure PyPI credentials # Create ~/.pypirc [pypi] username = __token__ password = pypi-your-api-token-here # Or use environment variable export TWINE_PASSWORD=pypi-your-api-token
Build Package
# Clean previous builds rm -rf dist/ build/ *.egg-info # Build wheel and source distribution python -m build # Verify contents tar -tzf dist/paracle-0.2.0.tar.gz unzip -l dist/paracle-0.2.0-py3-none-any.whl
Publish to PyPI
# Test on PyPI Test first twine upload --repository testpypi dist/* # Verify installation from test pip install --index-url https://test.pypi.org/simple/ paracle # Publish to production PyPI twine upload dist/* # Verify published pip install paracle==0.2.0
Automated Publishing (GitHub Actions)
# .github/workflows/publish-pypi.yml
name: Publish to PyPI
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: |
pip install build twine
- name: Build package
run: python -m build
- name: Publish to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: twine upload dist/*
GitHub CLI Integration
The ReleaseManager agent now includes comprehensive GitHub CLI integration for managing PRs, releases, and workflows directly from the command line.
Setup GitHub CLI
# Install GitHub CLI # Windows (winget) winget install --id GitHub.cli # macOS (Homebrew) brew install gh # Linux (Debian/Ubuntu) curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null sudo apt update sudo apt install gh # Authenticate gh auth login
Pull Request Operations
List Pull Requests
# List open PRs gh pr list # List all PRs (open, closed, merged) gh pr list --state all --limit 50 # View specific PR gh pr view 123 # Check PR status and CI checks gh pr checks 123
Create Pull Request
# Create PR from current branch to main gh pr create --base main --head feature/new-feature \ --title "feat: Add new feature" \ --body "This PR adds the new feature X with Y improvements." # Create draft PR gh pr create --draft --title "WIP: Feature X" # Create PR and auto-assign reviewers gh pr create --title "feat: New feature" --reviewer alice,bob
Review Pull Requests
# Approve PR gh pr review 123 --approve --body "LGTM! 🚀" # Request changes gh pr review 123 --request-changes --body "Please address the following issues..." # Add comment without approval gh pr review 123 --comment --body "Minor suggestion for improvement"
Merge Pull Requests
# Merge PR (merge commit) gh pr merge 123 --merge --delete-branch # Squash and merge gh pr merge 123 --squash --delete-branch # Rebase and merge gh pr merge 123 --rebase --delete-branch # Auto-merge when checks pass gh pr merge 123 --auto --squash
View PR Diff
# Show PR diff gh pr diff 123 # Show specific file changes gh pr diff 123 -- packages/paracle_api/server.py
Release Operations
List Releases
# List all releases gh release list # List latest 10 releases gh release list --limit 10
Create Release
# Create release with auto-generated notes gh release create v1.0.0 --title "Release v1.0.0" --generate-notes # Create release with custom notes gh release create v1.0.0 \ --title "Production Release v1.0.0" \ --notes "Major release with comprehensive features: - Phase 7 Observability - Phase 8 Error Management - Phase 10 Security Audit (100/100 score) - Production-ready with 771 tests (97.2% pass rate)" # Create draft release gh release create v1.0.0 --draft --title "Draft v1.0.0" # Create pre-release gh release create v0.2.0-beta.1 --prerelease --title "Beta v0.2.0-beta.1" # Upload assets to release gh release create v1.0.0 --title "Release v1.0.0" \ dist/paracle-1.0.0-py3-none-any.whl \ dist/paracle-1.0.0.tar.gz
View Release
# View specific release gh release view v1.0.0 # View latest release gh release view --json tagName,name,publishedAt
Delete Release
# Delete release (keeps tag) gh release delete v0.1.0-alpha.1 --yes
Workflow Operations
List Workflows
# List all GitHub Actions workflows gh workflow list # View workflow details gh workflow view "CI Pipeline"
Trigger Workflow
# Manually trigger workflow gh workflow run "Release Pipeline" # Trigger with inputs gh workflow run "Deploy" --field environment=production
Repository Operations
View Repository
# View current repository info gh repo view # View specific repository gh repo view IbIFACE-Tech/paracle-lite # Clone repository gh repo clone IbIFACE-Tech/paracle-lite
Issue Operations
List Issues
# List open issues gh issue list # List all issues gh issue list --state all --limit 50 # View specific issue gh issue view 42
Create Issue
# Create new issue gh issue create --title "Bug: Authentication fails" \ --body "Description of the bug..." \ --label bug,priority-high
Complete Release Workflow with GitHub CLI
# 1. Create release branch and bump version git checkout develop git pull origin develop git checkout -b release/v1.0.0 # 2. Bump version python scripts/bump_version.py major # 0.9.0 → 1.0.0 # 3. Generate changelog python scripts/generate_changelog.py --version v1.0.0 # 4. Commit version bump git add pyproject.toml CHANGELOG.md git commit -m "chore: bump version to v1.0.0" git push origin release/v1.0.0 # 5. Create PR for review gh pr create \ --base main \ --head release/v1.0.0 \ --title "Release v1.0.0" \ --body "Production release v1.0.0 with all features complete." \ --label release # 6. Wait for reviews and CI checks gh pr checks # Monitor checks status gh pr view # View PR details # 7. After approval, merge to main gh pr merge --squash --delete-branch # 8. Create git tag git checkout main git pull origin main git tag -a v1.0.0 -m "Release v1.0.0" git push origin --tags # 9. Create GitHub release gh release create v1.0.0 \ --title "Production Release v1.0.0" \ --generate-notes \ --latest # 10. Publish to PyPI (automated via GitHub Actions) # Triggered automatically by release creation # 11. Merge back to develop git checkout develop git merge --no-ff main git push origin develop
Docker Publishing
Build Docker Images
# Build API server image docker build -f docker/Dockerfile.api -t paracle/api:0.2.0 . docker tag paracle/api:0.2.0 paracle/api:latest # Build worker image docker build -f docker/Dockerfile.worker -t paracle/worker:0.2.0 . docker tag paracle/worker:0.2.0 paracle/worker:latest # Build dev image docker build -f docker/Dockerfile.dev -t paracle/dev:0.2.0 .
Push to Docker Hub
# Login to Docker Hub docker login # Push versioned images docker push paracle/api:0.2.0 docker push paracle/worker:0.2.0 # Push latest tags docker push paracle/api:latest docker push paracle/worker:latest
Automated Docker Publishing
# .github/workflows/publish-docker.yml
name: Publish Docker Images
on:
release:
types: [published]
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Extract version
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Build and push API image
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile.api
push: true
tags: |
paracle/api:${{ steps.version.outputs.VERSION }}
paracle/api:latest
cache-from: type=registry,ref=paracle/api:buildcache
cache-to: type=registry,ref=paracle/api:buildcache,mode=max
GitHub Release Creation
Manual Release
# After merging release branch to main # Create and push tag git tag -a v0.2.0 -m "Release v0.2.0" git push origin v0.2.0 # Go to GitHub → Releases → Draft new release # - Tag: v0.2.0 # - Title: "Paracle v0.2.0 - API Server & Enhanced CLI" # - Description: Copy from CHANGELOG.md # - Attach artifacts if any # - Publish release
Automated Release (GitHub Actions)
# .github/workflows/release.yml
name: Create Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Extract version
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Generate changelog
id: changelog
run: |
python scripts/generate_changelog.py --version v${{ steps.version.outputs.VERSION }} > release_notes.md
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
body_path: release_notes.md
draft: false
prerelease: ${{ contains(steps.version.outputs.VERSION, '-') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Release Orchestration
Complete Release Workflow
1. Pre-Release Preparation
# Ensure all tests pass make test make lint make typecheck # Ensure develop is up to date git checkout develop git pull origin develop # Verify current version grep version pyproject.toml
2. Create Release Branch
# Create release branch git checkout -b release/v0.2.0 # Bump version python scripts/bump_version.py minor # 0.1.0 → 0.2.0 # Generate changelog python scripts/generate_changelog.py --version v0.2.0 --output CHANGELOG.md # Commit changes git add pyproject.toml packages/paracle_core/__version__.py CHANGELOG.md git commit -m "chore(release): prepare v0.2.0 release" # Push release branch git push origin release/v0.2.0
3. Release Testing
# Build package locally python -m build # Test installation pip install dist/paracle-0.2.0-py3-none-any.whl # Run smoke tests paracle --version paracle agent list paracle workflow run examples/hello_world_agent.py # Test Docker images docker build -f docker/Dockerfile.api -t paracle/api:test . docker run -p 8000:8000 paracle/api:test curl http://localhost:8000/health
4. Merge to Main
# Create PR: release/v0.2.0 → main # After approval: git checkout main git pull origin main git merge --no-ff release/v0.2.0 # Create tag git tag -a v0.2.0 -m "Release v0.2.0 - API Server & Enhanced CLI Features: - REST API server with FastAPI - Workflow execution endpoints - Enhanced CLI commands - Multi-provider support Full changelog: https://github.com/IbIFACE-Tech/paracle-lite/blob/main/CHANGELOG.md" # Push to main git push origin main --tags
5. Publish Artifacts
# Publish to PyPI twine upload dist/* # Build and push Docker images docker build -f docker/Dockerfile.api -t paracle/api:0.2.0 . docker tag paracle/api:0.2.0 paracle/api:latest docker push paracle/api:0.2.0 docker push paracle/api:latest docker build -f docker/Dockerfile.worker -t paracle/worker:0.2.0 . docker tag paracle/worker:0.2.0 paracle/worker:latest docker push paracle/worker:0.2.0 docker push paracle/worker:latest
6. Create GitHub Release
# Manual: GitHub UI → Releases → Draft new release # Or automated via GitHub Actions (triggered by tag push)
7. Backport to Develop
# Merge release changes back to develop git checkout develop git pull origin develop git merge --no-ff release/v0.2.0 git push origin develop # Delete release branch git branch -d release/v0.2.0 git push origin --delete release/v0.2.0
8. Post-Release
# Update .parac/memory/context/current_state.yaml project: version: 0.2.0 # ← Update # Log release echo "[$(date)] [ReleaseManager] [RELEASE] Published v0.2.0" >> .parac/memory/logs/agent_actions.log # Create release summary cat > .parac/memory/summaries/v0.2.0_release.md << EOF # Release v0.2.0 Summary **Date**: $(date +%Y-%m-%d) **Type**: Minor release ## Highlights - REST API server with FastAPI - Async/sync workflow execution - Enhanced CLI commands - Multi-provider support (xAI, DeepSeek, Groq) ## Metrics - Commits: 42 - PRs merged: 8 - Tests: 127 passing - Coverage: 92% ## Links - [GitHub Release](https://github.com/IbIFACE-Tech/paracle-lite/releases/tag/v0.2.0) - [PyPI Package](https://pypi.org/project/paracle/0.2.0/) - [Docker Images](https://hub.docker.com/r/paracle/api/tags) EOF # Announce release (if applicable) # - Twitter/X # - Discord # - Email list # - Blog post
Hotfix Release Workflow
1. Create Hotfix Branch
# Branch from main git checkout main git pull origin main git checkout -b hotfix/v0.2.1-critical-fix # Fix the issue # ... edit files ... # Commit fix git add . git commit -m "fix(orchestration): resolve memory leak in agent cleanup Critical fix for memory leak causing high memory usage in long-running workflows. Closes #456"
2. Bump Patch Version
# Bump patch version python scripts/bump_version.py patch # 0.2.0 → 0.2.1 # Update changelog python scripts/generate_changelog.py --version v0.2.1 --output CHANGELOG.md # Commit version bump git add pyproject.toml packages/paracle_core/__version__.py CHANGELOG.md git commit -m "chore: bump version to v0.2.1"
3. Merge and Release
# Merge to main git checkout main git merge --no-ff hotfix/v0.2.1-critical-fix # Tag and push git tag -a v0.2.1 -m "Release v0.2.1 - Critical Hotfix" git push origin main --tags # Publish artifacts (automated via CI)
4. Backport to Develop
# Merge hotfix to develop git checkout develop git merge --no-ff hotfix/v0.2.1-critical-fix git push origin develop # Clean up git branch -d hotfix/v0.2.1-critical-fix
Release Checklist
Use this checklist for every release:
## Pre-Release - [ ] All tests passing - [ ] Lint and typecheck clean - [ ] Documentation updated - [ ] CHANGELOG.md reviewed - [ ] Version bumped correctly - [ ] Release notes drafted ## Release - [ ] Release branch created - [ ] Version bumped in all files - [ ] Changelog generated - [ ] PR to main created and approved - [ ] Merged to main with --no-ff - [ ] Tag created and pushed - [ ] GitHub release created ## Publishing - [ ] PyPI package published - [ ] Docker images built and pushed - [ ] Release announcement sent - [ ] Documentation site updated ## Post-Release - [ ] Changes backported to develop - [ ] Release branch deleted - [ ] current_state.yaml updated - [ ] Release summary created - [ ] Monitoring metrics checked
Common Patterns
Pattern 1: Version Bump with Validation
#!/bin/bash
# scripts/safe_version_bump.sh
set -e # Exit on error
# Validate current state
if [[ -n $(git status --porcelain) ]]; then
echo "❌ Working directory not clean!"
exit 1
fi
# Run tests
echo "🧪 Running tests..."
make test || exit 1
# Bump version
echo "⬆️ Bumping version..."
python scripts/bump_version.py "$1"
# Verify
echo "✅ Version bumped successfully!"
grep version pyproject.toml
Pattern 2: Changelog with Validation
#!/bin/bash
# scripts/safe_changelog_gen.sh
set -e
VERSION="$1"
if [[ -z "$VERSION" ]]; then
echo "Usage: $0 <version>"
exit 1
fi
# Generate changelog
python scripts/generate_changelog.py --version "$VERSION" > CHANGELOG_NEW.md
# Review changes
echo "📝 Review changelog:"
cat CHANGELOG_NEW.md
read -p "Accept changes? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
mv CHANGELOG_NEW.md CHANGELOG.md
echo "✅ Changelog updated!"
else
rm CHANGELOG_NEW.md
echo "❌ Changelog generation cancelled"
exit 1
fi
Pattern 3: Rollback Release
#!/bin/bash # scripts/rollback_release.sh set -e VERSION="$1" echo "🚨 Rolling back release $VERSION" # Delete tag locally git tag -d "v$VERSION" # Delete tag remotely git push --delete origin "v$VERSION" # Delete GitHub release (requires gh CLI) gh release delete "v$VERSION" --yes # Yank PyPI release (doesn't delete, marks as unavailable) pip install yank yank "paracle==$VERSION" --reason "Rollback due to critical issue" echo "✅ Release $VERSION rolled back" echo "⚠️ Manual steps required:" echo " - Delete Docker images from Docker Hub" echo " - Notify users via announcement"
Examples
Example 1: Minor Release (0.1.0 → 0.2.0)
# 1. Create release branch git checkout develop git pull origin develop git checkout -b release/v0.2.0 # 2. Bump version python scripts/bump_version.py minor # Updated: 0.1.0 → 0.2.0 # 3. Generate changelog python scripts/generate_changelog.py --version v0.2.0 --output CHANGELOG.md # 4. Commit changes git add pyproject.toml packages/paracle_core/__version__.py CHANGELOG.md git commit -m "chore(release): prepare v0.2.0 release" git push origin release/v0.2.0 # 5. Create PR to main, get approval, merge # 6. Tag and push git checkout main git pull origin main git tag -a v0.2.0 -m "Release v0.2.0" git push origin main --tags # 7. Publish (automated by CI) # - PyPI package # - Docker images # - GitHub release # 8. Backport to develop git checkout develop git merge --no-ff release/v0.2.0 git push origin develop
Example 2: Patch Release (Hotfix 0.2.0 → 0.2.1)
# 1. Create hotfix branch from main git checkout main git pull origin main git checkout -b hotfix/v0.2.1-auth-fix # 2. Fix issue git add packages/paracle_api/auth.py git commit -m "fix(api): patch authentication bypass vulnerability" # 3. Bump patch version python scripts/bump_version.py patch # Updated: 0.2.0 → 0.2.1 # 4. Update changelog python scripts/generate_changelog.py --version v0.2.1 --output CHANGELOG.md # 5. Commit version bump git add pyproject.toml packages/paracle_core/__version__.py CHANGELOG.md git commit -m "chore: bump version to v0.2.1" # 6. Merge to main git checkout main git merge --no-ff hotfix/v0.2.1-auth-fix git tag -a v0.2.1 -m "Release v0.2.1 - Security Fix" git push origin main --tags # 7. Backport to develop git checkout develop git merge --no-ff hotfix/v0.2.1-auth-fix git push origin develop # 8. Clean up git branch -d hotfix/v0.2.1-auth-fix
Example 3: Pre-Release (0.2.0-beta.1)
# 1. Create pre-release branch git checkout develop git checkout -b release/v0.2.0-beta.1 # 2. Bump to pre-release version python scripts/bump_version.py minor --pre beta # Updated: 0.1.0 → 0.2.0-beta.1 # 3. Generate changelog python scripts/generate_changelog.py --version v0.2.0-beta.1 # 4. Commit and tag git add pyproject.toml packages/paracle_core/__version__.py CHANGELOG.md git commit -m "chore: prepare v0.2.0-beta.1 pre-release" git tag -a v0.2.0-beta.1 -m "Pre-release v0.2.0-beta.1" git push origin release/v0.2.0-beta.1 --tags # 5. Publish pre-release to PyPI twine upload dist/* --repository-url https://test.pypi.org/legacy/ # 6. Create GitHub pre-release gh release create v0.2.0-beta.1 --prerelease --notes "Beta release for testing" # Note: Do NOT merge to main or develop yet # After beta testing, create final release
Related Skills
- •Git Management - Git workflows and branching
- •CI/CD & DevOps - Automated pipelines
- •Paracle Development - Framework development