clapfig 0.21.4

Rich, layered configuration for Rust CLI apps
Documentation
# Release clapfig — thin caller into the canonical rust-lib reusable
# workflow at `arthur-debert/release/.github/workflows/rust-lib.yml`.
#
# Trigger model: **workflow_dispatch** (matches the rust-cli pattern
# used by lex + the cascade-handler contract). Previously triggered
# on tag-push; the canonical workflow's `prepare-release` action now
# drives the bump + commit + tag + push, so the caller only needs to
# pass the version.
#
# To cut a release:
#   gh workflow run release.yml --ref main -f version=0.18.3
# or via the GH web UI's "Run workflow" button on the Actions tab.

name: Release clapfig

on:
  workflow_dispatch:
    inputs:
      version:
        description: 'Version to release (bare semver, e.g. 0.18.3 — no leading v)'
        required: true
        type: string

permissions:
  contents: write

jobs:
  release:
    uses: arthur-debert/release/.github/workflows/rust-lib.yml@v1
    with:
      version: ${{ inputs.version }}
      # Lockstep: both crates ship at the same version, derive first
      # (clapfig's `derive` feature pulls in clapfig-derive as a
      # registry dep with a pinned `version = "X.Y.Z"`, so the derive
      # crate must already exist on crates.io when clapfig publishes).
      # Matches the serde/serde_derive, clap/clap_derive convention.
      crates: clapfig-derive,clapfig
      changelog-path: CHANGELOG.md
    secrets:
      RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
      CRATES_IO_KEY: ${{ secrets.CRATES_IO_KEY }}