Ilia Mirkin <imir...@alum.mit.edu> writes:

> On Tue, Mar 6, 2018 at 2:34 PM, Emil Velikov <emil.l.veli...@gmail.com> wrote:
>> So while others explore ways of improving the testing, let me propose
>> a few ideas for improving the actual releasing process.
>>
>>
>>  - Making the current state always visible - have a web page, git
>>    branch and other ways for people to see which patches are picked,
>>    require backports, etc.
>
> Yes please! A git branch that's available (and force-pushed freely)
> before the "you're screwed" announcement is going to help clear a lot
> of things up.

I agree that early information is good.  I don't agree that anyone
should force push.  Release branches need to be protected.  Proposed
release branches should only accept patches that have already been
vetted by the process on mesa master.

I would propose:

 - Patches are applied to proposed stable branch by automation when the
   associated commit is pushed to master.  The existing commit message
   annotations drive this process.  There must be zero ambiguity in the
   annotations (eg which stable branches need the patch).

 - Committer is responsible for ensuring that the automation executed.

 - Failure-to-apply generates mail to release managers and committer.
   The committer *should* have been able to test that the commit would
   not apply before pushing the patch to master, and should get dinged
   for this.

 - Failures to apply are resolved by committer, who must backport.  Each
   backported commit references associated patch(es) on master in commit
   message.  Backport is submitted by committer to release managers in
   PR or email.

 - CI Automation immediately builds/tests the proposed stable branch
   whenever it changes.  Release managers verify the results.

 - Any CI failures are resolved by force-pushing the series off of the
   proposed branch.  Release manager communicates status to committer.

I think automation could be implemented to generate proposed stable
branches on an arbitrary branch point in a local git repo.  Including
this policy mechanism in our git tree would make the process
transparent, verifiable, debuggable, and extensible.

Separately, I think we want to limit the ability of release manager to
unilaterally change the stable build.  Release managers should not
author any new commit in the stable branch that is not reviewed by
another release manager, from a different company.

>>  - Per team maintainer - each team has person (a few people) to check,
>>    coordinate and remind people for high priority bugs and backports.

I've been doing this for Intel.  Developers are on the hook to fix their
bugs, but you can't make them do it.  They have many pressures on them,
and a maintainer can't make the call as to whether a rendering bug is
more important than day-1 vulkan conformance, for example.

We could heighten the transparency of what is blocking the build by
publicizing the authors of bisected blocking bugs to Phoronix, which
might get things moving.

> Yes! I think this role is highly necessary, but not for the reasons
> you outline here. My main issue thus far with the stable release
> process has been that I don't appear to have any control over what
> patches are included in a particular release. Reasons for rejection
> have varied from "well, there will be another release in 2+ weeks" to
> "this patch doesn't fit some arbitrary criterion".

If the patches are immediately merged to proposed stable branches, then
they should be included by default.  It makes sense to have a standard
window by which patches must be applied before a release.

> What I'd like to propose is a system where the team maintainer is able
> to request any particular patch to be included in a stable release (as
> long as it's done by a certain pre-announced deadline, which happens
> *after* the initial release nominations email). If a release manager
> disagrees, they can make that disagreement known, but it's ultimately
> up to the team maintainer for driver code. If it's in shared code
> (i.e. not driver-specific - winsys, core mesa, state trackers used by
> multiple drivers), the override would be 1 additional team maintainer
> acking, and conversely any team maintainer would be able to nak it (so
> the condition in case of disagreement would be at least 2 team
> maintainers in favor, and 0 against).
>
> As you may know, I've stopped tagging things for stable since a while
> back since it seems completely pointless - nothing I can do to
> actually cause a patch to be included in a release. Telling people to
> just use HEAD seems way more reliable. I'm not particularly happy with
> this arrangement, but it's at least supportable.
>
> Hopefully others here agree with me. Otherwise I'll just go back to
> doing what I'm doing (and perhaps my contribution level has dropped
> sufficiently to not worry about it).
>
> Cheers,
>
>   -ilia
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to