Thursday, 29 June 2023

Re: git-ubuntu MP workflows in Launchpad

On Thu, Jun 29, 2023 at 03:18:27PM +0100, Robie Basak wrote:
> # The "grabbing" of review slots
>
> This is the immediate problem.
>
> The sponsorship queue displays git-ubuntu MPs for which ~ubuntu-sponsors
> has a review slot. But if a member of the team votes (eg. "Needs
> Information"), then Launchpad replaces the review slot reviewer with
> that individual. Then ~ubuntu-sponsors is no longer a reviewer, so the
> MP disappears from the sponsorship queue, never to reappear unless
> someone adds an ~ubuntu-sponsors slot manually.

The proposed solution of adding ~ubuntu-sponsor-reporter (either
manually by the sponsoree or via some sort of automation) would indeed
resolve this slot-stealing glitch in the workflow. I agree it's worked
well for the server team and fits our workflow rather well.

However, as you point out, this does create a secondary issue of making
it harder to make things disappear from the sponsorship queue
_intentionally_. For the server team workflow, the unclosable cruft
seems to be a minor annoyance we just live with, but the volume we deal
with is relatively small and we've got informal ways to connect
our small number of internal reviewers and reviewees so the problem is
not hard for us to work around.

For the patch pilot workflow, the volume is higher and the number of
reviewers broader, so I suspect a harder-to-make-things-disappear
issue might present as much if not more pain than the slot-stealing
glitch.

> It needs to be possible for a git-ubuntu MP to end up in the sponsoring
> queue. This should happen automatically for contributors who won't be
> aware of any process that we decide, but do manage to figure out how to
> submit the MP against a git-ubuntu branch.

I do love automation, however I think we shouldn't rule out letting this
be somewhat manual. I.e. we already tell non-git-ubuntu sponsorees to
manually sub ubuntu-sponsors:

https://wiki.ubuntu.com/MOTU/Contributing
"Set the bug to Status "Confirmed". Assign to "Nobody". Subscribe the
ubuntu-sponsors team to add your bug to the Sponsorship Queue."

So we could just have the docs direct them to add both ~ubuntu-sponsors
*and* ~ubuntu-sponsors-reporter, and it wouldn't be inconsistent with
established procedures.

Obviously we want to avoid overwhelming new contributors with too many
knobs, as that can lead to confusion and error, but adding reviewer
slots is ameniable to documentation like we've done with the Ubuntu
Maintainers' Handbook, and even scripted (ex. git-ubuntu's MP proposal
filing functionality).

One could argue also that having it be a manual knob has some
edificational benefit since, as you also point out, as one gains
experience one might seek reviews/approvals from specific teams instead
of or in addition to patch pilot.

Anyway, I'm all for automation but here I think we needn't rush into
that, as IMHO doing it manually isn't too horrible and may have
benefits.


> When patch piloting, a sponsor may need to leave a vote on an MP such as
> "Needs Fixing". Once the contributor has fixed the MP, we need to ensure
> that MP is on the sponsorship queue (whether or not it was temporarily
> removed).

This is a very salient issue, and brings up a point I think warrants
further attention and discussion. Indeed, I think this question of
capturing a Pilot's evaluation is *the* most important point needing
addressed.

The status tracking for MPs provided by Launchpad is quite limited
(for appropriate reasons), and the permissions to alter the state is
quite restricted (also for appropriate reasons). So I don't see
solutions easily at hand. But at least the needs are apparent.

The way the Patch Pilot program is designed, the concept is for one
pilot to handoff to the next once their shift is over, as opposed to an
arrangement where, for example, a pilot would take ownership of a
sponsorship request and shepherd it all the way from cradle to grave.
Yes, many of us have been doing that anyway, and some might argue
that's an overall better process, but it's not how the project has been
formally defined to work.

So, that means one pilot might identify some extra task for an MP, but
then they'll de-shift, and a subsequent pilot evaluates if that task is
done, and so on. This style of status wants to be tracked per-MP rather
than per-reviewer, which goes against LP's MP workflow.


A second obvious need is that there's really two separate statuses to
track - one for the overall MP state from the submitter's perspective,
and a second for the pilotability MP state, from the patch pilot program
perspective. These two states are interrelated and one can probably be
inferred from the other, but it's worth recognizing that notionally
they're conceptually distinct.

For example, a not at all uncommon case is an MP for a change in Ubuntu
that instead needs to be sent to Debian or upstream. From a patch pilot
POV we evaluate and decide that needs done, and then we want to close it
out since no further piloting work will be needed. However, from the
reporters' POV this seems like just a picky detail, and getting their MP
marked as rejected might seem unfriendly or like buck-passing, neither
of which are our actual intent. However, we currently have no way to
track these two states independently so we've got a bit of friction.


