Re: git-ubuntu MP workflows in Launchpad

2024-02-16 Thread Steve Langasek
On Fri, Feb 16, 2024 at 03:33:26PM +, Robie Basak wrote:
> Bryce mentioned the difficulty of removing the slot. Unfortunately
> there's no UI for this, but I did confirm today that it can be done by
> API. I wrote a quick script so that we can do it easily if needed:

> https://git.launchpad.net/~ubuntu-server/+git/ubuntu-helpers/tree/rbasak/clear-review-slot.py

Please submit this to ubuntu-dev-tools :-)

Thanks,
-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developer   https://www.debian.org/
slanga...@ubuntu.com vor...@debian.org


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


Re: git-ubuntu MP workflows in Launchpad

2024-02-16 Thread Robie Basak
On Wed, Aug 23, 2023 at 11:25:24AM +0100, Robie Basak wrote:
> I also posted here yesterday, having forgotten about this thread:
> https://discourse.ubuntu.com/t/improving-the-git-ubuntu-based-sponsorship-workflow/37964

Both of these threads died, and sorry again for accidentally splitting
it.

I've noticed some sponsorship entries getting lost due to the "grabbing"
of review slots as I described, so I've gone ahead to implement
~ubuntu-sponsors-reporter.

I've put a trivial MP up here:

https://code.launchpad.net/~racb/ubuntu-sponsoring/+git/ubuntu-sponsoring/+merge/460697

Once that lands, I'll change the bot to use ~ubuntu-sponsors-reporter
instead of ~ubuntu-sponsors.

I don't think this will change anything in practice for anyone except to
solve this grabbing problem. This new team is only for automation to
use; nobody need use it directly or change what they're doing already in
any way.

Bryce mentioned the difficulty of removing the slot. Unfortunately
there's no UI for this, but I did confirm today that it can be done by
API. I wrote a quick script so that we can do it easily if needed:

https://git.launchpad.net/~ubuntu-server/+git/ubuntu-helpers/tree/rbasak/clear-review-slot.py

Example of use:

$ python3 clear-review-slot.py ubuntu-sponsors-reporter 

(for convenience, the URL is the one you see in your browser)

I don't know who has permission to do this. Is it because I currently
have some more permission over git-ubuntu repositories? Feedback
appreciated. If it turns out that we need to give more people access to
do this, perhaps we can arrange for a bot to watch for instructions in
the MP or something similar.

Robie


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


Re: git-ubuntu MP workflows in Launchpad

2023-08-23 Thread Robie Basak
I also posted here yesterday, having forgotten about this thread:
https://discourse.ubuntu.com/t/improving-the-git-ubuntu-based-sponsorship-workflow/37964

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


Re: git-ubuntu MP workflows in Launchpad

2023-06-30 Thread Robie Basak
On Fri, Jun 30, 2023 at 10:03:56AM -0700, Steve Langasek wrote:
> The one case where this is currently suboptimal is if the last comment on
> the MP is from an Ubuntu dev saying it needs changes, but the submitter has
> pushed new changes addressing that feedback without leaving a further
> comment on the MP.  An MP in such a state is ready for sponsorship team
> action, but would have the commenter's name in bold and per the above would
> be deprioritized.  This could be addressed if the "last comment" field also
> checked whether there were commits newer than the last comment.  But I think
> this is enough to be getting on with, even without that tweak.

This is what I was alluding to when I said "imperfectly equivalent" :-)

I did look into the Launchpad API to see if the commit timestamp was
available without a full clone. Unfortunately it isn't. But there is a
"date repository last updated" field, which might be good enough for
now.

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


Re: git-ubuntu MP workflows in Launchpad

2023-06-30 Thread Steve Langasek
On Thu, Jun 29, 2023 at 10:55:21PM +0100, Robie Basak wrote:
> On Thu, Jun 29, 2023 at 02:36:06PM -0700, Steve Langasek wrote:
> > I think the least-effort approach is for the handling of MPs for sponsorship
> > to match the handling of bugs: ~ubuntu-sponsors is unsubscribed, and it's
> > the responsibility of the submitter to re-subscribe them (and patch pilots
> > have an obligation to make this clear with a comment).

> It's worth noting that the sponsorship queue has a "person who last
> commented" column that displays in bold if that person can upload the
> package. For a first pass through the queue, one could ignore any row
> where that column is bold. This is imperfectly equivalent to ignoring
> MPs that are waiting on the contributor to take some action.

That seems like it should work.

It also looks like there are some bugs here, as
http://reqorts.qa.ubuntu.com/reports/sponsoring/general.html currently
displays juliank's name in italics instead of bold for
lp:~enr0n/ubuntu/+source/triton:fix-lp2025279 which indicates "Ubuntu
Developer, who can't upload the package in question" which of course is
false?

> Could it be used to address the fear of losing MPs, as well as the
> desire not to waste every pilot's time on following up on MPs that are
> actually waiting on the contributor? If it's not robust enough, what
> could we do to help with that?

The one case where this is currently suboptimal is if the last comment on
the MP is from an Ubuntu dev saying it needs changes, but the submitter has
pushed new changes addressing that feedback without leaving a further
comment on the MP.  An MP in such a state is ready for sponsorship team
action, but would have the commenter's name in bold and per the above would
be deprioritized.  This could be addressed if the "last comment" field also
checked whether there were commits newer than the last comment.  But I think
this is enough to be getting on with, even without that tweak.

Thanks,
-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developer   https://www.debian.org/
slanga...@ubuntu.com vor...@debian.org


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


