-
Notifications
You must be signed in to change notification settings - Fork 166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: brew
type
#254
Comments
Something that I'd like to see in this is perhaps query parameters to set the tap URL and name so that private taps even those off of GitHub can use it effectively.
Homebrew would handle this by tapping that URL with the given name and then installing the myapp formula. The |
Thanks for writing this @woodruffw . Some comments and clarifications:
The version itself is not fixed as much as the range is.
In general in package managers this is seen as part of the version since it can be a very different package between revisions. Not sure if that applies to purl too.
For an identifier this is already part of the version information. If a package switches from calver to semver you'll have a different version.
Yeah, agreed. Bottles seem a step too detailed for a first draft. |
Yep, thanks for clarifying this! |
From here, the next step is probably to get an initial 👍 from the purl folks and then open up an initial PR (I can do this). |
CC @pombredanne @stevespringett anything else we should do here? Otherwise I'll go ahead and start on a PR 🙂 |
Is the target platform something this purl type should support? I use homebrew on macOS all the time, but I know it also supports Linux. Can formulas differ between platforms and is that logic embedded in a formula? Is there a need to call out cast as something potentially different? How would a cast be represented in purl? |
Some formulae only work on a single platform, but there is no way to have a |
Building off what @SMillerDev said: Homebrew formulae themselves are notionally platform independent (although they may only build on some platforms). I think the closest analogy is PyPI with sdists and wheels: a formula is like an sdist, and
A Cask is more or less a macOS |
To add to this, while formulae in homebrew-core are all open source with OSI-approved licenses, casks are often closed source software. The cask definition files are essentially a pointer to where to grab upstreams published binaries. |
Formulae in private taps are often binary formulae, meaning their source URL doesn't contain source code but a pre-compiled binary. This is common inside the firewall where companies don't have or need Homebrew's build infrastructure. The |
Tracking: Assigning the PR for this to @josephsweeney on our side 🙂 |
We've opened #281 for this! |
First of all, thank you for creating and maintaining this spec! I think it's a great idea, and I'm looking forward to using (and contributing to) it.
I'm opening this to start a rough sketch of a purl type for Homebrew formulae.
Some initial bits:
homebrew/core
{org}/homebrew-{tap}
for GitHub taps, sohomebrew/core
corresponds tohttps://github.com/homebrew/homebrew-core
name
is the Formula name@
(e.g.llvm@17
), so this will need to be percent-encodedname@version
are typically "fixed" versions,version
is the Formula versionrevision
(when the formula itself is patched) (is this worth including?)version_scheme
(when the version ordering is changed, similar to epochs in Python) (is this worth including?)Things not covered (yet):
So, some rough examples:
CC @p-linnane @colindean @SMillerDev as interested parties 🙂
The text was updated successfully, but these errors were encountered: