Homebrew / homebrew-cask

🍻 A CLI workflow for the administration of macOS applications distributed as binaries
https://brew.sh
BSD 2-Clause "Simplified" License
20.91k stars 10.7k forks source link

A review of `binary`-only casks #62715

Closed vitorgalvao closed 3 years ago

vitorgalvao commented 5 years ago

This is a continuation of https://github.com/Homebrew/brew/pull/5724/files#r256898140.

In that thread, to advance the goal of lessening the confusion users have between brew and brew cask, the following rule was suggested:

“if [you] want the CLI, brew, if you want the GUI, brew cask but it would also bring the CLI that typically comes in the package”

And

To push the point further, maybe CLI-only casks (closed-source) should be removed as well.

For that second point it was suggested we look at the analytics, which is what this issue is about. The rule for inclusion was casks that include binary but not pkg, app, or suite. Some of these are open-source but can’t be built (or would be too complex) as formulae.

They are ordered by number of downloads in the last 365 days. Of the casks in the table, only 2 are not in the main repo: nordic-nrf5x-command-line-tools and chromedriver-beta.

It’s clear from these results we can’t remove binary-only casks without upsetting thousands of users, so that’s a no-go for the time being. However, we should continue to think of ways to make the brew/brew cask divide clearer.

cask 30d 90d 365d
minikube 13,958 43,475 107,029
android-platform-tools 13,251 36,055 94,566
chromedriver 8,499 24,223 63,225
android-sdk 5,061 16,072 44,099
google-cloud-sdk 3,893 11,199 28,305
ngrok 3,279 10,082 26,369
phantomjs 2,476 7,803 18,933
minishift 1,520 4,690 11,801
aws-vault 1,021 3,094 7,515
jet 374 1,160 3,234
1password-cli 271 938 2,587
cscreen 221 674 1,745
rar 324 754 1,733
kindlegen 206 615 1,601
oclint 386 1,161 1,442
borgbackup 124 462 1,287
fly 104 343 883
jad 88 213 565
dynamodb-local 77 220 553
dwarf-fortress 69 206 468
perforce 62 177 464
consul-cli 45 116 312
browserstacklocal 32 113 306
corelocationcli 30 107 290
lunchy 36 97 252
nordic-nrf5x-command-line-tools 38 108 243
grads 24 69 232
ghidra 154 155 155
sauce-connect 23 58 145
gmvault 20 52 123
steamcmd 10 47 116
jtool 21 46 115
eventstore 24 75 97
minecraft-server 10 42 88
operadriver 8 21 85
dusty 5 17 81
sublercli 8 30 76
red 5 13 74
hab 2 8 52
rq 11 17 50
mars 8 22 49
joker 5 15 48
logisim-evolution 3 21 46
wercker-cli 5 12 43
adobe-air-sdk 5 18 42
manuskript 6 17 41
crystax-ndk 6 13 40
gogs 2 3 40
livetail 4 6 37
chromedriver-beta 35 35 35
spatial 1 7 33
simplistic 2 8 31
jsl 1 6 31
parse 6 12 30
activitywatch 15 28 28
subgit 2 8 23
cmucl 3 6 22
procexp 1 3 17
happygrep 2 5 15
mcrcon 7 11 15
textricator 6 7 14
streamtools 2 9 14
filemon 2 6 14
hashbackup 4 9 14
hfsleuth 3 4 13
wolverian commented 5 years ago

aws-vault upstream has said that they prefer casks. I don't know why. One possible reason is signing the binaries.

It would be nice to fix this cask (or formula) to include the upstream shell completion scripts. I couldn't figure out how to add them to the cask, so I added a formula for aws-vault in my tap, which includes the completion scripts. I didn't create a PR to homebrew-core since I'm uncertain if it would be accepted.

Ping @lox @mtibben.

vitorgalvao commented 5 years ago

aws-vault upstream has said that they prefer casks. I don't know why. One possible reason is signing the binaries.

While upstream input is valuable, a single vendor’s opinion makes no difference. We’re looking for something that can be applied in a consistent manner.

I didn't create a PR to homebrew-core since I'm uncertain if it would be accepted.

Nothing bad will happen if it isn’t accepted, so I don’t understand your reason to not submit a PR. If the work is done either way, submit it. If it’s accepted, your contribution will affect a lot of people; if it’s not, you’ll learn something about our process and we’ll get further knowledge of the software.

I’ll reinforce the goal of this issue:

However, we should continue to think of ways to make the brew/brew cask divide clearer.

Answering that question is what replies should focus on.

MikeMcQuaid commented 5 years ago

My hot take:

Reasons insufficient for something being a cask:

Reasons insufficient for something being a formula:

wolverian commented 5 years ago

Thank you, @vitorgalvao, for the advice. I'll look more into submitting the PR.

However, we should continue to think of ways to make the brew/brew cask divide clearer.

Answering that question is what replies should focus on.

I feel the app/cli division is a good idea. From the upstream/developer side of the issue, codesigning might be an issue, if binaries in bottles can't be codesigned by upstream.

lox commented 5 years ago

It uses Keychain APIs so needs to be code signed. I’d love nothing more than to NOT have it in cask.

Any alternative suggestions are welcomed.

On 18 Jun 2019, at 11:55 pm, Ilmari Vacklin notifications@github.com wrote:

Thank you, @vitorgalvao, for the advice. I'll look more into submitting the PR.

However, we should continue to think of ways to make the brew/brew cask divide clearer.

Answering that question is what replies should focus on.

I feel the app/cli division is a good idea. From the upstream/developer side of the issue, codesigning might be an issue, if bottles can't be codesigned by upstream.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

vitorgalvao commented 5 years ago
  • if it's usefully available as either/both: it should have both a formula and a cask we should have a consistent suffix for casks in this situation e.g. -app, .app, -gui, -cask or similar.

We tried that and ended up going back because it wasn’t useful enough. It only occurred a few times, and caused more confusion than not having the suffix.

BrewTestBot commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

vitorgalvao commented 3 years ago

As the line between HB and HBC muddles, and you don’t even need to brew cask install casks, this becomes less relevant.