3 ms·
You don't even need to maintain a separate custom tap repo. Keep the formula in the same repo in a Formula directory, and include the repo URL when tapping (get
by stepanhruda 11y ago
You don't even need to maintain a separate custom tap repo. Keep the formula in the same repo in a Formula directory, and include the repo URL when tapping (gets rid of the homebrew- restriction)
The brew command for users would be:
brew tap octavore/delta https://github.com/octavore/delta.git https://github.com/octavore/delta.git
brew install delta
---
Example above of course doesn't currently work because the formula is not there
(I successfully use it in my repo: https://github.com/stepanhruda/ios-simulator-app-installer https://github.com/stepanhruda/ios-simulator-app-installer)
- tpwong 11y agoThat's awesome, I didn't know about that. I'll update the post with your tip. Thank you!
- guptaneil 11y agoI find the method described in the post to be cleaner UX. Sure, it requires a little extra work on your part to setup, but running a single `brew install octavore/tools/delta` is much nicer and easier to remember than brew tap octavore/delta https://github.com/octavore/delta.git https://github.com/octavore/delta.git brew install delta
- stepanhruda 11y agoYou're definitely right, just wanted to provide an alternative I found useful. 95% of the time I copy & paste brew commands for custom taps from the repo, I wouldn't remember the 3-part path anyway. This is probably asking for a PR to hombrew, the ideal command would be brew install delta https://github.com/octavore/delta.git https://github.com/octavore/delta.git
- paulirish 11y agoA downside of using a tap is that your users subsequent `brew update`s will also have to pull from your repo each time. My current `brew update` has to check 12 separate repos, and takes almost a minute to complete. As a heavy brew user, I'd prefer a packaging convention with less performance impact.
- JonathonW 11y agoKeep in mind that Homebrew clones tap repositories when you do 'brew tap'-- this has two major implications if you're keeping your formula in your main source repository: (1) You're pushing down bits onto users' machines that may not be necessary (like developer documentation, or development versions of your source code if you're developing on master), and (2) 'brew update' will need to download (via 'git pull') all changes to your repository any time you update, even when the Homebrew formula doesn't change. Keeping formulas in a separate repository allows Homebrew to work like it's supposed to (and like it does for built-in formulas): an update to your tap repository means there's updates for the formulas that it contains, and you're not downloading any source code except what's actually going to be used, at the time it's going to be used (during 'brew install').