Anyway, I wish I had solutions to propose. Maybe it's something we just
have to continue to just live with. But I do think it'd be valuable to
discuss further, as it seems like any improvements could have good payoff.


> It's possible that sponsors will want to temporarily remove an MP from
> the sponsorship queue until the contributor responds to feedback. But
> there is a risk that a contributor won't know what to do (or fail to
> follow instructions) so the MP will get lost, so whether or not this
> should be part of the general sponsoring/patch piloting workflow is up
> for discussion.

I'd argue this is the same workflow situation with non-git-ubuntu
bug-based sponsorship requests. There the sponsor can unsubscribe
~ubuntu-sponsors and the sponsoree is either told or knows via
documentation to re-add ~ubuntu-sponsors when they've resolved things
and need pilot attention once more. There's some downsides to this
process of things falling through the cracks, so I can't say I'm an
absolute fan of it, but it's an already established practice here and in
some other similar workflows, so at least we'd be consistent.

Bryce

> # Current behaviour
>
> The sponsorship queue displays MPs only if ~ubuntu-sponsors is a
> reviewer. To try to meet the requirements above, my bot[1] adds
> ~ubuntu-sponsors as a reviewer only if the proposer cannot upload the
> package and the only existing review requests are for the teams that
> often appear but we do not care about (~git-ubuntu-iport etc).
>
> # How we fixed this on the server team
>
> I created a team called ~canonical-server-reporter that deliberately has
> zero members. We add this team as a reviewer to our MPs to flag it for
> inclusion in our reports and bot behaviour, but the team never votes
> (since it has no members). This way the review slot is never "grabbed",
> making it more of a mechanism to "tag" an MP than for actual review
> purposes.
>
> # Other problems that already have a planned solution
>
> Currently sponsors aren't able to set git-ubuntu MP states such as
> Rejected or Merged. This is known[2] and should be fixed once we have
> staging branches[3] and MPs are filed against those.
>
> In the meantime, I'm changing MP state manually in response to pings,
> and if that gets too much I'll write a stop-gap bot to operate until the
> staged branch functionality lands.
>
> # Where to go from here?
>
> Our final solution will need to accommodate workflows of all git-ubuntu
> users, which basically means all Ubuntu developers and contributors.
>
> Do other teams have workflow requirements I've not listed above? Is
> there anything we need to ensure we support that I've missed?
>
> Would creating a ~ubuntu-sponsor-reporter team used the same way as
> ~canonical-server-reporter be sufficient, changing the bot and report to
> use that team instead?
>
> Is there a better way to fit Launchpad MPs into our workflow
> requirements?
>
> Thanks,
>
> Robie
>
> [1] https://git.launchpad.net/~ubuntu-server/+git/ubuntu-helpers/tree/rbasak/lp_auto_sponsor.py
> [2] https://launchpad.net/bugs/2007731
> [3] https://discourse.ubuntu.com/t/spec-git-ubuntu-staged-uploads/35409

> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
>
> iQIcBAEBCgAGBQJknZKzAAoJEOVkucJ1vdUu1zYQALLw7XY9D3qvQDt0G0W+dn6n
> m2elmTM3XXdeTRV9o9EUFUQbm/IBfISPKrsKiAh74tX3Fl0PxkhYV0cMtyu3RJgk
> 6XKgeGdm4bb4R6DQ1goEp5Prgt1ecXsFRsc8kdfzI4t52KpChS4VA948NgBkDUZB
> vvum1j/S6qSnGbLFO+wetiRsCtrL6mgUNx0aKF/m/nQcyiS/DhhazyWCXN8CM+iw
> GYXvTNflcG2KWLlFrYb2c9REhdGAoKTlnMWOhdR0vX9fIu6tkb5ZyKL9FhE9ARxf
> 8BiyRGOOr4QGaR2VYCi+4EjXUH+7QWmizZegJbzRaPE11uIGFtlXDgq0HrItWS0y
> JdAgCz+PI67YF1zTvOCDsnhyFT4OoXZFyhb7vPvdhnMoI3R7h+bYmGTFuH/1gRoy
> lPXuUcsDAXlVi4Vh4UiXIraSiAVescQCxz4RG97FzmeQpflHhrXvQ4U3Dh3PAcLh
> VGwcHEqdBv1zS+SSkE+xn8p9t/41YK70VguR9G7+vea4uksLmw3meQ6nfrVUiL4B
> GjI6Me1+g3drmN0JzaFbVFz1mye40uPnOJj6y6NZJ95LG/uYGX72hxLk96g4J9OS
> zZnJSXv6QPBoExnjRexbwzM8ZgRNGdefv8IhTJm7IvvzSwqdvOxgS4JXNFqB7zCE
> 85sep8tC4vWAma0XnYdT
> =F3Bq
> -----END PGP SIGNATURE-----


> --
> ubuntu-devel mailing list
> ubuntu-devel@lists.ubuntu.com
> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel