release-please-standards

安装量: 53
排名: #13953

安装

npx skills add https://github.com/laurigates/claude-plugins --skill release-please-standards

Standard release-please configuration for automated semantic versioning and changelog generation.

Standard Configuration

GitHub Actions Workflow

File: .github/workflows/release-please.yml

name: Release Please

on:
  push:
    branches:
      - main

permissions:
  contents: write
  pull-requests: write

jobs:
  release-please:
    runs-on: ubuntu-latest
    steps:
      - uses: googleapis/release-please-action@v4
        with:
          token: ${{ secrets.MY_RELEASE_PLEASE_TOKEN }}

Configuration Files

File: release-please-config.json

{
  "packages": {
    ".": {
      "release-type": "node",
      "changelog-sections": [
        {"type": "feat", "section": "Features"},
        {"type": "fix", "section": "Bug Fixes"},
        {"type": "perf", "section": "Performance"},
        {"type": "deps", "section": "Dependencies"},
        {"type": "docs", "section": "Documentation", "hidden": true},
        {"type": "chore", "section": "Miscellaneous", "hidden": true}
      ]
    }
  },
  "plugins": ["node-workspace"]
}

File: .release-please-manifest.json

{
  ".": "0.0.0"
}

Note: Version 0.0.0 is a placeholder - release-please updates this automatically.

Project Type Variations

Node.js Frontend/Backend

  • release-type: node

  • plugins: node-workspace

  • Updates: package.json version field

Python Service

  • release-type: python

  • Updates: pyproject.toml version field, __version__ in code

Infrastructure (Helm)

  • release-type: helm

  • Updates: Chart.yaml version field

Multi-package Repository

{
  "packages": {
    "packages/frontend": {
      "release-type": "node",
      "component": "frontend"
    },
    "packages/backend": {
      "release-type": "node",
      "component": "backend"
    }
  },
  "plugins": [
    "node-workspace",
    {
      "type": "linked-versions",
      "groupName": "workspace",
      "components": ["frontend", "backend"]
    }
  ]
}

Required Components

Minimum Requirements

  • Workflow file: .github/workflows/release-please.yml

Uses googleapis/release-please-action@v4

  • Token: MY_RELEASE_PLEASE_TOKEN secret

  • Triggers on push to main

  • Config file: release-please-config.json

Valid release-type for project

  • changelog-sections defined

  • Manifest file: .release-please-manifest.json

Lists all packages with current versions

Token Configuration

The workflow uses MY_RELEASE_PLEASE_TOKEN secret (not GITHUB_TOKEN) because:

  • Allows release PRs to trigger other workflows

  • Enables CI checks on release PRs

  • Maintains proper audit trail

Compliance Checking

Status Levels

| PASS | All three files present with valid configuration

| WARN | Files present but using deprecated action version

| FAIL | Missing required files or invalid configuration

Validation Rules

  • Workflow validation:

Action version: v4 (warn if older)

  • Token: Must use secret, not hardcoded

  • Trigger: Must include push to main

  • Config validation:

release-type: Must be valid (node, python, helm, simple)

  • changelog-sections: Must include feat and fix

  • Manifest validation:

Must be valid JSON

  • Packages must match config

Protected Files

IMPORTANT: Release-please manages these files automatically:

  • CHANGELOG.md - Never edit manually

  • Version fields in package.json, pyproject.toml, Chart.yaml

  • .release-please-manifest.json - Only edit for initial setup

See release-please-protection skill for enforcement.

Conventional Commits

Release-please requires conventional commit messages:

| feat: | Minor | feat: add user authentication

| fix: | Patch | fix: correct login timeout

| feat!: | Major | feat!: redesign API

| BREAKING CHANGE: | Major | In commit body

Installation

  • Create workflow file

  • Create config file

  • Create manifest file

  • Add MY_RELEASE_PLEASE_TOKEN to repository secrets

  • Ensure pre-commit has conventional-pre-commit hook

Troubleshooting

Release PR Not Created

  • Check conventional commit format

  • Verify workflow has correct permissions

  • Ensure token has write access

Version Not Updated

  • Check manifest file is valid JSON

  • Verify release-type matches project

  • Review release-please logs in Actions

CI Not Running on Release PR

  • Token must be PAT, not GITHUB_TOKEN

  • Verify workflow trigger includes pull_request

返回排行榜