finestructure / Hummingbird

A macOS utility that makes window management a breeze
https://hbird.app
MIT License
218 stars 19 forks source link

Homebrew got another cask called hummingbird #44

Open FredrikWendt opened 1 year ago

FredrikWendt commented 1 year ago

Hummingbird was just uninstalled from a brew upgrade. Instead, a VPN client was installed.

https://github.com/Homebrew/homebrew-cask/pull/143791#issuecomment-1521797262

I would've preferred getting Hummingbird (the app from this repo) from the upstream/central Homebrew-cask repo.

finestructure commented 1 year ago

Seems like it's related to this: https://github.com/finestructure/Hummingbird/pull/43

I presume brew install finestructure/hummingbird/hummingbird isn't working?

reagle commented 1 year ago

Yes, this has created a mess with brew wanting to update based on the other package's version number and I don't know how to clean it up.

SCR-20230502-htzl
finestructure commented 1 year ago

This comment seems to indicate that the full cask name should work: https://github.com/Homebrew/homebrew-cask/pull/143791#issuecomment-1522299028

Hope that helps!

FredrikWendt commented 1 year ago

The full cask name works, yes.

The bug here lies with how Homebrew deals with

brew install finestructure/hummingbird/hummingbird
brew upgrade hummingbird

... which works just fine, until another app shows up in the ecosystem with the same name.

Homebrew maintainer @reitermarkus agrees this is a bug:
https://github.com/Homebrew/homebrew-cask/pull/145837#issuecomment-1522339937

reagle commented 1 year ago

As an aside, I'm surprised this is the first time this ever happened.

reagle commented 11 months ago

I just went to a computer I haven't touch in a while and see the following, is this still this issue?

==> Found outdated apps
     Cask         Current  Latest  A/U    Result
1/1  hummingbird  3.3.0    1.3.0        [OUTDATED]

Do you want to upgrade 1 app or enter [i]nteractive mode [y/i/N]? Y
==> Upgrading hummingbird to 1.3.0
==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-cask/d08e0c7f9f36629e8d3245f8b
Already downloaded: /Users/reagle/Library/Caches/Homebrew/downloads/9b26e8c9e4681b9f79220043789c5a8196c452c64c702475b04fc83081096cb5--hummingbird.rb
Error: Download failed on Cask 'hummingbird' with message: Failure while executing; `/usr/bin/env /opt/homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/4.0.28-67-ge9ac36a\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 13.4.1\)\ curl/7.88.1 --header Accept-Language:\ en --retry 3 --fail --location --silent --head https://eddie.website/repository/hummingbird/1.3.0/hummingbird-macos-arm64-notarized-1.3.0.zip` exited with 35. Here's the output:
curl: (35) Recv failure: Connection reset by peer
finestructure commented 11 months ago

I don't know if there's anything I could/should be doing to fix this. My understanding is it's an upstream problem. Does using the full cask name still work as a work-around?

FredrikWendt commented 5 months ago

Using the full cask name helps at installation, but often breaks at upgrade. Homebrew uninstalls finestructure/hummingbird, and installs the other package. :-(

FredrikWendt commented 4 months ago

This is becoming really annoying. Would it be possible to call the cask hbird, or create a real homebrew package with a name that doesn't collide with a package (actually cask) registered in upstream Homebrew?

Every "brew upgrade" will pull down the other cask (a VPN software), not this window move/resizing cask, and install that package instead. There is no way to "freeze" a cask, and Homebrew will never even try to add support for that (see https://github.com/Homebrew/homebrew-cask/issues/90242).

Essentially, this lovely piece of software can only be installed with Homebrew once, but will stop working at your first run of "brew upgrade", rendering this cask essentially useless with lots of extra manual work everytime anyone wants to "brew upgrade". The ease of automation that this cask once brought, is completely gone.

I suggest you either remove this cask and inform us "no, sorry, we don't care about simple installation and upgrades via Homebrew" or fix this properly so that it works as intended. This cask is severely broken/essentially useless as it stands, IMO.

FredrikWendt commented 4 months ago

It usually ends up in this mess:

ceda@studiom1 ~ % brew upgrade
==> Downloading https://formulae.brew.sh/api/formula.jws.json

==> Downloading https://formulae.brew.sh/api/cask.jws.json

==> Casks with 'auto_updates true' or 'version :latest' will not be upgraded; pass `--greedy` to upgrade them.
==> Upgrading 1 outdated package:
hummingbird 3.3.0 -> 1.3.0
==> Upgrading hummingbird
==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-cask/1c3a282c45890bc7cfeb57e75ba552b4a96976a6/Casks/h/hummingbi
Already downloaded: /Users/ceda/Library/Caches/Homebrew/downloads/153d82a1968cdfa1e41a0ae3b08e56dd06be040fe1734884ddecf55f19d2573a--hummingbird.rb
==> Downloading https://eddie.website/repository/hummingbird/1.3.0/hummingbird-macos-arm64-notarized-1.3.0.zip
Already downloaded: /Users/ceda/Library/Caches/Homebrew/downloads/42276369502109d4b1866283ab22bb7e6b09e28593926594907b1a2130782739--hummingbird-macos-arm64-notarized-1.3.0.zip
==> Purging files for version 1.3.0 of Cask hummingbird
Error: hummingbird: It seems the App source '/Applications/Hummingbird.app' is not there.
ceda@studiom1 ~ % brew install finestructure/hummingbird/hummingbird
==> Upgrading 1 outdated package:
finestructure/hummingbird/hummingbird 3.3.0 -> 3.3.0
==> Upgrading hummingbird
==> Downloading https://finestructure.co/s/Hummingbird-330.zip
Already downloaded: /Users/ceda/Library/Caches/Homebrew/downloads/359f6180570711d5a1d20643b5ef948968d1e4583ff85ff81450945ff437d398--Hummingbird-3.3.0.zip
==> Purging files for version 3.3.0 of Cask hummingbird
Error: finestructure/hummingbird/hummingbird: It seems the App source '/Applications/Hummingbird.app' is not there.
finestructure commented 4 months ago

Hummingbird isn't really something that'll get updated a lot. The only future changes I can see is if macOS versions would break it. I use it all the time, on all my machines, so this doesn't mean it's "stale". On the contrary, it's just "complete".

So I'm not sure if installing it via Homebrew is such a huge gain then since it's a one-off action and you might as well just download the binary.

If this continues to be an issue for people, I'm tempted to simply remove the cask.