Skip to content

feat(distribution): homebrew cask template + design#29

Merged
kanywst merged 5 commits into
mainfrom
feat/brew-distribution
May 24, 2026
Merged

feat(distribution): homebrew cask template + design#29
kanywst merged 5 commits into
mainfrom
feat/brew-distribution

Conversation

@kanywst
Copy link
Copy Markdown
Member

@kanywst kanywst commented May 24, 2026

Goal

Document the distribution path (macOS .dmg / Homebrew, Linux .deb/.rpm/.AppImage, Windows .exe) and scaffold the Homebrew Cask template.

Design: `docs/zeus-distribution.md`

What this PR ships

  • `docs/zeus-distribution.md` — full distribution design
  • `build/distribution/homebrew-cask.rb.template` — Cask formula template (ruby -c passes)

What this PR does NOT ship

  • Actual release pipeline (needs Apple Developer cert decision)
  • The real `0-draft/homebrew-zeus` tap repo (will be created when first release happens)
  • Signed binaries

Open questions

  • Apple Developer cert under individual vs LLC vs nonprofit — tied to the sustainability model in `MARKET_RESEARCH.md`
  • Whether to auto-rename Zeus's binary at install time when zoxide is detected (current plan: doc only)

Install command (target)

```text
brew tap 0-draft/zeus
brew install --cask zeus
```

…sign

Adds 'docs/zeus-distribution.md' covering the full distribution path
(macOS .dmg + Homebrew tap, Linux .deb/.rpm/.AppImage, Windows .exe),
plus 'build/distribution/homebrew-cask.rb.template' as the substitute-
at-release-time template for the Homebrew Cask formula.

The Cask itself will live in a separate tap repo
('0-draft/homebrew-zeus', file 'Casks/zeus.rb') because Homebrew taps
must be named 'homebrew-*'. The template ruby file is syntax-valid
('ruby -c' passes).

Calls out the zoxide collision (Zeus's release binary is 'z', zoxide
uses 'z' too) in the install notes.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 24, 2026

Warning

Review limit reached

@kanywst, we couldn't start this review because you've used your available PR reviews for now.

Your plan currently allows 1 review/hour. Refill in 1 minute and 3 seconds.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more review capacity refills, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7d45f36c-078c-4b17-8cbb-586cd40db46f

📥 Commits

Reviewing files that changed from the base of the PR and between b82d214 and 2c42790.

📒 Files selected for processing (2)
  • build/distribution/homebrew-cask.rb.template
  • docs/zeus-distribution.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/brew-distribution

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the distribution strategy for Zeus, including a Homebrew Cask template and documentation for macOS, Linux, and Windows releases. The review feedback suggests improving the Homebrew Cask by removing a redundant 'verified' parameter and expanding the 'zap' stanza to ensure a cleaner uninstallation. There is also a recommendation to change the default binary name from 'z' to 'zeus' to avoid conflicts with common tools like zoxide.

Comment thread build/distribution/homebrew-cask.rb.template Outdated
Comment thread build/distribution/homebrew-cask.rb.template
Comment thread docs/zeus-distribution.md Outdated
@kanywst kanywst marked this pull request as ready for review May 24, 2026 11:56
- Remove 'verified:' parameter — redundant when url host matches the
  homepage host (brew audit flags it for GitHub-hosted releases)
- Expand zap trash to cover the standard set of Electron / VS Code
  state paths so 'brew uninstall --zap' is actually clean: Caches,
  ShipIt cache, HTTPStorages, Logs, alongside the existing App
  Support / Preferences / Saved Application State / ~/.zeus
@kanywst
Copy link
Copy Markdown
Member Author

kanywst commented May 24, 2026

Re. binary name z vs zoxide — the z name is a deliberate choice from earlier in the project, not an oversight. It's set in product.json (applicationName: z) and is part of Zeus's identity.

The zoxide collision is real but expected: users who actively use zoxide will need to alias one of the two. Documented in docs/zeus-distribution.md (the install notes section). Switching the default to zeus or zs would undo the explicit project decision; happy to revisit it as a separate discussion if there's enough downstream evidence the collision actually frustrates users.

@kanywst
Copy link
Copy Markdown
Member Author

kanywst commented May 24, 2026

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a Homebrew Cask template and detailed distribution documentation for the Zeus code editor across macOS, Linux, and Windows. Feedback focuses on enhancing the Cask configuration by adding a binary stanza to provide a command-line interface and expanding the zap stanza to ensure a more thorough cleanup of application data upon uninstallation. Corresponding updates to the documentation were also recommended to maintain consistency with the template.

Comment thread build/distribution/homebrew-cask.rb.template
Comment thread build/distribution/homebrew-cask.rb.template Outdated
Comment thread docs/zeus-distribution.md
Comment thread docs/zeus-distribution.md Outdated
…list)

- binary stanza so 'brew install --cask zeus' puts 'z' on PATH out of
  the box. Points at the in-bundle 'bin/z' shipped by the gulp
  packaging step. zoxide collision is still real and is documented
  separately.
- zap additions:
  - ~/Library/WebKit/com.0draft.zeus (webview caches)
  - sharedfilelist sfl3 entry (macOS recent-documents tracking)
- Mirrored in docs/zeus-distribution.md so the example Cask in the
  doc matches the shipped template.
@kanywst
Copy link
Copy Markdown
Member Author

kanywst commented May 24, 2026

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request establishes the distribution strategy for the Zeus editor, introducing a Homebrew Cask template and detailed documentation for macOS, Linux, and Windows releases. The review feedback suggests renaming the default CLI binary from z to zeus to prevent conflicts with existing tools like zoxide and identifies a discrepancy between the documentation and the template regarding the files managed by the zap command.

Comment thread build/distribution/homebrew-cask.rb.template Outdated
Comment thread docs/zeus-distribution.md
Comment thread docs/zeus-distribution.md Outdated
@kanywst
Copy link
Copy Markdown
Member Author

kanywst commented May 24, 2026

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a Homebrew Cask template and a comprehensive distribution strategy document for the Zeus editor, covering installation methods, code signing, and update mechanisms across macOS, Linux, and Windows. Feedback was provided regarding incorrect documentation of Homebrew Cask CLI flags; specifically, the --binary flag is not supported, and the documentation should instead suggest using --no-binaries or manual symlinking to resolve command collisions.

Comment thread build/distribution/homebrew-cask.rb.template Outdated
Comment thread docs/zeus-distribution.md Outdated
@kanywst kanywst merged commit 683f5a0 into main May 24, 2026
4 checks passed
@kanywst kanywst deleted the feat/brew-distribution branch May 24, 2026 15:48
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