<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Dec 11, 2018 at 8:15 PM Ian Romanick <<a href="mailto:idr@freedesktop.org">idr@freedesktop.org</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">It's fairly common for Mesa developers to have several patch series on<br>
the mailing list at a time. I believe most people will author these as<br>
a continuous stream with either implicit dependencies (i.e., commit<br>
messages in the second series with shader-db results that are impacted<br>
by the first series) or explicit dependencies (i.e., second series uses<br>
interfaces added or changed by the first). When I do this, I still like<br>
to send the series out a separate sets of patches that accomplish<br>
separate, logical tasks.<br>
<br>
We can't be the only project where people work like this, so what is the<br>
common practice in other projects? I've thought of several possible<br>
solutions, but each seems fatally flawed.<br>
<br>
- A single, possibly giant, MR defeats the ability to have separate<br>
logical work units.<br>
<br>
- Splitting into multiple MRs based from master may not be practical or<br>
possible without including some patches in both series.<br>
<br>
- Waiting to send the second series out may increase the lag in the<br>
review process or lead to the submitter forgetting to submit. :)<br></blockquote><div><br></div><div>What I would do would be to create a series of MRs that are each based on the one before. It gets a little weird because they get longer and longer but if you have some commentary in the MR header saying that it's based on another one, it shouldn't be so bad. If someone is doing patch-by-patch review, they can easily enough just comment on the patches unique to that MR.</div><div><br></div><div>Sadly, that suggestion won't work quite the way you want as I don't think GitLab has a concept of dependent MRs. Maybe that's another thing to add to the feature request list?<br></div><div> </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/5/18 3:32 PM, Jordan Justen wrote:<br>
> This documents a process for using GitLab Merge Requests as an second<br>
> way to submit code changes for Mesa. Only one of the two methods is<br>
> allowed for each patch series.<br>
> <br>
> We will *not* require all patches to be emailed. Some code changes may<br>
> be reviewed and merged without any discussion on the mesa-dev email<br>
> list.<br>
> <br>
> v2:<br>
> * No longer require email. Allow submitter to choose email or a<br>
> GitLab merge request.<br>
> * Various feedback from Brian, Daniel, Dylan, Eric, Erik, Jason,<br>
> Matt, Michel and Rob.<br>
> <br>
> Signed-off-by: Jordan Justen <<a href="mailto:jordan.l.justen@intel.com" target="_blank">jordan.l.justen@intel.com</a>><br>
> ---<br>
> docs/submittingpatches.html | 76 ++++++++++++++++++++++++++++++++++---<br>
> 1 file changed, 71 insertions(+), 5 deletions(-)<br>
> <br>
> diff --git a/docs/submittingpatches.html b/docs/submittingpatches.html<br>
> index 92d954a2d09..21175988d0b 100644<br>
> --- a/docs/submittingpatches.html<br>
> +++ b/docs/submittingpatches.html<br>
> @@ -21,7 +21,7 @@<br>
> <li><a href="#guidelines">Basic guidelines</a><br>
> <li><a href="#formatting">Patch formatting</a><br>
> <li><a href="#testing">Testing Patches</a><br>
> -<li><a href="#mailing">Mailing Patches</a><br>
> +<li><a href="#submit">Submitting Patches</a><br>
> <li><a href="#reviewing">Reviewing Patches</a><br>
> <li><a href="#nominations">Nominating a commit for a stable branch</a><br>
> <li><a href="#criteria">Criteria for accepting patches to the stable branch</a><br>
> @@ -42,8 +42,10 @@ components.<br>
> <code>git bisect</code>.)<br>
> <li>Patches should be properly <a href="#formatting">formatted</a>.<br>
> <li>Patches should be sufficiently <a href="#testing">tested</a> before submitting.<br>
> -<li>Patches should be submitted to <a href="#mailing">mesa-dev</a><br>
> -for <a href="#reviewing">review</a> using <code>git send-email</code>.<br>
> +<li>Patches should be <a href="#submit">submitted</a><br>
> +to <a href="#mailing">mesa-dev</a> or with<br>
> +a <a href="#merge-request">merge request</a><br>
> +for <a href="#reviewing">review</a>.<br>
> <br>
> </ul><br>
> <br>
> @@ -180,10 +182,19 @@ run.<br>
> </p><br>
> <br>
> <br>
> -<h2 id="mailing">Mailing Patches</h2><br>
> +<h2 id="submit">Submitting Patches</h2><br>
> <br>
> <p><br>
> -Patches should be sent to the mesa-dev mailing list for review:<br>
> +Patches may be submitted to the Mesa project by<br>
> +<a href="#mailing">email</a> or with a<br>
> +GitLab <a href="#merge-request">merge request</a>. To prevent<br>
> +duplicate code review, only use one method to submit your changes.<br>
> +</p><br>
> +<br>
> +<h3 id="mailing">Mailing Patches</h3><br>
> +<br>
> +<p><br>
> +Patches may be sent to the mesa-dev mailing list for review:<br>
> <a href="<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a>"><br>
> <a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a></a>.<br>
> When submitting a patch make sure to use<br>
> @@ -217,8 +228,63 @@ disabled before sending your patches. (Note that you may need to contact<br>
> your email administrator for this.)<br>
> </p><br>
> <br>
> +<h3 id="merge-request">GitLab Merge Requests</h3><br>
> +<br>
> +<p><br>
> + <a href="<a href="https://gitlab.freedesktop.org/mesa/mesa" rel="noreferrer" target="_blank">https://gitlab.freedesktop.org/mesa/mesa</a>">GitLab</a> Merge<br>
> + Requests (MR) can also be used to submit patches for Mesa.<br>
> +</p><br>
> +<br>
> +<p><br>
> + If the MR may have interest for most of the Mesa community, you can<br>
> + send an email to the mesa-dev email list including a link to the MR.<br>
> + Don't send the patch to mesa-dev, just the MR link.<br>
> +</p><br>
> +<p><br>
> + Add labels to your MR to help reviewers find it. For example:<br>
> + <ul><br>
> + <li>Mesa changes affecting all drivers: mesa<br>
> + <li>Hardware vendor specific code: amd, intel, nvidia, ...<br>
> + <li>Driver specific code: anvil, freedreno, i965, iris, radeonsi,<br>
> + radv, vc4, ...<br>
> + <li>Other tag examples: gallium, util<br>
> + </ul><br>
> +</p><br>
> +<p><br>
> + If you revise your patches based on code review and push an update<br>
> + to your branch, you should maintain a <strong>clean</strong> history<br>
> + in your patches. There should not be "fixup" patches in the history.<br>
> + The series should be buildable and functional after every commit<br>
> + whenever you push the branch.<br>
> +</p><br>
> +<p><br>
> + It is your responsibility to keep the MR alive and making progress,<br>
> + as there are no guarantees that a Mesa dev will independently take<br>
> + interest in it.<br>
> +</p><br>
> +<p><br>
> + Some other notes:<br>
> + <ul><br>
> + <li>Make changes and update your branch based on feedback<br>
> + <li>Old, stale MR may be closed, but you can reopen it if you<br>
> + still want to pursue the changes<br>
> + <li>You should periodically check to see if your MR needs to be<br>
> + rebased<br>
> + <li>Make sure your MR is closed if your patches get pushed outside<br>
> + of GitLab<br>
> + </ul><br>
> +</p><br>
> +<br>
> <h2 id="reviewing">Reviewing Patches</h2><br>
> <br>
> +<p><br>
> + To participate in code review, you should monitor the<br>
> + <a href="<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a>"><br>
> + mesa-dev</a> email list and the GitLab<br>
> + Mesa <a href="<a href="https://gitlab.freedesktop.org/mesa/mesa/merge_requests" rel="noreferrer" target="_blank">https://gitlab.freedesktop.org/mesa/mesa/merge_requests</a>">Merge<br>
> + Requests</a> page.<br>
> +</p><br>
> +<br>
> <p><br>
> When you've reviewed a patch on the mailing list, please be unambiguous<br>
> about your review. That is, state either<br>
> <br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div></div>