From b1a03a083dac8d8ccb212c9591ade1be2d81132e Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 24 Aug 2026 00:39:59 -0400 Subject: [PATCH] docs(homebrew): sync the reference cask to what actually merged upstream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The cask went live in Homebrew/homebrew-cask on 2026-08-24. A maintainer removed three things during review that this reference copy still carried, so the file now documents a shape Homebrew rejected: - the `livecheck do url :url; strategy :github_latest end` block, which is redundant — Homebrew infers the strategy from a GitHub release URL - the inline `conflicts_with` comment - the inline `zap` rationale comment The body below the header is now byte-identical to upstream, so `diff`-ing the two is meaningful again. The removed rationale was worth keeping, just not upstream, so it moves into the header — which `scripts/bump-winget.sh`-style stripping never applies here anyway, because this file is only ever read, never copied. Notably the `zap` paths, re-derived from source rather than trusted from the old comment: `AccountManager.kt` for `~/.amethyst` (accounts and KEYS), `DesktopTorManager.kt` for the Application Support path, and `DesktopImageLoaderSetup.kt` whose macOS `cacheDir()` branch resolves to `~/Library/Caches`. Also why the shared Java prefs plist is deliberately excluded: `java.util.prefs` writes every Java app's preferences into that one file. The header also corrects a scope claim. It implied this file is what ships; it is not. `scripts/bump-homebrew-cask.sh` bumps upstream through `brew bump-cask-pr`, which edits the upstream cask in place and only reads version + sha256 from here. Verified the enlarged header cannot confuse either bumper: both anchor on the two-space indent (`^ version "` / `^ sha256 "`), each matches exactly once, and replaying the workflow's `sed` against this file changes those two lines and nothing else. `ruby -c` passes. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Gs2gi3sZfQ7SHrVm2njLMw --- .../packaging/homebrew/amethyst-nostr.rb | 60 ++++++++++++------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/desktopApp/packaging/homebrew/amethyst-nostr.rb b/desktopApp/packaging/homebrew/amethyst-nostr.rb index bdc7464a51..1242a9afe5 100644 --- a/desktopApp/packaging/homebrew/amethyst-nostr.rb +++ b/desktopApp/packaging/homebrew/amethyst-nostr.rb @@ -1,20 +1,49 @@ # Reference Homebrew Cask for the Amethyst desktop app. # -# This file is NOT consumed by any build in this repo. Submit it to -# Homebrew/homebrew-cask (as `Casks/a/amethyst-nostr.rb`) or drop it into a -# personal tap (`Casks/amethyst-nostr.rb`) for an instant -# `brew install --cask /amethyst-nostr`. +# THIS IS A MIRROR. The live cask is Homebrew/homebrew-cask +# `Casks/a/amethyst-nostr.rb` (merged 2026-08-24). Keep this file byte-identical +# to it below the header, so a diff against upstream is meaningful. Note that +# `scripts/bump-homebrew-cask.sh` bumps upstream via `brew bump-cask-pr`, which +# edits the upstream cask in place — it only reads version + sha256 from here, +# so this file is documentation, not the thing that ships. # # The release matrix (.github/workflows/create-release.yml) builds an # Apple-Silicon DMG only (no Intel DMG), so this cask is arm64-only. # -# version + sha256 below track the published -# `amethyst-desktop--macos-arm64.dmg`. Once the cask exists upstream, -# bump-homebrew.yml keeps the live copy current on each stable release. To -# refresh this reference by hand: +# version + sha256 track the published +# `amethyst-desktop--macos-arm64.dmg`; bump-homebrew.yml keeps them +# current on each stable release. To refresh by hand: # curl -fsSL -o amethyst.dmg \ # https://github.com/vitorpamplona/amethyst/releases/download/vX.Y.Z/amethyst-desktop-X.Y.Z-macos-arm64.dmg # shasum -a 256 amethyst.dmg +# +# --------------------------------------------------------------------------- +# Why the cask body is this bare (review feedback on homebrew-cask#282745) +# --------------------------------------------------------------------------- +# The submitted version carried a `livecheck` block and two explanatory +# comments. A maintainer removed all three. Do not add them back: +# +# * `livecheck do url :url; strategy :github_latest end` — redundant. +# Homebrew infers the strategy from a GitHub release URL. Verified that +# `brew audit --new --cask` and `brew style` both still pass without it. +# * Inline comments — homebrew-cask house style is terse. The rationale +# lives here instead, where it is useful to us and invisible upstream. +# +# `conflicts_with cask: "amethyst"` is NOT optional: the unrelated tiling +# window manager (cask `amethyst`, ianyh/Amethyst) installs its own +# `Amethyst.app`, so the two cannot coexist in /Applications. +# +# The `zap` paths were verified against application source, not docs: +# ~/.amethyst AccountManager.kt -> File(homeDir, ".amethyst") +# (accounts + KEYS — destructive) +# ~/Library/Application Support/Amethyst DesktopTorManager.kt -> ".../Amethyst/tor" +# ~/Library/Caches/AmethystDesktop DesktopImageLoaderSetup.kt -> cacheDir() +# (its macOS branch is ~/Library/Caches) +# +# Deliberately NOT zapped: ~/Library/Preferences/com.apple.java.util.prefs.plist. +# The app uses the Java Preferences API (auth approvals, Namecoin settings), +# which writes into that single SHARED plist — deleting it would wipe every +# other Java application's preferences too. cask "amethyst-nostr" do version "1.14.0" sha256 "84a1bdaf3577ed7375ab65c48358efd3c609fa47b504de61f4e8fc436f6b3436" @@ -24,27 +53,12 @@ cask "amethyst-nostr" do desc "Nostr client" homepage "https://github.com/vitorpamplona/amethyst" - livecheck do - url :url - strategy :github_latest - end - - # The unrelated tiling window manager (cask `amethyst`, ianyh/Amethyst) also - # installs `Amethyst.app`, so the two cannot coexist in /Applications. conflicts_with cask: "amethyst" depends_on arch: :arm64 depends_on :macos app "Amethyst.app" - # Verified against the source, not the docs: - # ~/.amethyst DesktopAccountStorage (accounts + keys) - # ~/Library/Application Support/Amethyst DesktopTorManager (tor/) - # ~/Library/Caches/AmethystDesktop Coil image cache - # - # Deliberately NOT zapped: ~/Library/Preferences/com.apple.java.util.prefs.plist. - # The app uses the Java Preferences API, which writes to that single SHARED - # plist — deleting it would wipe every other Java app's preferences too. zap trash: [ "~/.amethyst", "~/Library/Application Support/Amethyst",