Back to list
IbIFACE-Tech

release-automation

by IbIFACE-Tech

Paracle is a framework for building AI native app and project.

0🍴 0📅 Jan 19, 2026

SKILL.md


name: release-automation description: Expert-level semantic versioning, package publishing, changelog generation, and release orchestration. Use for version management, PyPI/Docker releases, and deployment automation. license: Apache-2.0 compatibility: Python 3.10+, PyPI, Docker Hub metadata: author: paracle-core-team version: "1.0.0" category: automation level: advanced display_name: "Release Automation" tags: - release - versioning - packaging - publishing - automation capabilities: - semantic_versioning - changelog_generation - pypi_publishing - docker_publishing - release_orchestration requirements: - skill_name: git-management min_level: intermediate - skill_name: cicd-devops min_level: intermediate allowed-tools: Read Write Bash(python:) Bash(docker:) Bash(git:*)

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

References

Score

Total Score

65/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon