Skip to content
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

Add spec for brew package URLs #281

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
19 changes: 19 additions & 0 deletions PURL-TYPES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,25 @@ bitnami
pkg:bitnami/[email protected]
pkg:bitnami/[email protected]?arch=arm64

brew
----
``brew`` for Homebrew-based packages:

- The default repository (tap) is ``homebrew/core``.
woodruffw marked this conversation as resolved.
Show resolved Hide resolved
woodruffw marked this conversation as resolved.
Show resolved Hide resolved

- The tap syntax is ``https://github.com/{org}/Homebrew-{tap}``, so
``homebrew/core`` corresponds to the URL ``https://github.com/homebrew/homebrew-core``.
woodruffw marked this conversation as resolved.
Show resolved Hide resolved
- The ``name`` is the formula name.
woodruffw marked this conversation as resolved.
Show resolved Hide resolved
- The ``version`` is the formula version.
woodruffw marked this conversation as resolved.
Show resolved Hide resolved
- Qualifier ``tap_url``: for taps that are not on GitHub or otherwise require an explicit URL,
this is the full URL to the tap.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question (non-blocking): Should there be another parameter to name the tap? We use the named tap at work, e.g.

brew tap myco/brewhouse [email protected]:brew/house.git

and the formula, uh, myco-ctl could have a purl

pkg:brew/myco/brewhouse/[email protected]:brew/house.git

and brew would know how to name the tap if it needed to be tapped, or perhaps

pkg:brew/myco/brewhouse/[email protected]:brew/house.git&tap_name=myco/brewhouse

or more simply

pkg:brew/[email protected]:brew/house.git&tap_name=myco/brewhouse

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My 0.02c would be for your first form:

pkg:brew/myco/brewhouse/[email protected]:brew/house.git

I think that's unambiguous: the github.com/{org}/homebrew-{tap} logic only applies when a tap_url isn't present, so I think this is the shortest form that conveys all needed information. But maybe I've overlooked something?

- Examples::

pkg:brew/[email protected]
woodruffw marked this conversation as resolved.
Show resolved Hide resolved
pkg:brew/homebrew/core/[email protected]
pkg:brew/some-org/some-tap/[email protected]
pkg:brew/some-org/some-tap/[email protected]&tap_url=https://git.example.com/some-org/some-tap.git
woodruffw marked this conversation as resolved.
Show resolved Hide resolved

cocoapods
---------
``cocoapods`` for CocoaPods:
Expand Down