Agent skill

release-please-development

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.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/release-please-development

SKILL.md

Release Please Development

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

Quick Reference

  • Single Package Pattern - Simple repos with one version
  • Multi-Package Pattern - Monorepos with independent versions
  • Configuration Options - All available settings

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:

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

2. Create Manifest

.github/release-please-manifest.json:

json
{
  ".": "0.0.1"
}

3. Add GitHub Workflow

.github/workflows/release.yaml:

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:

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

Claude Code Plugin Marketplaces

For marketplaces with multiple plugins sharing a single version:

json
{
  "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

  • Single Package Example - Detailed single-package setup
  • Multi-Package Example - Monorepo configuration
  • Configuration Reference - All options explained

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results