← スキル一覧に戻る
release
tettuan / breakdown
⭐ 1🍴 0📅 2026年1月6日
Create a release following Git Flow strategy. Use when preparing a release, bumping version, creating release branch, or when user says "release", "bump version", "prepare release", "ship version".
bash, read, edit
SKILL.md
---
name: release
description: Create a release following Git Flow strategy. Use when preparing a release, bumping version, creating release branch, or when user says "release", "bump version", "prepare release", "ship version".
allowed-tools: Bash, Read, Edit
---
# Release Process
This skill guides the release process following Git Flow with automated CI/CD.
## Release Flow Overview
```
develop ──▶ release/v{X.Y.Z} ──PR──▶ main
▲ │
│ ▼
│ (auto-release.yml)
│ │
│ ▼
│ tag: v{X.Y.Z}
│ │
│ ▼
│ (publish.yml)
│ │
│ ▼
│ JSR publish
│ │
└───────────── backmerge ◀──────────┘
```
## Workflow
### 1. Ensure develop is ready
```bash
git checkout develop
git pull origin develop
git status
```
Verify all features for this release are merged.
### 2. Run full CI locally
```bash
deno task ci
```
All tests must pass before proceeding.
### 3. Determine version number
Follow semantic versioning:
- **MAJOR** (X.0.0): Breaking changes
- **MINOR** (0.X.0): New features, backward compatible
- **PATCH** (0.0.X): Bug fixes only
Check current version:
```bash
jq -r '.version' deno.json
```
### 4. Create release branch
```bash
git checkout -b release/v{NEW_VERSION}
```
### 5. Bump version
Use the project's bump script:
```bash
bash scripts/bump_version.sh
```
Or manually update `deno.json`:
```bash
# Edit deno.json version field
```
### 6. Update CHANGELOG.md
Add release notes under new version heading.
### 7. Commit version bump
```bash
git add deno.json CHANGELOG.md
git commit -m "chore: bump version to {NEW_VERSION}"
```
### 8. Push and create PR to main
```bash
git push -u origin release/v{NEW_VERSION}
```
Create PR: `release/v{NEW_VERSION}` → `main`
**Important**: PR must be from `release/*` branch directly to `main` for auto-release to trigger.
### 9. Merge triggers automation
When PR to main is merged:
1. `auto-release.yml` creates tag `v{NEW_VERSION}`
2. `publish.yml` publishes to JSR
### 10. Sync develop with main
After release is published, backmerge main to develop:
```bash
git checkout develop
git pull origin develop
git merge origin/main
git push origin develop
```
This ensures develop has the version bump and CHANGELOG updates.
## Checklist
- [ ] All features merged to develop
- [ ] `deno task ci` passes
- [ ] Version number determined (semver)
- [ ] Release branch created from develop
- [ ] Version bumped in `deno.json`
- [ ] CHANGELOG.md updated
- [ ] PR to main created (from release/* branch)
- [ ] PR merged → auto-release creates tag
- [ ] Verify JSR publication
- [ ] Backmerge main to develop
## Example: Release v1.8.0
```bash
# Prepare
git checkout develop
git pull origin develop
deno task ci
# Create release
git checkout -b release/v1.8.0
bash scripts/bump_version.sh
# Edit CHANGELOG.md
git add deno.json CHANGELOG.md
git commit -m "chore: bump version to 1.8.0"
git push -u origin release/v1.8.0
# Create PR via GitHub
# release/v1.8.0 → main (triggers auto-release on merge)
# After merge and JSR publish, sync develop
git checkout develop
git pull origin develop
git merge origin/main
git push origin develop
```
## Important Notes
- Never push directly to `main`
- Version in `deno.json` must match tag
- Auto-release only triggers on `release/*` branch merge to main
- JSR publish requires tag to be on main branch