diff --git a/.github/workflows/bump-homebrew-geode-formula.yml b/.github/workflows/bump-homebrew-geode-formula.yml index bb2e965b42..5ed66b3da0 100644 --- a/.github/workflows/bump-homebrew-geode-formula.yml +++ b/.github/workflows/bump-homebrew-geode-formula.yml @@ -3,11 +3,11 @@ name: Bump Homebrew Formula (geode relay) # Sibling of bump-homebrew-formula.yml (the amy CLI). Same mechanism, different # artifact: # - bump-homebrew-formula.yml -> Formula `amy` (the headless CLI) -# - this workflow -> Formula `geode` (the standalone relay) +# - this workflow -> Formula `geode-relay` (the standalone relay) # # After a stable release, download the published `geode--jvm.tar.gz` # bundle, compute its sha256, and open a PR that syncs -# `geode/packaging/homebrew/geode.rb`'s url + sha256 to that release. Keeping the +# `geode/packaging/homebrew/geode-relay.rb`'s url + sha256 to that release. Keeping the # in-repo reference formula accurate makes the eventual homebrew-core submission a # copy-paste. # @@ -101,7 +101,7 @@ jobs: - name: Update reference formula run: | set -euo pipefail - FORMULA=geode/packaging/homebrew/geode.rb + FORMULA=geode/packaging/homebrew/geode-relay.rb URL="${{ steps.asset.outputs.url }}" SHA="${{ steps.asset.outputs.sha256 }}" # Rewrite the two indented lines in the formula block. Anchoring on the @@ -119,11 +119,11 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} base: main branch: chore/bump-geode-formula-${{ steps.rel.outputs.tag }} - add-paths: geode/packaging/homebrew/geode.rb + add-paths: geode/packaging/homebrew/geode-relay.rb commit-message: 'chore: sync geode Homebrew formula to ${{ steps.rel.outputs.tag }}' title: 'chore: sync geode Homebrew formula to ${{ steps.rel.outputs.tag }}' body: | - Auto-synced `geode/packaging/homebrew/geode.rb` to the + Auto-synced `geode/packaging/homebrew/geode-relay.rb` to the `${{ steps.rel.outputs.tag }}` release: - `url` -> `${{ steps.asset.outputs.url }}` @@ -158,7 +158,7 @@ jobs: ``, `Recovery options:`, `1. Re-run the workflow once the underlying issue is fixed`, - `2. Manually update \`geode/packaging/homebrew/geode.rb\` (url + sha256) from the release asset`, + `2. Manually update \`geode/packaging/homebrew/geode-relay.rb\` (url + sha256) from the release asset`, `3. Check the release actually published \`geode-${tag.replace(/^v/, '')}-jvm.tar.gz\`` ].join('\n'), labels: ['release-ops', 'bug'] diff --git a/.github/workflows/bump-homebrew.yml b/.github/workflows/bump-homebrew.yml index 483afcdead..cf255e882f 100644 --- a/.github/workflows/bump-homebrew.yml +++ b/.github/workflows/bump-homebrew.yml @@ -1,7 +1,7 @@ name: Sync Homebrew Cask Reference # Sibling of bump-homebrew-formula.yml (amy) and bump-homebrew-geode-formula.yml -# (geode). Same mechanism, third artifact: +# (geode-relay). Same mechanism, third artifact: # - this workflow -> Cask `amethyst-nostr` (the desktop GUI app / DMG) # # What it does: after a stable release, download the published macOS DMG, assert diff --git a/.github/workflows/bump-winget.yml b/.github/workflows/bump-winget.yml index ef19cfd79a..ecc6df6540 100644 --- a/.github/workflows/bump-winget.yml +++ b/.github/workflows/bump-winget.yml @@ -2,7 +2,7 @@ name: Sync Winget Manifest Reference # Fourth sibling of the three Homebrew sync workflows, same shape: # bump-homebrew-formula.yml -> Formula `amy` -# bump-homebrew-geode-formula.yml -> Formula `geode` +# bump-homebrew-geode-formula.yml -> Formula `geode-relay` # bump-homebrew.yml -> Cask `amethyst-nostr` # this workflow -> Winget `VitorPamplona.Amethyst` # diff --git a/geode/README.md b/geode/README.md index f803a7e3e1..a700bd3614 100644 --- a/geode/README.md +++ b/geode/README.md @@ -58,11 +58,11 @@ the copy-paste steps (create the `geode` user, drop your config in ### Homebrew ```bash -brew install vitorpamplona/tap/geode # from the tap, once published +brew install vitorpamplona/tap/geode-relay # from the tap, once published ``` The formula depends on `openjdk` and installs the no-JRE jar bundle. Reference -formula: [`packaging/homebrew/geode.rb`](packaging/homebrew/geode.rb). +formula: [`packaging/homebrew/geode-relay.rb`](packaging/homebrew/geode-relay.rb). ### Portable tarball (any Linux/macOS, no system Java) diff --git a/geode/packaging/homebrew/geode.rb b/geode/packaging/homebrew/geode-relay.rb similarity index 74% rename from geode/packaging/homebrew/geode.rb rename to geode/packaging/homebrew/geode-relay.rb index aa9398c76b..9b1747ab0d 100644 --- a/geode/packaging/homebrew/geode.rb +++ b/geode/packaging/homebrew/geode-relay.rb @@ -1,7 +1,8 @@ -# Reference Homebrew formula for `geode`, the standalone Nostr relay. +# Reference Homebrew formula for geode, the standalone Nostr relay. # # Submit this to Homebrew/homebrew-core (new-formula PR) or drop it into a -# personal tap (`Formula/geode.rb`) for an instant `brew install /geode`. +# personal tap (`Formula/geode-relay.rb`) for an instant +# `brew install /geode-relay`. # # The url + sha256 below are kept in sync automatically on every stable release # by .github/workflows/bump-homebrew-geode-formula.yml (it downloads the @@ -22,20 +23,19 @@ # INSTALL it on a workstation for local testing; for a production deployment # prefer the Docker image or the .deb/.rpm + systemd unit (see geode/README.md). # -# BLOCKER (verified 2026-08-24): this formula CANNOT be submitted to -# homebrew-core under the name `geode`. That name is permanently reserved — -# homebrew-core's `formula_renames.json` maps "geode" -> "apache-geode" -# (Apache Geode's old name), so `brew info --formula geode` resolves to that -# package. Submitting would need a different token, e.g. `geode-relay` or -# `amethyst-geode`, which also means renaming the binary's Homebrew-facing name -# and updating .github/workflows/bump-homebrew-geode-formula.yml. Until that is -# decided this file is a reference for a personal tap only, where the name does -# not collide. +# The homebrew-core token is `geode-relay`, NOT `geode`. That name is +# permanently reserved: homebrew-core's `formula_renames.json` maps +# "geode" -> "apache-geode" (Apache Geode's old name), so `brew info --formula +# geode` resolves to that package and a new formula could never claim it. +# +# The BINARY is still `geode` — users type `geode`, not `geode-relay`. That is +# safe: apache-geode installs `gfsh`, not `geode`, so there is no collision on +# PATH. Formula token and binary name differ here deliberately. # # As with amy.rb, do NOT strip the `livecheck` block or the comments to match # the amethyst-nostr cask — homebrew-core conventions differ from # homebrew-cask's, and `livecheck` is what drives automated version bumps. -class Geode < Formula +class GeodeRelay < Formula desc "Standalone Nostr relay from the Amethyst project" homepage "https://github.com/vitorpamplona/amethyst" url "https://github.com/vitorpamplona/amethyst/releases/download/v1.14.0/geode-1.14.0-jvm.tar.gz"