Really informative read, I agree that Homebrew’s naming conventions can be frustrating at times, but overall it’s such a great tool.
I hadn’t realized it was this simple to spin up your own tap for distributing tools. How does this compare to using language specific tools (like uv, for example)? Is it better because that’s easier for folks not within the ecosystem ?
thewisenerd•3h ago
specifically for python packages,
while it's lightweight, shipping the kitchen sink (uv) is a no-go
so, it's a venv, with the pinned dependencies installed [0], a random example of how this looks like, here [1]
(specifically for uv; i tried to get `brew update-python-resources` and `homebrew-pypi-poet` working for a "private" package, it didn't really work; so i went ahead and created uvbrew [2] instead to help with the resource generation)
I switched to nix to manage my systems and haven’t looked back. The only thing lacking is a single dependency on shitty windows for multiplayer gaming.
loozhengyuan•1h ago
IMO it might be more ideal to do the updates from the tap side, similar to how upstream does it. This workflow[1] allows you handle updates even for formulae/casks you do not own. Using the `brew bump` command, you scan all formulae/casks and create PRs that update them. In these PRs[2], you can use the `brew test-bot` command to ensure the updates are tested working.
A small tip for Go folk: the Goreleaser tool makes it very easy to manage your formulae, at least for distributing binaries (allowed in personal taps but a no-no in core)
darkamaul•3h ago
I hadn’t realized it was this simple to spin up your own tap for distributing tools. How does this compare to using language specific tools (like uv, for example)? Is it better because that’s easier for folks not within the ecosystem ?
thewisenerd•3h ago
while it's lightweight, shipping the kitchen sink (uv) is a no-go
so, it's a venv, with the pinned dependencies installed [0], a random example of how this looks like, here [1]
(specifically for uv; i tried to get `brew update-python-resources` and `homebrew-pypi-poet` working for a "private" package, it didn't really work; so i went ahead and created uvbrew [2] instead to help with the resource generation)
[0]: https://docs.brew.sh/Python-for-Formula-Authors [1]: https://github.com/hynek/homebrew-tap/blob/main/Formula/doc2... [2]: https://github.com/thewisenerd/uvbrew
thewisenerd•2h ago
here's something that i was writing just yesterday: