Skip to content

feat(homebrew): make the Mac app installable with Homebrew - #9

Open
jubianchi wants to merge 3 commits into
dev-null-sh:productionfrom
jubianchi:feat/homebrew-cask
Open

jubianchi wants to merge 3 commits into
dev-null-sh:productionfrom
jubianchi:feat/homebrew-cask

Conversation

@jubianchi

Copy link
Copy Markdown

Summary

This adds a Homebrew cask to this repository, so the app can be installed with:

brew tap dev-null-sh/devnull https://github.com/dev-null-sh/mac-os-app
brew install --cask dev-null-sh/devnull/devnull

The repository works as its own tap, so no separate homebrew-tap repository is needed.

Changes

  • Casks/devnull.rb: the cask, which installs DevNull.app from https://dev-null.sh/downloads/DevNull.dmg.
    • version :latest and sha256 :no_check: the DMG URL has no version in it, so a pinned checksum would break installs after every release until someone updated the cask. Once installed, the app updates itself.
    • depends_on macos: :sonoma, matching LSMinimumSystemVersion.
    • zap removes the app's preferences, caches, HTTP storage and saved state.
  • .github/workflows/cask.yml: runs brew style and brew audit --strict --online on the cask when it changes.
  • README.md: explains how to install the app, from the DMG or with Homebrew.

Notes

  • name is DevNull because Homebrew's linter rejects the /dev/null string, and RuboCop disable comments aren't allowed in casks.
  • auto_updates true would fit the app, but Homebrew's audit rejects it for version :latest casks.
  • Later, a versioned DMG URL (for example /downloads/DevNull-0.4.0.dmg) would allow a pinned version and checksum, auto_updates true, and a submission to the official homebrew/cask repository.

Testing

  • brew style and brew audit --cask --strict --online pass, run locally from a tap of this branch.
  • brew install --cask puts DevNull.app 0.4.0 in /Applications, and the signature verifies. brew uninstall --cask removes it.

The DMG is served at an unversioned URL and the app updates itself, so
the cask follows the latest release and lets the app handle upgrades.
@jubianchi
jubianchi marked this pull request as ready for review November 2, 2026 17:24
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.

1 participant