release-please-development

star 12

This skill should be used when the user asks to "set up release please", "configure automated releases", "manage version numbers", "add changelog automation", or mentions release-please, semantic versioning, or monorepo versioning.

dwmkerr By dwmkerr schedule Updated 2/24/2026

name: release-please-development description: This skill should be used when the user asks to "set up release please", "configure automated releases", "manage version numbers", "add changelog automation", or mentions release-please, semantic versioning, or monorepo versioning. allowed-tools: Read, Grep

Release Please Development

Configure automated versioning, changelog generation, and releases using Google's release-please.

Quick Reference

Overview

Release-please automates:

  • Version bumping based on conventional commits
  • CHANGELOG.md generation
  • GitHub release creation
  • Version updates in files (package.json, Chart.yaml, etc.)

Core Files

.github/
├── release-please-config.json    # Package configuration
├── release-please-manifest.json  # Current version tracking
└── workflows/
    └── release.yaml              # GitHub Actions workflow

When to Use Each Pattern

Pattern Use Case
Single Package Libraries, CLIs, simple apps with one version
Multi-Package Monorepos, services with independent release cycles

Basic Setup

1. Create Config File

.github/release-please-config.json:

{
  "release-type": "simple",
  "packages": {
    ".": {
      "changelog-path": "CHANGELOG.md"
    }
  }
}

2. Create Manifest

.github/release-please-manifest.json:

{
  ".": "0.0.1"
}

3. Add GitHub Workflow

.github/workflows/release.yaml:

name: Release

on:
  push:
    branches: [main]

permissions:
  contents: write
  pull-requests: write

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: googleapis/release-please-action@v4
        with:
          config-file: .github/release-please-config.json
          manifest-file: .github/release-please-manifest.json

Release Types

Type Use Case Versions
simple Generic projects CHANGELOG only
node npm packages package.json
python Python packages setup.py, pyproject.toml
go Go modules go.mod
helm Helm charts Chart.yaml

Updating Extra Files

Use extra-files to update versions in arbitrary files:

{
  "packages": {
    ".": {
      "extra-files": [
        {
          "type": "json",
          "path": "manifest.json",
          "jsonpath": "$.version"
        }
      ]
    }
  }
}

Claude Code Plugin Marketplaces

For marketplaces with multiple plugins sharing a single version:

{
  "release-type": "simple",
  "packages": {
    ".": {
      "changelog-path": "CHANGELOG.md",
      "extra-files": [
        {
          "type": "json",
          "path": ".claude-plugin/marketplace.json",
          "jsonpath": "$.plugins[0].version"
        },
        {
          "type": "json",
          "path": ".claude-plugin/marketplace.json",
          "jsonpath": "$.plugins[1].version"
        }
      ]
    }
  }
}

Add a jsonpath entry for each plugin in the marketplace. When adding new plugins, update both:

  1. .claude-plugin/marketplace.json - add the plugin entry
  2. .github/release-please-config.json - add jsonpath for the new plugin's version

Conventional Commits

Release-please uses commit prefixes to determine version bumps:

Prefix Version Bump Example
feat: Minor (0.x.0) New feature
fix: Patch (0.0.x) Bug fix
feat!: or BREAKING CHANGE Major (x.0.0) Breaking change
docs:, chore:, etc. None No release

How It Works

  1. Push commits to main with conventional commit messages
  2. Release-please creates/updates a release PR
  3. Merge the release PR to create a GitHub release
  4. Tags and changelog are automatically generated

See Also

Install via CLI
npx skills add https://github.com/dwmkerr/claude-toolkit --skill release-please-development
Repository Details
star Stars 12
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator