<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Dec 17, 2021 at 6:38 PM Tom Stellard <<a href="mailto:tstellar@redhat.com" target="_blank">tstellar@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 12/17/21 16:47, David Blaikie wrote:<br>
> Sounds pretty good to me - wouldn't mind knowing more about/a good summary of the effects of this on project/repo/etc notifications that Mehdi's mentioning. (be good to have a write up of the expected impact/options to then discuss - from the thread so far I understand some general/high level concerns, but it's not clear to me exactly how it plays out)<br>
> <br>
<br>
The impact is really going to depend on the person and what notification preferences they<br>
have/want.  If you are already watching the repo with the default settings, then you probably<br>
won't notice much of a difference given the current volume of notifications.<br></blockquote><div><br>I think I'm on the default settings - which does currently mean a notification for every issue update, which is a lot. Given that <a href="mailto:llvm-bugs@email.llvm.org">llvm-bugs@email.llvm.org</a> has been re-enabled, sending mail only on issue creation, I & others might opt back in to that behavior by disabling the baseline "notify on everything" to "notify only on issues I'm mentioned in".<br><br>I guess currently the only email that github is generating is one email per issue update. We don't have any pull requests, so there aren't any emails for that, yeah?<br><br>So this new strategy might add a few more back-and-forth on each cherrypick issue (for those using llvm-bugs & disabling general issue notifications, this will not be relevant to them - there won't be more issues created, just more comments on existing issues). But there will be some more emails generated related to the pull requests themselves, I guess? So each cherrypick goes from 2 emails to llvm-bugs (the issue creation and closure) to, how many? 4 (2 for llvm-bugs and I guess at least 2 for the pull request - one to make the request and one to close it - maybe a couple more status ones along the way?)<br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
If people want to give their notification preferences, I can try to look at how<br>
this change will impact specific configurations.<br></blockquote><div><br><a class="gmail_plusreply" id="plusReplyChip-1" href="mailto:joker.eph@gmail.com" tabindex="-1">@Mehdi AMINI</a> - are there particular scenarios you have in mind that'd be good to work through?<br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
-Tom<br>
<br>
<br>
> On Fri, Dec 17, 2021 at 1:15 PM Tom Stellard via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a> <mailto:<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>>> wrote:<br>
> <br>
>     Hi,<br>
> <br>
>     Here is a proposal for a new automated workflow for managing parts of the release<br>
>     process.  I've been experimenting with this over the past few releases and<br>
>     now that we have migrated to GitHub issues, it would be possible for us to<br>
>     implement this in the main repo.<br>
> <br>
>     The workflow is pretty straight forward, but it does use pull requests.  My<br>
>     idea is to enable pull requests for only this automated workflow and not<br>
>     for general development (i.e. We would still use Phabricator for code review).<br>
>     Let me know what you think about this:<br>
> <br>
> <br>
>     # Workflow<br>
> <br>
>     * On an existing issue or a newly created issue, a user who wants to backport<br>
>     one or more commits to the release branch adds a comment:<br>
> <br>
>     /cherry-pick <commit_sha> <..><br>
> <br>
>     * This starts a GitHub Action job that attempts to cherry-pick the commit(s)<br>
>     to the current release branch.<br>
> <br>
>     * If the commit(s) can be cherry-picked cleanly, then the GitHub Action:<br>
>           * Pushes the result of the cherry-pick to a branch in the<br>
>             llvmbot/llvm-project repo called issue<n>, where n is the number of the<br>
>             GitHub Issue that launched the Action.<br>
> <br>
>           * Adds this comment on the issue: /branch llvmbot/llvm-project/issue<n><br>
> <br>
>           * Creates a pull request from llvmbot/llvm-project/issue<n> to<br>
>             llvm/llvm-project/release/XX.x<br>
> <br>
>           * Adds a comment on the issue: /pull-request #<n><br>
>             where n is the number of the pull request.<br>
> <br>
>     * If the commit(s) can't be cherry-picked cleanly, then the GitHub Action job adds<br>
>     the release:cherry-pick-failed label to the issue and adds a comment:<br>
>     "Failed to cherry-pick <commit_sha> <..>" along with a link to the failing<br>
>     Action.<br>
> <br>
>     * If a user has manually cherry-picked the fixes, resolved the conflicts, and<br>
>     pushed the result to a branch on github, they can automatically create a pull<br>
>     request by adding this comment to an issue: /branch <user>/<repo>/<branch><br>
> <br>
>     * Once a pull request has been created, this launches more GitHub Actions<br>
>     to run pre-commit tests.<br>
> <br>
>     * Once the tests complete successfully and the changes have been approved<br>
>     by the release manager, the pull request can me merged into the release branch.<br>
> <br>
>     * After the pull request is merged, a GitHub Action automatically closes the<br>
>     associated issue.<br>
> <br>
>     Some Examples:<br>
> <br>
>     Cherry-pick success: <a href="https://github.com/tstellar/llvm-project/issues/729" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/issues/729</a><br>
>     Cherry-pick <<a href="https://github.com/tstellar/llvm-project/issues/729Cherry-pick" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/issues/729Cherry-pick</a>> failure: <a href="https://github.com/tstellar/llvm-project/issues/730" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/issues/730</a> <<a href="https://github.com/tstellar/llvm-project/issues/730" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/issues/730</a>><br>
>     Manual Branch comment: <a href="https://github.com/tstellar/llvm-project/issues/710" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/issues/710</a> <<a href="https://github.com/tstellar/llvm-project/issues/710" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/issues/710</a>><br>
> <br>
> <br>
>     # Motivation<br>
> <br>
>     Why do this?  The goal is to make the release process more efficient and transparent.<br>
>     With this new workflow, users can get automatic and immediate feedback when a commit<br>
>     they want backported doesn't apply cleanly or introduces some test failures.  With<br>
>     the current process, these kinds of issues are communicated by the release manager,<br>
>     and it can be days or even weeks before a problem is discovered and communicated back<br>
>     to the users.<br>
> <br>
>     Another advantage of this workflow is it introduces pre-commit CI to the release branch,<br>
>     which is important for the stability of the branch and the releases, but also gives<br>
>     the project an opportunity to experiment with new CI workflows in a way that<br>
>     does not disrupt development on the main branch.<br>
> <br>
>     # Implementation<br>
> <br>
>     If this proposal is accepted, I would plan to implement this for the LLVM 14 release cycle based<br>
>     on the following proof of concept that I have been testing for the last few releases:<br>
> <br>
>     <a href="https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-workflow.yml" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-workflow.yml</a> <<a href="https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-workflow.yml" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-workflow.yml</a>><br>
>     <a href="https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-workflow-create-pr.yml" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-workflow-create-pr.yml</a> <<a href="https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-workflow-create-pr.yml" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-workflow-create-pr.yml</a>><br>
>     <a href="https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-merge-pr.yml" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-merge-pr.yml</a> <<a href="https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-merge-pr.yml" rel="noreferrer" target="_blank">https://github.com/tstellar/llvm-project/blob/release-automation/.github/workflows/release-merge-pr.yml</a>><br>
> <br>
>     Thanks,<br>
>     Tom<br>
> <br>
>     _______________________________________________<br>
>     LLVM Developers mailing list<br>
>     <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a> <mailto:<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><br>
>     <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a> <<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>><br>
> <br>
<br>
</blockquote></div></div>