mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-05 19:28:25 +00:00
fix(homebrew): rename the geode formula to geode-relay to clear the name collision
`geode` can never be a homebrew-core formula: `formula_renames.json` maps "geode" -> "apache-geode", so the token is permanently reserved and `brew info --formula geode` resolves to Apache Geode. The previous commit recorded that as a blocker; this removes it. - `geode/packaging/homebrew/geode.rb` -> `geode-relay.rb`, `class Geode` -> `class GeodeRelay` (Homebrew requires the class to track the filename). - `bump-homebrew-geode-formula.yml` follows the path, and the three sibling workflows' header comments now name the formula correctly. - `geode/README.md` points at the new file and the new tap install line. **The binary is still `geode`.** Users type `geode`, not `geode-relay`. That is safe rather than sloppy: apache-geode installs `gfsh`, so nothing collides on PATH. Formula token and binary name differ deliberately, which the header now states so nobody "fixes" it later. Verified: `brew style` clean on the renamed file (it validates class-vs-filename agreement, so this catches a bad rename), `brew info --formula geode-relay` resolves to this relay rather than Apache Geode, `ruby -c` passes, and replaying the bump workflow's `sed` still changes exactly the two intended lines. `geode/plans/2026-07-24-geode-release.md` is left alone — a dated design doc, not live configuration. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gs2gi3sZfQ7SHrVm2njLMw
This commit is contained in:
co-authored by
Claude Opus 5
parent
e184db69c7
commit
4ef3d12adf
@@ -3,11 +3,11 @@ name: Bump Homebrew Formula (geode relay)
|
|||||||
# Sibling of bump-homebrew-formula.yml (the amy CLI). Same mechanism, different
|
# Sibling of bump-homebrew-formula.yml (the amy CLI). Same mechanism, different
|
||||||
# artifact:
|
# artifact:
|
||||||
# - bump-homebrew-formula.yml -> Formula `amy` (the headless CLI)
|
# - 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-<version>-jvm.tar.gz`
|
# After a stable release, download the published `geode-<version>-jvm.tar.gz`
|
||||||
# bundle, compute its sha256, and open a PR that syncs
|
# 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
|
# in-repo reference formula accurate makes the eventual homebrew-core submission a
|
||||||
# copy-paste.
|
# copy-paste.
|
||||||
#
|
#
|
||||||
@@ -101,7 +101,7 @@ jobs:
|
|||||||
- name: Update reference formula
|
- name: Update reference formula
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
FORMULA=geode/packaging/homebrew/geode.rb
|
FORMULA=geode/packaging/homebrew/geode-relay.rb
|
||||||
URL="${{ steps.asset.outputs.url }}"
|
URL="${{ steps.asset.outputs.url }}"
|
||||||
SHA="${{ steps.asset.outputs.sha256 }}"
|
SHA="${{ steps.asset.outputs.sha256 }}"
|
||||||
# Rewrite the two indented lines in the formula block. Anchoring on the
|
# Rewrite the two indented lines in the formula block. Anchoring on the
|
||||||
@@ -119,11 +119,11 @@ jobs:
|
|||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
base: main
|
base: main
|
||||||
branch: chore/bump-geode-formula-${{ steps.rel.outputs.tag }}
|
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 }}'
|
commit-message: 'chore: sync geode Homebrew formula to ${{ steps.rel.outputs.tag }}'
|
||||||
title: 'chore: sync geode Homebrew formula to ${{ steps.rel.outputs.tag }}'
|
title: 'chore: sync geode Homebrew formula to ${{ steps.rel.outputs.tag }}'
|
||||||
body: |
|
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:
|
`${{ steps.rel.outputs.tag }}` release:
|
||||||
|
|
||||||
- `url` -> `${{ steps.asset.outputs.url }}`
|
- `url` -> `${{ steps.asset.outputs.url }}`
|
||||||
@@ -158,7 +158,7 @@ jobs:
|
|||||||
``,
|
``,
|
||||||
`Recovery options:`,
|
`Recovery options:`,
|
||||||
`1. Re-run the workflow once the underlying issue is fixed`,
|
`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\``
|
`3. Check the release actually published \`geode-${tag.replace(/^v/, '')}-jvm.tar.gz\``
|
||||||
].join('\n'),
|
].join('\n'),
|
||||||
labels: ['release-ops', 'bug']
|
labels: ['release-ops', 'bug']
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: Sync Homebrew Cask Reference
|
name: Sync Homebrew Cask Reference
|
||||||
|
|
||||||
# Sibling of bump-homebrew-formula.yml (amy) and bump-homebrew-geode-formula.yml
|
# 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)
|
# - this workflow -> Cask `amethyst-nostr` (the desktop GUI app / DMG)
|
||||||
#
|
#
|
||||||
# What it does: after a stable release, download the published macOS DMG, assert
|
# What it does: after a stable release, download the published macOS DMG, assert
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ name: Sync Winget Manifest Reference
|
|||||||
|
|
||||||
# Fourth sibling of the three Homebrew sync workflows, same shape:
|
# Fourth sibling of the three Homebrew sync workflows, same shape:
|
||||||
# bump-homebrew-formula.yml -> Formula `amy`
|
# 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`
|
# bump-homebrew.yml -> Cask `amethyst-nostr`
|
||||||
# this workflow -> Winget `VitorPamplona.Amethyst`
|
# this workflow -> Winget `VitorPamplona.Amethyst`
|
||||||
#
|
#
|
||||||
|
|||||||
+2
-2
@@ -58,11 +58,11 @@ the copy-paste steps (create the `geode` user, drop your config in
|
|||||||
### Homebrew
|
### Homebrew
|
||||||
|
|
||||||
```bash
|
```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
|
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)
|
### Portable tarball (any Linux/macOS, no system Java)
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
# Submit this to Homebrew/homebrew-core (new-formula PR) or drop it into a
|
||||||
# personal tap (`Formula/geode.rb`) for an instant `brew install <tap>/geode`.
|
# personal tap (`Formula/geode-relay.rb`) for an instant
|
||||||
|
# `brew install <tap>/geode-relay`.
|
||||||
#
|
#
|
||||||
# The url + sha256 below are kept in sync automatically on every stable release
|
# The url + sha256 below are kept in sync automatically on every stable release
|
||||||
# by .github/workflows/bump-homebrew-geode-formula.yml (it downloads the
|
# 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
|
# 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).
|
# 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
|
# The homebrew-core token is `geode-relay`, NOT `geode`. That name is
|
||||||
# homebrew-core under the name `geode`. That name is permanently reserved —
|
# permanently reserved: homebrew-core's `formula_renames.json` maps
|
||||||
# homebrew-core's `formula_renames.json` maps "geode" -> "apache-geode"
|
# "geode" -> "apache-geode" (Apache Geode's old name), so `brew info --formula
|
||||||
# (Apache Geode's old name), so `brew info --formula geode` resolves to that
|
# geode` resolves to that package and a new formula could never claim it.
|
||||||
# package. Submitting would need a different token, e.g. `geode-relay` or
|
#
|
||||||
# `amethyst-geode`, which also means renaming the binary's Homebrew-facing name
|
# The BINARY is still `geode` — users type `geode`, not `geode-relay`. That is
|
||||||
# and updating .github/workflows/bump-homebrew-geode-formula.yml. Until that is
|
# safe: apache-geode installs `gfsh`, not `geode`, so there is no collision on
|
||||||
# decided this file is a reference for a personal tap only, where the name does
|
# PATH. Formula token and binary name differ here deliberately.
|
||||||
# not collide.
|
|
||||||
#
|
#
|
||||||
# As with amy.rb, do NOT strip the `livecheck` block or the comments to match
|
# As with amy.rb, do NOT strip the `livecheck` block or the comments to match
|
||||||
# the amethyst-nostr cask — homebrew-core conventions differ from
|
# the amethyst-nostr cask — homebrew-core conventions differ from
|
||||||
# homebrew-cask's, and `livecheck` is what drives automated version bumps.
|
# 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"
|
desc "Standalone Nostr relay from the Amethyst project"
|
||||||
homepage "https://github.com/vitorpamplona/amethyst"
|
homepage "https://github.com/vitorpamplona/amethyst"
|
||||||
url "https://github.com/vitorpamplona/amethyst/releases/download/v1.14.0/geode-1.14.0-jvm.tar.gz"
|
url "https://github.com/vitorpamplona/amethyst/releases/download/v1.14.0/geode-1.14.0-jvm.tar.gz"
|
||||||
Reference in New Issue
Block a user