Re: git-ubuntu MP workflows in Launchpad

2023-06-29 Thread Robie Basak
On Thu, Jun 29, 2023 at 02:36:06PM -0700, Steve Langasek wrote:
> I think the least-effort approach is for the handling of MPs for sponsorship
> to match the handling of bugs: ~ubuntu-sponsors is unsubscribed, and it's
> the responsibility of the submitter to re-subscribe them (and patch pilots
> have an obligation to make this clear with a comment).

It's worth noting that the sponsorship queue has a "person who last
commented" column that displays in bold if that person can upload the
package. For a first pass through the queue, one could ignore any row
where that column is bold. This is imperfectly equivalent to ignoring
MPs that are waiting on the contributor to take some action.

Could it be used to address the fear of losing MPs, as well as the
desire not to waste every pilot's time on following up on MPs that are
actually waiting on the contributor? If it's not robust enough, what
could we do to help with that?

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


Re: git-ubuntu MP workflows in Launchpad

2023-06-29 Thread Steve Langasek
On Thu, Jun 29, 2023 at 11:12:43AM -0700, Bryce Harrington wrote:
> 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.

This is my concern as well.  An important part of patch piloting is
identifying when a change is not ready for sponsorship, and sending it back
to the submitter for revision.  When this is done, it's on the submitter to
re-submit it for sponsorship.  If patch pilots have to track this, we are
going to spend a lot of time polling MPs that are not ready for sponsorship.

I think the least-effort approach is for the handling of MPs for sponsorship
to match the handling of bugs: ~ubuntu-sponsors is unsubscribed, and it's
the responsibility of the submitter to re-subscribe them (and patch pilots
have an obligation to make this clear with a comment).

A more clever approach would be to use a magic zero-member reviewer as Robie
proposes, but to filter out any MPs from the sponsorship queue which have a
negative review from a sponsor, and no further activity on the MP (either
comments or commits) after that point.

-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developer   https://www.debian.org/
slanga...@ubuntu.com vor...@debian.org


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


Re: git-ubuntu MP workflows in Launchpad

2023-06-29 Thread Bryce Harrington
On Thu, Jun 29, 2023 at 09:13:01PM +0200, Sebastien Bacher wrote:
> Hey Bryce,
> 
> Le 29/06/2023 à 20:12, Bryce Harrington a écrit :
> > 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.
> 
> The fact that it matches the existing situation doesn't make it the right
> outcome though...

Oh 100% agreed there.  Unsubscribing is a poor way to track state, and
can be lossy in multiple ways, as you point out.  But there is value in
having similar processes work in consistent fashion.

> In practice we often have bugs where the contributor did what was asked to
> address the reviewers feedback but forgot to subscribe back the sponsors.
> With the current workflow we have very little visibility on those cases and
> they often end up lost in the launchpad noise.
>
> It would be nice if we had a way to at least query for those bugs so we
> could review recent activity and see if there are cases were sponsors should
> be subscribed back and hadn't...

Yes, this is a good illustration of the point I made about there being
essentially two different states needing tracked, with this describing
the review state for the MP.  In a bug-centric workflow, we would be
able to set the bug to "Incomplete (without response)" which
automatically gets set to "Incomplete (with response)" once there's a
new comment on the bug.  To the user the "reporter status" is just
"Incomplete" in both cases, yet for the reviewer there are actually two
substates - "with response" and "without response" - that can be queried
for, so we can review recent activity and make adjustments to the
visible state.

Something equivalent to that but for Launchpad MP's would be very
helpful, and would give us a better workflow than the one we have using
subscription/unsubscription.  Unfortunately, I'm not sure if this is
doable with how Launchpad MPs work currently.

Bryce

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


Re: git-ubuntu MP workflows in Launchpad

2023-06-29 Thread Sebastien Bacher

Hey Bryce,

Le 29/06/2023 à 20:12, Bryce Harrington a écrit :

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.


The fact that it matches the existing situation doesn't make it the 
right outcome though...


In practice we often have bugs where the contributor did what was asked 
to address the reviewers feedback but forgot to subscribe back the 
sponsors. With the current workflow we have very little visibility on 
those cases and they often end up lost in the launchpad noise.
It would be nice if we had a way to at least query for those bugs so we 
could review recent activity and see if there are cases were sponsors 
should be subscribed back and hadn't...


Cheers,
Sébastien


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


Re: git-ubuntu MP workflows in Launchpad

2023-06-29 Thread Bryce Harrington
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 pilo

git-ubuntu MP workflows in Launchpad

2023-06-29 Thread Robie Basak
Dear Ubuntu Developers,

Currently it's unclear what patch pilots are supposed to do when an MP
in the sponsorship queue cannot be resolved immediately. This relates to
how the sponsorship queue behaves as MP state changes. It seems that we
should have a "manual for sponsors" that explains what to do under
various cirumstances, but we can't write that yet because we haven't
figured out how the various workflows should interact with Launchpad
functionality.

In this thread I'd like to discuss and conclude how this should work.

# 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.

# General requirements

Teams use git-ubuntu MPs who do not require general sponsorship. For
example, the Canonical Server Team has a peer review policy, so we
submit MPs for review even when the proposer can upload the package.
These MPs should not appear in the sponsorship queue. Similarly, I
imagine an experienced Ubuntu developer submitting an MP against a
git-ubuntu branch for which they want review from a specific team, and
will add a review slot just for that team. I think these MPs should be
left alone by other more general workflows.

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.

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).

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.

# 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


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