-
-
Notifications
You must be signed in to change notification settings - Fork 10.8k
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
Streamlining Updates #15908
Comments
I like the sentiment a lot. I’d change the solution a bit, though, since I perceive a hole as it stands. I’ll explain what I mean so we can discuss it and add/replace/remove from your top post, which should (as we usually do) contain the final decisions at any given point. Basically, I’d change where (part of) the automation is. Instead of making simple PRs automatically, merge them automatically.
I’m a big fan of “stopping to try to be smart” for this, as #13201 should illustrate. Being smart before having things that work is what caused a lot of the problems in the first place. I’d go as far as removing that second sentence and removing types altogether, though. However, for the current proposal that wouldn’t work. The problem is that for us to be able to make an automatic PR, we need to know what the new version is. To know that, we need to parse the appcast, and to do that we need to know how it’s structured, hence the types. However, not every type can be trusted to be consistent. For example, the same type of appcast might be different between apps. For example, github appcasts that contain source releases and different OSs in one app, but not in another. Also, there are non-standard appcasts that will add even more overhead. It might not be possible then, to make this work at all without a lot of workarounds for each app, so we should scrape types altogether. But now, this also makes it impossible for (updated, see first post) As for |
Thanks to @Amorymeltzer, the first item, “update |
Updated the main post with the revised checklist. |
Just updated |
@vitorgalvao Tested the updated script with #15992 and #15993, seems to work well. I'd probably put auto-merging PRs as fairly low-prioirity, as it's already so low friction with The next big step is to mass-add appcast shasums to Casks without one. AFAIK no Cask hosted on Github has one yet. |
“Add : |
If |
@zmwangx From #16134 (comment):
It is indeed stable enough. It has been relatively stable ever since its release, and problems are usually caught early (sometimes by @adityadalal924). That said, I have no quarrel whatsoever with unofficial (or semi-official) projects (and like that there are many other scripts and gems made by users). I also enjoy having Like I quoted, it’s not out of the question at all, but making it so will lose (some of) those advantages. The fact that it depends on other formula is a big one, even. Though I check to see if they are installed anyway (in case you installed |
I am in favor of keeping it in tiny scripts, and I'll look into adding a comment or two about it into contributing.md also |
@vitorgalvao What you said makes sense, but there are two problems:
|
That is being addressed by @adityadalal924 in #16511. |
Sure. |
Removed the idea about the auto-merging bot. Thinking about it last night, I realised it could be potentially dangerous, since we allow pretty much anything in |
#16529 should help make checking simple anyway - Once Travis lights up green and one of the maintainers gives a quick once-over to the PR, it should be okay to merge (which we generally are pretty quick about, anyway). The "auto-update" script is still a reasonable idea, and would go well with |
I still intend to work on it after I finish updating all appcasts.
Have you I’m also thinking of adding a |
#18237 finishes up this initiative. Closing in favor of that PR. |
Some thoughts and a
tentativeroadmap towards minimizing both the time and effort to keep Casks up to date inhomebrew-cask
Currently: Cask updates are submitted as PRs by (our awesome) contributors. A new PR must be made for each version, and then merged into
caskroom/homebrew-cask
We have some pieces (ie.
appcast
URLs andcask-repair
to push towards a better process, but there's nothing streamlined yet.Roadmap (updated based on @vitorgalvao's comments below):
cask-repair
to also update theappcast
stanza’s:sha256
.appcast
s, remove:format
altogether.:sha256
to allappcast
s:sha256
inappcast
s a requirement.cask-repair
to also submit a PR automatically. 1cask-repair
to CONTRIBUTING.md (documentation)Build a script/bot, that will:
- [ ] Auto-merge PRs only if said PR:(#15908 (comment))- Consists of a single commit to a single cask.
- Modifies the cask (i.e. not valid for creating casks).
- Modifies exactly (no more, no less) the stanzas:
version
,sha256
, and:sha256
on theappcast
if there is one.- Passes all tests.2
appcast
. Updates would clearly show up as having a changed:sha256
.appcast
changes, open a new issue in the form of a Cask Request. Includes:appcast
.1 At which point
cask-repair
could be used to submit the PR, set it and forget it. Perhaps it should also be updated (would likely have to use a third-party tool as well, like howprfixmaster
usesghi
) to auto-submit the PR, instead of the current behaviour where you still need to go to the actual page and click to submit it.2 Since @jawshooah made Travis confirm shasums, we know that also means the download is valid.
The text was updated successfully, but these errors were encountered: