-
-
Notifications
You must be signed in to change notification settings - Fork 9.4k
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
Update maintainer documentation. #5724
Merged
MikeMcQuaid
merged 2 commits into
Homebrew:master
from
MikeMcQuaid:maintainer-documentation
Feb 14, 2019
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# Releases | ||
|
||
Since Homebrew 1.0.0 most Homebrew users (those who haven't run a `dev-cmd` or | ||
set `HOMEBREW_DEVELOPER=1`) require tags on the [Homebrew/brew repository](https://github.com/homebrew/brew) | ||
in order to get new versions of Homebrew. There are a few steps in making a new | ||
Homebrew release: | ||
|
||
1. Check the [Homebrew/brew pull requests](https://github.com/homebrew/brew/pulls) | ||
and [issues](https://github.com/homebrew/brew/issues) to see if there is | ||
anything pressing that needs to be fixed or merged before the next release. | ||
If so, fix and merge these changes. | ||
2. After no code changes have happened for at least a few hours (ideally 24 hours) | ||
and you are confident there's no major regressions on the current `master` | ||
branch you can create a new Git tag. Ideally this should be signed with your | ||
GPG key. This can then be pushed to GitHub. | ||
3. Use `brew release-notes --markdown $PREVIOUS_TAG` to generate the release | ||
notes for the release. [Create a new release on GitHub](https://github.com/Homebrew/brew/releases/new) | ||
based on the new tag. | ||
|
||
If this is a major or minor release (e.g. X.0.0 or X.Y.0) then there are a few more steps: | ||
|
||
1. Before creating the tag you should delete any `odisabled` code, make any | ||
`odeprecated` code `odisabled` and add any new `odeprecations` that are | ||
desired. | ||
2. Write up a release notes blog post to https://brew.sh | ||
e.g. https://github.com/Homebrew/brew.sh/pull/319. | ||
This should use `brew release-notes` as input but have the wording adjusted | ||
to be more human readable and explain not just what has changed but why. | ||
3. When the release has shipped and the blog post has been merged, tweet the | ||
blog post as the @MacHomebrew Twitter account or tweet it yourself and | ||
retweet it with the @MacHomebrew Twitter account (credentials are in | ||
1Password). | ||
4. Send the email to the Homebrew TinyLetter email list (credentials are in | ||
1Password). | ||
5. Consider whether to submit it to other sources e.g. Hacker News, Reddit. | ||
|
||
- Pros: gets a wider reach and user feedback | ||
- Cons: negative comments are common and people take this as a chance to | ||
complain about Homebrew (regardless of their usage) |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding this change, I’ve been thinking of
mpv
recently (formula, cask). The formula builds a.app
, and according to the analytics it is almost ten times as popular as the cask. In addition, the cask uses the builds made not by the team, but a user that they trust (and link to directly and officially in the page).Due to this, I have been considering removing the cask (I’m informally trying to query people to see how disruptive it is for their use of
mpv
that he app bundle is in a versioned directory inCellar
instead of/Applications
). Does the removal ofprobably
mean we should remove the formula instead?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We shouldn't remove the formula but we should remove the
.app
that the formula builds. In general where something is useful on the command-line the formula should remain and the Cask be the "GUI install". How's that sound?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies for the length of the reply. I did try making it shorter. Maybe I should open an issue for discussion.
I’m guessing the
mpv
formula includes theapp
because--with-bundle
was popular. So removing the bundle will make users open issues.To clarify, I like the formula (I use it instead of the cask) and think there is value to some formulae building
.app
s — cases where the dev team does not have someone in charge of making the bundles. For example, in Cask we are some versions behind on Inkscape (fun fact: also part of the SFC) because they have no macOS devs.I’d be fine with removing those casks in favour of the formulae counterparts, as I think users would be better served when the alternative is having older software. But the
brew
/brew cask
division is confusing for users and separating by CLI/GUI makes sense, so maybeapp
-building-formulae should be restricted to third party taps. To push the point further, maybe CLI-only casks (closed-source) should be removed as well.But the cask can also install the CLI. I’m open to removing that line, but I guess some users would be unhappy to have to
brew install mpv && brew cask install mpv
to get both the CLI and the GUI versions. It would help bring home the HB is CLI and HBC is GUI point, but might it also cause problems stemming from different installed versions of the CLI and GUI? That makes me ambivalent to removing thebinary
stanza from the cask.But otherwise, if you do think app bundles should be removed from formulae, the rule would be “if want the CLI,
brew
, if you want the GUI,brew cask
but it would also bring the CLI that typically comes in the package”.Some casks tried to make that clearer (
mkvtoolnix
) by adding an-app
suffix, but that’s confusing even to maintainers. That suffix was added in the spirit of deduplication, but now we should probably get rid of that rule and rename those casks.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For context, right now in
homebrew-core
there are at least 33 formulae that build apps:There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeh, good idea. I've replied inline to your comment but would be good to move future conversation to one.
The problem with formulae building apps is the way Homebrew handles apps is a mess. We removed the
brew linkapps
commands for this reason and generally application bundles that are created are not "real" i.e. relocatable or including their dependencies. It's a shitty experience, basically.Yeh, I'm aware of this. To me this does seem fairly similar to the days of when we weren't favouring X11, required Clang, etc. in that we're partly acting as a forcing function to produce a better macOS ecosystem. We should make it easier to package well-packaged macOS applications than the opposite.
I really don't want to remove even older GUI Casks that build .apps in favour of formulae. Inkscape is a great example, actually, because the formula was a nightmare to keep building successfully and it had generally a long, painful build process and also that I'm not convinced older versions so old as to be "useless" (despite what others may claim).
I'd be in favour of this if we're also going to nudge towards Casks. Something we've talked about in the past that may be worth resurrecting is somehow having a formulae tap that's designed to build and upload files that can be then used as casks.
Are there many CLI-only closed-source casks? I'd be interested in thinking more about this. It'd be worth using analytics data to inform this and other decisions (https://formulae.brew.sh/analytics/cask-install/30d/)
Yes, I agree. I think it's fine for the Cask to install a CLI link if it's already included with the software.
Yes, this seems reasonable.
Yes, agreed.
It's also worth noting that I don't think these requirements changing here state would should be done immediately to all existing formulae/casks but should be enforced pretty strongly for new formulae and casks.
Something that always rings in my ears is what
@mxcl
said about Homebrew's primary purpose being "to be useful". In my Homebrew I've slightly extended that to be "to be useful at a quality that minimises support issues and improves the macOS ecosystem". I think that's what I'd like to keep in mind when we're thinking about this stuff.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Homebrew/homebrew-cask#62715