From 9c2ff7d3b6f786044833421a2fa0e6d98c152229 Mon Sep 17 00:00:00 2001 From: "Tj (bougyman) Vanderpoel" Date: Wed, 12 Aug 2026 16:16:24 -0400 Subject: [PATCH] feat: restructure the formula for per-package release-please versioning Moves Formula/lc.rb -> Formula/linear-cli/linear-cli.rb (class Lc -> LinearCli) - Homebrew derives the formula's install name from the file's basename, not its directory, so this is still `brew install linear-cli`, matching Homebrew's own sharded-layout convention (Formula/a/ack.rb) for nested formula files. url/sha256 deliberately left unchanged (still v1.0.0) - bumping to the real latest release is a separate follow-up. Adds .release-please-manifest.json/.release-please-config.json (manifest mode, one package: "Formula/linear-cli") plus a release-please workflow, so this formula gets its own independently tracked version/changelog (Formula/linear-cli/.version + CHANGELOG.md) as this tap grows to host more than one formula - verified release-please's manifest mode requires each package's path to be a real directory, not a file, which is exactly what this move sets up. Updates Readme.adoc's install command to match. --- .github/workflows/release-please.yaml | 31 +++++++++++++++++++++ .release-please-config.json | 10 +++++++ .release-please-manifest.json | 3 ++ Formula/linear-cli/.version | 1 + Formula/linear-cli/CHANGELOG.md | 1 + Formula/{lc.rb => linear-cli/linear-cli.rb} | 2 +- Readme.adoc | 9 +++--- 7 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/release-please.yaml create mode 100644 .release-please-config.json create mode 100644 .release-please-manifest.json create mode 100644 Formula/linear-cli/.version create mode 100644 Formula/linear-cli/CHANGELOG.md rename Formula/{lc.rb => linear-cli/linear-cli.rb} (96%) diff --git a/.github/workflows/release-please.yaml b/.github/workflows/release-please.yaml new file mode 100644 index 0000000..f83507b --- /dev/null +++ b/.github/workflows/release-please.yaml @@ -0,0 +1,31 @@ +--- +name: release-please + +on: # yamllint disable-line rule:truthy + push: + branches: [main] + +permissions: + contents: write + pull-requests: write + +jobs: + release-please: + name: Open/update the release PR + runs-on: ubuntu-latest + steps: + - + uses: actions/checkout@v7 + with: + fetch-tags: true + - + # Unlike rubyists/linear-cli's own release-please setup, this tap + # has no build-binaries-first step to race against GitHub's + # Immutable Releases - a formula bump is just text, so + # release-please can tag/release normally, no skip-github-release + # + custom atomic-tagging job needed. + uses: googleapis/release-please-action@v5 + with: + config-file: .release-please-config.json + manifest-file: .release-please-manifest.json + token: ${{ secrets.RELEASE_PLEASE_TOKEN }} diff --git a/.release-please-config.json b/.release-please-config.json new file mode 100644 index 0000000..a4cd9ba --- /dev/null +++ b/.release-please-config.json @@ -0,0 +1,10 @@ +{ + "packages": { + "Formula/linear-cli": { + "release-type": "simple", + "version-file": ".version", + "changelog-path": "CHANGELOG.md" + } + }, + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json" +} diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000..813fa74 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + "Formula/linear-cli": "0.1.0" +} diff --git a/Formula/linear-cli/.version b/Formula/linear-cli/.version new file mode 100644 index 0000000..6e8bf73 --- /dev/null +++ b/Formula/linear-cli/.version @@ -0,0 +1 @@ +0.1.0 diff --git a/Formula/linear-cli/CHANGELOG.md b/Formula/linear-cli/CHANGELOG.md new file mode 100644 index 0000000..825c32f --- /dev/null +++ b/Formula/linear-cli/CHANGELOG.md @@ -0,0 +1 @@ +# Changelog diff --git a/Formula/lc.rb b/Formula/linear-cli/linear-cli.rb similarity index 96% rename from Formula/lc.rb rename to Formula/linear-cli/linear-cli.rb index 477e430..8aca309 100644 --- a/Formula/lc.rb +++ b/Formula/linear-cli/linear-cli.rb @@ -1,4 +1,4 @@ -class Lc < Formula +class LinearCli < Formula desc "CLI for interacting with Linear.app" homepage "https://github.com/rubyists/linear-cli" license "WTFPL" diff --git a/Readme.adoc b/Readme.adoc index 22de103..9b5c860 100644 --- a/Readme.adoc +++ b/Readme.adoc @@ -7,9 +7,10 @@ Homebrew tap for rubyists CLI tools. [source,sh] ---- $ brew tap rubyists/tap -$ brew install lc +$ brew install linear-cli ---- -`lc` is the https://github.com/rubyists/linear-cli[linear-cli] CLI for -https://linear.app[Linear.app], covering macOS (Apple Silicon) and Linux -(x86_64). +`linear-cli` installs `lc` (plus the `lcreate`/`lcls`/`lclose`/`lcomment`/ +`lproj` wrapper scripts) - the https://github.com/rubyists/linear-cli[linear-cli] +CLI for https://linear.app[Linear.app], covering macOS (Apple Silicon) and +Linux (x86_64).