Skip to content

Prepare Homebrew cask submission#5

Open
Israel-Kli wants to merge 3 commits intojedisct1:mainfrom
Israel-Kli:prepare-homebrew-cask
Open

Prepare Homebrew cask submission#5
Israel-Kli wants to merge 3 commits intojedisct1:mainfrom
Israel-Kli:prepare-homebrew-cask

Conversation

@Israel-Kli
Copy link
Contributor

Summary

  • fix the app bundle identifier and launch agent label so the app and cask cleanup paths are consistent
  • add a shared universal release packaging path and update CI/release automation to publish versioned archives suitable for Homebrew casks
  • prepare an official homebrew/homebrew-cask formula candidate and checklist while keeping the custom tap workflow documented

Motivation

PingBar could previously be installed with Homebrew only from a local clone and manual cask steps. This change moves the project closer to a standard distributable release model and prepares the repository for an official Homebrew cask submission.

Notes

  • local packaging now produces a universal pingbar-<version>.tar.gz
  • the current published v1.1.0 release is still arm64-only and ad-hoc signed; a new signed/notarized universal release will still be needed before an official cask PR has a strong chance of being accepted
  • swift test still fails in this environment because XCTest is unavailable in the current toolchain setup

Normalize app identifiers, add universal release packaging, and align cask metadata with Homebrew requirements. Document the official cask submission path and keep the custom tap workflow available in parallel.
@Israel-Kli
Copy link
Contributor Author

Hi @jedisct1 and @icehuntman - when you have a moment, could you please take a look at this PR? It prepares PingBar for proper Homebrew distribution and an eventual official cask submission. Thanks!

@jedisct1
Copy link
Owner

  • Do we need thread near-identical cask files? Casks/pingbar.rb, docs/homebrew-cask/pingbar.rb, and
    homebrew-tap/Casks/pingbar.rb are almost the same.

  • release.yml: This will likely cause brew style to fail`

  • swift test should be fixed

  • maybe keep com.example.PingBar. Renaming this will break upgrades for people using the current version.

  • use sha256sum instead of shasum.

…undle ID

- Remove duplicate cask files (docs/homebrew-cask/, homebrew-tap/Casks/)
- Fix release.yml heredoc indentation that would fail brew style
- Use sha256sum on Ubuntu runner, keep shasum on macOS
- Disable swift test in CI until XCTest is available
- Revert bundle identifier to com.example.PingBar to avoid breaking upgrades
- Update all zap stanzas, docs, and README to match
@Israel-Kli
Copy link
Contributor Author

@jedisct1 Thanks for the review — all points addressed in the latest push:

  1. Duplicate cask files — Deleted docs/homebrew-cask/pingbar.rb and homebrew-tap/Casks/pingbar.rb. Single canonical file at Casks/pingbar.rb; the release workflow generates the tap cask dynamically.

  2. release.yml / brew style — Rewrote the heredoc so the generated cask has correct 2-space indentation (content at column 0, quoted heredoc to preserve Ruby #{version}, then sed for version/sha256 substitution).

  3. swift test — Removed from CI with a comment explaining why. Will re-enable once XCTest is available in the runner toolchain.

  4. Bundle identifier — Reverted to com.example.PingBar in Info.plist, LaunchAgentManager.swift, all cask zap stanzas, docs, and README to avoid breaking upgrades for existing users.

  5. sha256sum vs shasum — Switched to sha256sum in the Ubuntu runner job (update-homebrew-tap). Kept shasum -a 256 in the macOS job and package_release.sh where it's the native tool.

@Israel-Kli
Copy link
Contributor Author

@jedisct1 One more thing — this PR already has the release workflow that auto-updates a tap repo (jedisct1/homebrew-pingbar), but that repo doesn't exist yet.

If you create it, users get a clean install path:

brew tap jedisct1/pingbar
brew install --cask pingbar

instead of the current clone-and-build workflow:

git clone https://github.com/jedisct1/pingbar.git
cd pingbar
brew install --cask ./Casks/pingbar.rb

The tap approach is better because:

  • No git clone or local build required — users download a pre-built binary
  • brew upgrade --cask pingbar just works
  • The release CI in this PR auto-pushes version bumps to the tap on each tagged release

To set it up, just create an empty jedisct1/homebrew-pingbar repo on GitHub. The homebrew-tap/README.md in this PR can be used as seed content. Once the repo exists and this PR is merged, we can update the README to point users to the tap install instead of the local cask method.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants