commitfest.postgresql.org is no longer fit for purpose
Hi,
The original intent of CommitFests, and of commitfest.postgresql.org
by extension, was to provide a place where patches could be registered
to indicate that they needed to be reviewed, thus enabling patch
authors and patch reviewers to find each other in a reasonably
efficient way. I don't think it's working any more. I spent a good
deal of time going through the CommitFest this week, and I didn't get
through a very large percentage of it, and what I found is that the
status of the patches registered there is often much messier than can
be captured by a simple "Needs Review" or "Waiting on Author," and the
number of patches that are actually in need of review is not all that
large. For example, there are:
- patches parked there by a committer who will almost certainly do
something about them after we branch
- patches parked there by a committer who probably won't do something
about them after we branch, but maybe they will, or maybe somebody
else will, and anyway this way we at least run CI
- patches parked there by a committer who may well do something about
them before we even branch, because they're not actually subject to
the feature freeze
- patches that we've said we don't want but the author thinks we do
(sometimes i agree with the author, sometimes not)
- patches that have long-unresolved difficulties which the author
either doesn't know how to solve or is in no hurry to solve
- patches that have already been reviewed by multiple people, often
including several committers, and which have been updated multiple
times, but for one reason or another, not committed
- patches that actually do need to be reviewed
What's a bit depressing is that this last category is a relatively
small percentage of the total. If you'd like to sit down and review a
bunch of patches, you'll probably spend AT LEAST as much time trying
to identify which CommitFest entries are worth your time as you will
actually reviewing. I suspect you could easily spend 2 or 3 times as
much time finding things to review as actually reviewing them,
honestly. And the chances that you're going to find the things to
review that most need your attention are pretty much nil. You could
happen just by chance to discover a patch that was worth weeks of your
time to review, but you could also miss that patch forever amidst all
the clutter.
I think there are a couple of things that have led to this state of
affairs. First, we got tired of making people mad by booting their
stuff out of the CommitFest, so we mostly just stopped doing it, even
if it had 0% chance of being committed this CommitFest, and really
even if it had a 0% chance of being committed ever. Second, we added
CI, which means that there is positive value to registering the patch
in the CommitFest even if committing it is not in the cards. And those
things together have created a third problem, which is that the list
is now so long and so messy that even the CommitFest managers probably
don't manage to go through the whole thing thoroughly in a month.
So, our CommitFest application has turned into a patch tracker. IMHO,
patch trackers intrinsically tend to suck, because they fill up with
garbage that nobody cares about, and nobody wants to do the colossal
amount of work that it takes to maintain them. But our patch tracker
sucks MORE, because it's not even intended to BE a general-purpose
patch tracker. I'm not saying that replacing it with (let me show how
old I am) bugzilla or whatever the hip modern equivalent of that may
be these days is the right thing to do, but it's probably worth
considering. If we decide to roll our own, that might be OK too, but
we have to come up with some way of organizing this stuff that's
better than what we have today, some way that actually lets you find
the stuff that you care about.
To give just one example that I think highlights the issues pretty
well, consider the "Refactoring" section of the current CommitFest.
There are 24 patches in there, and 13 of them are by committers. Now,
maybe some of those patches are things that the committer really wants
someone else to review, e.g.
https://commitfest.postgresql.org/48/3998/ seems like it might be
that. On the other hand, that one could also just be an idea Thomas
had that he doesn't really intend to pursue even if the reviews are
absolutely glowing, so maybe it's not worth spending time on after
all. Then there are things that are probably 100% likely to get
committed unless somebody objects, so I shouldn't bother looking at
them unless I want to object, e.g.
https://commitfest.postgresql.org/48/4939/ seems like it's probably
that. And, also, regardless of authorship, some of these patches have
already had a great deal of discussion, and some have had none, and
you can sort of tell that from looking at the time the patch was
created vs. the last activity, but it's really not that obvious. So
overall it's just really unclear where to spend time.
I wonder what ideas people have for improving this situation. I doubt
that there's any easy answer that just makes the problem go away --
keeping large groups of people organized is a tremendously difficult
task under pretty much all circumstances, and the fact that, in this
context, nobody's really the boss, makes it a whole lot harder. But I
also feel like what we're doing right now can't possibly be the best
that we can do.
--
Robert Haas
EDB: http://www.enterprisedb.com
Op 5/16/24 om 20:30 schreef Robert Haas:
Hi,
The original intent of CommitFests, and of commitfest.postgresql.org
by extension, was to provide a place where patches could be registered
to indicate that they needed to be reviewed, thus enabling patch
authors and patch reviewers to find each other in a reasonably
efficient way. I don't think it's working any more. I spent a good
Hi,
Perhaps it would be an idea to let patches 'expire' automatically unless
they are 'rescued' (=given another year) by committer or commitfest
manager (or perhaps a somewhat wider group - but not too many).
Expiration after, say, one year should force patch-authors to mount a
credible defense for his/her patch to either get his work rescued or
reinstated/resubmitted.
Just a thought that has crossed my mind already a few times. It's not
very sympathetic but it might work keep the list smaller.
Erik Rijkers
On Thu, May 16, 2024 at 11:30 AM Robert Haas <robertmhaas@gmail.com> wrote:
Hi,
The original intent of CommitFests, and of commitfest.postgresql.org
by extension, was to provide a place where patches could be registered
to indicate that they needed to be reviewed, thus enabling patch
authors and patch reviewers to find each other in a reasonably
efficient way. I don't think it's working any more. I spent a good
deal of time going through the CommitFest this week, and I didn't get
through a very large percentage of it, and what I found is that the
status of the patches registered there is often much messier than can
be captured by a simple "Needs Review" or "Waiting on Author," and the
number of patches that are actually in need of review is not all that
large. For example, there are:- patches parked there by a committer who will almost certainly do
something about them after we branch
- patches parked there by a committer who probably won't do something
about them after we branch, but maybe they will, or maybe somebody
else will, and anyway this way we at least run CI
- patches parked there by a committer who may well do something about
them before we even branch, because they're not actually subject to
the feature freeze
If a committer has a patch in the CF that is going to be committed in the
future unless there is outside action those should be put under a "Pending
Commit" status.
- patches that we've said we don't want but the author thinks we do
(sometimes i agree with the author, sometimes not)
- patches that have long-unresolved difficulties which the author
either doesn't know how to solve or is in no hurry to solve
- patches that have already been reviewed by multiple people, often
including several committers, and which have been updated multiple
times, but for one reason or another, not committed
Use the same software but a different endpoint - Collaboration. Or even
the same endpoint just add an always open slot named "Work In Process"
(WIP). If items can be moved from there to another open or future
commitfest slot so much the better.
- patches that actually do need to be reviewed
If we can distinguish between needs to be reviewed by a committer
(commitfest dated slots - bimonthlies) and reviewed by someone other than
the author (work in process slot) that should help everyone. Of course,
anyone is welcome to review a patch that has been marked ready to commit.
I suppose "ready to commit" already sorta does this without the need for
WIP but a quick sanity check would be that ready to commit shouldn't (not
mustn't) be seen in WIP and needs review shouldn't be seen in the
bimonthlies. A needs review in WIP means that the patch has been seen by a
committer and sent back for more work but that the scope and intent are
such that it will make it into the upcoming major release. Or is something
like a bug fix that just goes right into the bimonthly instead of starting
out as a WIP item.
I think there are a couple of things that have led to this state of
affairs. First, we got tired of making people mad by booting their
stuff out of the CommitFest, so we mostly just stopped doing it, even
if it had 0% chance of being committed this CommitFest, and really
even if it had a 0% chance of being committed ever.
Those likely never get out of the new WIP slot discussed above. Your patch
tracker basically. And there should be less angst in moving something in
the bimonthly into WIP rather than dropping it outright. There is
discussion to be had regarding WIP/patch tracking should we go this
direction but even if it is just movIng clutter from one room to another
there seems like a clear benefit and need to tighten up what it means to be
in the bimonthly slot - to have qualifications laid out for a patch to earn
its way there, either by effort (authored and reviewed) or need (i.e., bug
fixes), or, realistically, being authored by a committer and being mostly
trivial in nature.
Second, we added
CI, which means that there is positive value to registering the patch
in the CommitFest even if committing it is not in the cards.
The new slot retains this benefit.
And those
things together have created a third problem, which is that the list
is now so long and so messy that even the CommitFest managers probably
don't manage to go through the whole thing thoroughly in a month.
The new slot wouldn't be subject to this.
We'll still have a problem with too many WIP patches and not enough ability
or desire to resolve them. But setting a higher bar to get onto the
bimonthly slot while still providing a place for collaboration is a step
forward that configuring technology can help with. As for WIP, maybe
adding thumbs-up and thumbs-down support tracking widgets will help draw
attention to more desired things.
David J.
Thanks for raising this. As someone who is only modestly familiar with
Postgres internals or even C, but would still like to contribute through
review, I find the current process of finding a suitable patch both tedious
and daunting. The Reviewing a Patch article on the wiki [0]https://wiki.postgresql.org/wiki/Reviewing_a_Patch says reviews
like mine are still welcome, but it's hard to get started. I'd love to see
this be more approachable.
Thanks,
Maciek
On 16 May 2024, at 20:30, Robert Haas <robertmhaas@gmail.com> wrote:
The original intent of CommitFests, and of commitfest.postgresql.org
by extension, was to provide a place where patches could be registered
to indicate that they needed to be reviewed, thus enabling patch
authors and patch reviewers to find each other in a reasonably
efficient way. I don't think it's working any more.
But which part is broken though, the app, our commitfest process and workflow
and the its intent, or our assumption that we follow said process and workflow
which may or may not be backed by evidence? IMHO, from being CMF many times,
there is a fair bit of the latter, which excacerbates the problem. This is
harder to fix with more or better software though.
I spent a good deal of time going through the CommitFest this week
And you deserve a big Thank You for that.
--
Daniel Gustafsson
Daniel Gustafsson <daniel@yesql.se> writes:
On 16 May 2024, at 20:30, Robert Haas <robertmhaas@gmail.com> wrote:
The original intent of CommitFests, and of commitfest.postgresql.org
by extension, was to provide a place where patches could be registered
to indicate that they needed to be reviewed, thus enabling patch
authors and patch reviewers to find each other in a reasonably
efficient way. I don't think it's working any more.
But which part is broken though, the app, our commitfest process and workflow
and the its intent, or our assumption that we follow said process and workflow
which may or may not be backed by evidence? IMHO, from being CMF many times,
there is a fair bit of the latter, which excacerbates the problem. This is
harder to fix with more or better software though.
Yeah. I think that Robert put his finger on a big part of the
problem, which is that punting a patch to the next CF is a lot
easier than rejecting it, particularly for less-senior CFMs
who may not feel they have the authority to say no (or at
least doubt that the patch author would accept it). It's hard
even for senior people to get patch authors to take no for an
answer --- I know I've had little luck at it --- so maybe that
problem is inherent. But a CF app full of patches that are
unlikely ever to go anywhere isn't helpful.
It's also true that some of us are abusing the process a bit.
I know I frequently stick things into the CF app even if I intend
to commit them pretty darn soon, because it's a near-zero-friction
way to run CI on them, and I'm too lazy to learn how to do that
otherwise. I like David's suggestion of a "Pending Commit"
status, or maybe I should just put such patches into RfC state
immediately? However, short-lived entries like that don't seem
like they're a big problem beyond possibly skewing the CF statistics
a bit. It's the stuff that keeps hanging around that seems like
the core of the issue.
I spent a good deal of time going through the CommitFest this week
And you deserve a big Thank You for that.
+ many
regards, tom lane
When I was CFM for a couple cycles I started with the idea that I was going
to try being a hardass and rejecting or RWF all the patches that had gotten
negative reviews and been bounced forward.
Except when I actually went through them I didn't find many. Mostly like
Robert I found perfectly reasonable patches that had received generally
positive reviews and had really complex situations that really needed more
analysis.
I also found a lot of patches that were just not getting any reviews at all
:( and rejecting those didn't feel great....
On Thu, May 16, 2024, 21:48 Tom Lane <tgl@sss.pgh.pa.us> wrote:
Show quoted text
Daniel Gustafsson <daniel@yesql.se> writes:
On 16 May 2024, at 20:30, Robert Haas <robertmhaas@gmail.com> wrote:
The original intent of CommitFests, and of commitfest.postgresql.org
by extension, was to provide a place where patches could be registered
to indicate that they needed to be reviewed, thus enabling patch
authors and patch reviewers to find each other in a reasonably
efficient way. I don't think it's working any more.But which part is broken though, the app, our commitfest process and
workflow
and the its intent, or our assumption that we follow said process and
workflow
which may or may not be backed by evidence? IMHO, from being CMF many
times,
there is a fair bit of the latter, which excacerbates the problem. This
is
harder to fix with more or better software though.
Yeah. I think that Robert put his finger on a big part of the
problem, which is that punting a patch to the next CF is a lot
easier than rejecting it, particularly for less-senior CFMs
who may not feel they have the authority to say no (or at
least doubt that the patch author would accept it). It's hard
even for senior people to get patch authors to take no for an
answer --- I know I've had little luck at it --- so maybe that
problem is inherent. But a CF app full of patches that are
unlikely ever to go anywhere isn't helpful.It's also true that some of us are abusing the process a bit.
I know I frequently stick things into the CF app even if I intend
to commit them pretty darn soon, because it's a near-zero-friction
way to run CI on them, and I'm too lazy to learn how to do that
otherwise. I like David's suggestion of a "Pending Commit"
status, or maybe I should just put such patches into RfC state
immediately? However, short-lived entries like that don't seem
like they're a big problem beyond possibly skewing the CF statistics
a bit. It's the stuff that keeps hanging around that seems like
the core of the issue.I spent a good deal of time going through the CommitFest this week
And you deserve a big Thank You for that.
+ many
regards, tom lane
On 5/16/24 15:47, Tom Lane wrote:
Daniel Gustafsson <daniel@yesql.se> writes:
On 16 May 2024, at 20:30, Robert Haas <robertmhaas@gmail.com> wrote:
The original intent of CommitFests, and of commitfest.postgresql.org
by extension, was to provide a place where patches could be registered
to indicate that they needed to be reviewed, thus enabling patch
authors and patch reviewers to find each other in a reasonably
efficient way. I don't think it's working any more.But which part is broken though, the app, our commitfest process and workflow
and the its intent, or our assumption that we follow said process and workflow
which may or may not be backed by evidence? IMHO, from being CMF many times,
there is a fair bit of the latter, which excacerbates the problem. This is
harder to fix with more or better software though.Yeah. I think that Robert put his finger on a big part of the
problem, which is that punting a patch to the next CF is a lot
easier than rejecting it, particularly for less-senior CFMs
who may not feel they have the authority to say no (or at
least doubt that the patch author would accept it).
Maybe we should just make it a policy that *nothing* gets moved forward
from commitfest-to-commitfest and therefore the author needs to care
enough to register for the next one?
I spent a good deal of time going through the CommitFest this week
And you deserve a big Thank You for that.
+ many
+1 agreed
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
On Thu, May 16, 2024 at 2:30 PM Robert Haas <robertmhaas@gmail.com> wrote:
Hi,
The original intent of CommitFests, and of commitfest.postgresql.org
by extension, was to provide a place where patches could be registered
to indicate that they needed to be reviewed, thus enabling patch
authors and patch reviewers to find each other in a reasonably
efficient way. I don't think it's working any more. I spent a good
deal of time going through the CommitFest this week, and I didn't get
through a very large percentage of it, and what I found is that the
status of the patches registered there is often much messier than can
be captured by a simple "Needs Review" or "Waiting on Author," and the
number of patches that are actually in need of review is not all that
large. For example, there are:- patches parked there by a committer who will almost certainly do
something about them after we branch
- patches parked there by a committer who probably won't do something
about them after we branch, but maybe they will, or maybe somebody
else will, and anyway this way we at least run CI
-- snip --
So, our CommitFest application has turned into a patch tracker. IMHO,
patch trackers intrinsically tend to suck, because they fill up with
garbage that nobody cares about, and nobody wants to do the colossal
amount of work that it takes to maintain them. But our patch tracker
sucks MORE, because it's not even intended to BE a general-purpose
patch tracker.
I was reflecting on why a general purpose patch tracker sounded
appealing to me, and I realized that, at least at this time of year, I
have a few patches that really count as "waiting on author" that I
know I need to do additional work on before they need more review but
which aren't currently my top priority. I should probably simply
withdraw and re-register them. My justification was that I'll lose
them if I don't keep them in the commitfest app. But, I could just,
you know, save them somewhere myself instead of polluting the
commitfest app with them. I don't know if others are in this
situation. Anyway, I'm definitely currently guilty of parking.
- Melanie
On Thu, May 16, 2024 at 10:46 PM Melanie Plageman <melanieplageman@gmail.com>
wrote:
On Thu, May 16, 2024 at 2:30 PM Robert Haas <robertmhaas@gmail.com> wrote:
Hi,
The original intent of CommitFests, and of commitfest.postgresql.org
by extension, was to provide a place where patches could be registered
to indicate that they needed to be reviewed, thus enabling patch
authors and patch reviewers to find each other in a reasonably
efficient way. I don't think it's working any more. I spent a good
deal of time going through the CommitFest this week, and I didn't get
through a very large percentage of it, and what I found is that the
status of the patches registered there is often much messier than can
be captured by a simple "Needs Review" or "Waiting on Author," and the
number of patches that are actually in need of review is not all that
large. For example, there are:- patches parked there by a committer who will almost certainly do
something about them after we branch
- patches parked there by a committer who probably won't do something
about them after we branch, but maybe they will, or maybe somebody
else will, and anyway this way we at least run CI-- snip --
So, our CommitFest application has turned into a patch tracker. IMHO,
patch trackers intrinsically tend to suck, because they fill up with
garbage that nobody cares about, and nobody wants to do the colossal
amount of work that it takes to maintain them. But our patch tracker
sucks MORE, because it's not even intended to BE a general-purpose
patch tracker.I was reflecting on why a general purpose patch tracker sounded
appealing to me, and I realized that, at least at this time of year, I
have a few patches that really count as "waiting on author" that I
know I need to do additional work on before they need more review but
which aren't currently my top priority. I should probably simply
withdraw and re-register them. My justification was that I'll lose
them if I don't keep them in the commitfest app. But, I could just,
you know, save them somewhere myself instead of polluting the
commitfest app with them. I don't know if others are in this
situation. Anyway, I'm definitely currently guilty of parking.
One thing I think we've talked about before (but not done) is to basically
have a CF called "parking lot", where you can park patches that aren't
active in a commitfest but you also don't want to be dead. It would
probably also be doable to have the cf bot run patches in that commitfest
as well as the current one, if that's what people are using it for there.
--
Magnus Hagander
Me: https://www.hagander.net/ <http://www.hagander.net/>
Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/>
On Thu, May 16, 2024 at 12:14 PM David G. Johnston
<david.g.johnston@gmail.com> wrote:
Those likely never get out of the new WIP slot discussed above. Your patch tracker basically. And there should be less angst in moving something in the bimonthly into WIP rather than dropping it outright. There is discussion to be had regarding WIP/patch tracking should we go this direction but even if it is just movIng clutter from one room to another there seems like a clear benefit
Yeah, IMO we're unlikely to get around the fact that it's a patch
tracker -- even if patch trackers inherently tend to suck, as Robert
put it, they tend to have lots of value too. May as well embrace the
need for a tracker and make it more helpful.
We'll still have a problem with too many WIP patches and not enough ability or desire to resolve them. But setting a higher bar to get onto the bimonthly slot while still providing a place for collaboration is a step forward that configuring technology can help with.
+1. I think _any_ way to better communicate "what the author needs
right now" would help a lot.
As for WIP, maybe adding thumbs-up and thumbs-down support tracking widgets will help draw attention to more desired things.
Personally I'd like a way to gauge general interest without
introducing a voting system. "Stars", if you will, rather than
"thumbs". In the context of the CF, it's valuable to me as an author
that you care about what I'm trying to do; if you don't like my
implementation, that's what reviews on the list are for. And I see no
way that the meaning of a thumbs-down button wouldn't degrade
immediately.
I have noticed that past proposals for incremental changes to the CF
app (mine and others') are met with a sort of resigned inertia --
sometimes disagreement, but more often "meh, sounds all right, maybe".
Maybe my suggestions are just meh, and that's fine. But if we can't
tweak small things as we go -- and be generally okay with trying and
reverting failed experiments sometimes -- frustrations are likely to
pile up until someone writes another biyearly manifesto thread.
--Jacob
Melanie Plageman <melanieplageman@gmail.com> writes:
I was reflecting on why a general purpose patch tracker sounded
appealing to me, and I realized that, at least at this time of year, I
have a few patches that really count as "waiting on author" that I
know I need to do additional work on before they need more review but
which aren't currently my top priority. I should probably simply
withdraw and re-register them. My justification was that I'll lose
them if I don't keep them in the commitfest app. But, I could just,
you know, save them somewhere myself instead of polluting the
commitfest app with them. I don't know if others are in this
situation. Anyway, I'm definitely currently guilty of parking.
It's also nice that the CF app will run CI for you, so at least
you can keep the patch building if you're so inclined.
David J. had a suggestion for this too upthread, which was to create a
separate slot for WIP patches that isn't one of the dated CF slots.
It's hard to argue that such patches need to be in "the CF app" at
all, if you're not actively looking for review. But the CI runs
and the handy per-author patch status list make the app very tempting
infrastructure for parked patches. Maybe we could have a not-the-CF
app that offers those amenities?
regards, tom lane
On Thu, May 16, 2024 at 1:46 PM Melanie Plageman
<melanieplageman@gmail.com> wrote:
I should probably simply
withdraw and re-register them. My justification was that I'll lose
them if I don't keep them in the commitfest app. But, I could just,
you know, save them somewhere myself instead of polluting the
commitfest app with them. I don't know if others are in this
situation. Anyway, I'm definitely currently guilty of parking.
Me too -- it's really, really useful. I think there's probably a
better way the app could help us mark it as parked, as opposed to
getting rid of parking. Similar to how people currently use the
Reviewer field as a personal TODO list... it might be nice to
officially separate the ideas a bit.
--Jacob
On Thu, May 16, 2024 at 1:31 PM Joe Conway <mail@joeconway.com> wrote:
Maybe we should just make it a policy that *nothing* gets moved forward
from commitfest-to-commitfest and therefore the author needs to care
enough to register for the next one?
I think that's going to severely disadvantage anyone who doesn't do
this as their day job. Maybe I'm bristling a bit too much at the
wording, but not having time to shepherd a patch is not the same as
not caring.
--Jacob
Hi,
On 5/16/24 4:31 PM, Joe Conway wrote:
Yeah. I think that Robert put his finger on a big part of the
problem, which is that punting a patch to the next CF is a lot
easier than rejecting it, particularly for less-senior CFMs
who may not feel they have the authority to say no (or at
least doubt that the patch author would accept it).Maybe we should just make it a policy that *nothing* gets moved forward
from commitfest-to-commitfest and therefore the author needs to care
enough to register for the next one?
Or at least nothing get moved forward from March.
Spending time on a patch during a major version doesn't mean that you
have time to do the same for the next major version.
That way July could start "clean" with patches people are interested in
and willing to maintain during the next year.
Also, it is a bit confusing that f.ex.
https://commitfest.postgresql.org/48/
already shows 40 patches as Committed...
So, having some sort of "End of Development" state in general would be good.
Best regards,
Jesper
Jacob Champion <jacob.champion@enterprisedb.com> writes:
... Similar to how people currently use the
Reviewer field as a personal TODO list... it might be nice to
officially separate the ideas a bit.
Oh, that's an independent pet peeve of mine. Usually, if I'm
looking over the CF list for a patch to review, I skip over ones
that already show an assigned reviewer, because I don't want to
step on that person's toes. But it seems very common to put
one's name down for review without any immediate intention of
doing work. Or to do a review and wander off, leaving the patch
apparently being tended to but not really. (And I confess I'm
occasionally guilty of both things myself.)
I think it'd be great if we could separate "I'm actively reviewing
this" from "I'm interested in this". As a bonus, adding yourself
to the "interested" list would be a fine proxy for the thumbs-up
or star markers mentioned upthread.
If those were separate columns, we could implement some sort of
aging scheme whereby somebody who'd not commented for (say)
a week or two would get quasi-automatically moved from the "active
reviewer" column to the "interested" column, whereupon it wouldn't
be impolite for someone else to sign up for active review.
regards, tom lane
On 5/16/24 16:57, Jacob Champion wrote:
On Thu, May 16, 2024 at 1:31 PM Joe Conway <mail@joeconway.com> wrote:
Maybe we should just make it a policy that *nothing* gets moved forward
from commitfest-to-commitfest and therefore the author needs to care
enough to register for the next one?I think that's going to severely disadvantage anyone who doesn't do
this as their day job. Maybe I'm bristling a bit too much at the
wording, but not having time to shepherd a patch is not the same as
not caring.
Maybe the word "care" was a poor choice, but forcing authors to think
about and decide if they have the "time to shepherd a patch" for the
*next CF* is exactly the point. If they don't, why clutter the CF with it.
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
Jacob Champion <jacob.champion@enterprisedb.com> writes:
On Thu, May 16, 2024 at 1:31 PM Joe Conway <mail@joeconway.com> wrote:
Maybe we should just make it a policy that *nothing* gets moved forward
from commitfest-to-commitfest and therefore the author needs to care
enough to register for the next one?
I think that's going to severely disadvantage anyone who doesn't do
this as their day job. Maybe I'm bristling a bit too much at the
wording, but not having time to shepherd a patch is not the same as
not caring.
Also, I doubt that there are all that many patches that have simply
been abandoned by their authors. Our problem is the same as it's
been for many years: not enough review person-power, rather than
not enough patches. So I think authors would just jump through that
hoop, or enough of them would that it wouldn't improve matters.
regards, tom lane
On 5/16/24 16:48, Magnus Hagander wrote:
On Thu, May 16, 2024 at 10:46 PM Melanie Plageman
I was reflecting on why a general purpose patch tracker sounded
appealing to me, and I realized that, at least at this time of year, I
have a few patches that really count as "waiting on author" that I
know I need to do additional work on before they need more review but
which aren't currently my top priority. I should probably simply
withdraw and re-register them. My justification was that I'll lose
them if I don't keep them in the commitfest app. But, I could just,
you know, save them somewhere myself instead of polluting the
commitfest app with them. I don't know if others are in this
situation. Anyway, I'm definitely currently guilty of parking.One thing I think we've talked about before (but not done) is to
basically have a CF called "parking lot", where you can park patches
that aren't active in a commitfest but you also don't want to be dead.
It would probably also be doable to have the cf bot run patches in that
commitfest as well as the current one, if that's what people are using
it for there.
+1
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
On Thu, May 16, 2024 at 1:46 PM Melanie Plageman <melanieplageman@gmail.com>
wrote:
I should probably simply
withdraw and re-register them. My justification was that I'll lose
them if I don't keep them in the commitfest app. But, I could just,
you know, save them somewhere myself instead of polluting the
commitfest app with them. I don't know if others are in this
situation. Anyway, I'm definitely currently guilty of parking.
I use a personal JIRA to track the stuff that I hope makes it into the
codebase, as well as just starring the corresponding emails in the
short-term. Every patch ever submitted sits in the mailing list archive so
I have no real need to preserve git branches with my submitted work on
them. At lot of my work comes down to lucky timing so I'm mostly content
with just pinging my draft patches on the email thread once in a while
hoping there is interest and time from someone. For stuff that I would be
OK committing as submitted I'll add it to the commitfest and wait for
someone to either agree or point out where I can improve things.
Adding both these kinds to WIP appeals to me, particularly with something
akin to a "Collaboration Wanted" category in addition to "Needs Review" for
when I think it is ready, and "Waiting on Author" for stuff that has
pending feedback to resolve - or the author isn't currently fishing for
reviewer time for whatever reason. Ideally there would be no rejections,
only constructive feedback that convinces the author that, whether for now
or forever, the proposed patch should be withdrawn pending some change in
circumstances that suggests the world is ready for it.
David J.
On Thu, May 16, 2024 at 2:06 PM Joe Conway <mail@joeconway.com> wrote:
Maybe the word "care" was a poor choice, but forcing authors to think
about and decide if they have the "time to shepherd a patch" for the
*next CF* is exactly the point. If they don't, why clutter the CF with it.
Because the community regularly encourages new patch contributors to
park their stuff in it, without first asking them to sign on the
dotted line and commit to the next X months of their free time. If
that's not appropriate, then I think we should decide what those
contributors need to do instead, rather than making a new bar for them
to clear.
--Jacob
On 5/16/24 17:24, Jacob Champion wrote:
On Thu, May 16, 2024 at 2:06 PM Joe Conway <mail@joeconway.com> wrote:
Maybe the word "care" was a poor choice, but forcing authors to think
about and decide if they have the "time to shepherd a patch" for the
*next CF* is exactly the point. If they don't, why clutter the CF with it.Because the community regularly encourages new patch contributors to
park their stuff in it, without first asking them to sign on the
dotted line and commit to the next X months of their free time. If
that's not appropriate, then I think we should decide what those
contributors need to do instead, rather than making a new bar for them
to clear.
If no one, including the author (new or otherwise) is interested in
shepherding a particular patch, what chance does it have of ever getting
committed?
IMHO the probability is indistinguishable from zero anyway.
Perhaps we should be more explicit to new contributors that they need to
either own their patch through the process, or convince someone to do it
for them.
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
On 16.05.24 22:46, Melanie Plageman wrote:
I was reflecting on why a general purpose patch tracker sounded
appealing to me, and I realized that, at least at this time of year, I
have a few patches that really count as "waiting on author" that I
know I need to do additional work on before they need more review but
which aren't currently my top priority. I should probably simply
withdraw and re-register them. My justification was that I'll lose
them if I don't keep them in the commitfest app. But, I could just,
you know, save them somewhere myself instead of polluting the
commitfest app with them. I don't know if others are in this
situation. Anyway, I'm definitely currently guilty of parking.
I don't have a problem with that at all. It's pretty understandable
that many patches are parked between say April and July.
The key is the keep the status up to date.
If we have 890 patches in Waiting for Author and 100 patches in Ready
for Committer and 10 patches in Needs Review, and those 10 patches are
actually reviewable, then that's good. There might need to be a
"background process" to make sure those 890 waiting patches are not
parked forever and those 100 patches actually get committed sometime,
but in principle this is the system working.
The problem is if we have 180 patches in Needs Review, and only 20 are
really actually ready to be reviewed. And a second-order problem is
that if you already know that this will be the case, you give up before
even looking.
On Thu, May 16, 2024 at 2:29 PM Joe Conway <mail@joeconway.com> wrote:
If no one, including the author (new or otherwise) is interested in
shepherding a particular patch, what chance does it have of ever getting
committed?
That's a very different thing from what I think will actually happen, which is
- new author posts patch
- community member says "use commitfest!"
- new author registers patch
- no one reviews it
- patch gets automatically booted
- community member says "register it again!"
- new author says ಠ_ಠ
Like Tom said upthread, the issue isn't really that new authors are
somehow uninterested in their own patches.
--Jacob
On 16.05.24 23:04, Tom Lane wrote:
I think it'd be great if we could separate "I'm actively reviewing
this" from "I'm interested in this". As a bonus, adding yourself
to the "interested" list would be a fine proxy for the thumbs-up
or star markers mentioned upthread.If those were separate columns, we could implement some sort of
aging scheme whereby somebody who'd not commented for (say)
a week or two would get quasi-automatically moved from the "active
reviewer" column to the "interested" column, whereupon it wouldn't
be impolite for someone else to sign up for active review.
Yes, I think some variant of this could be quite useful.
On 16.05.24 23:06, Joe Conway wrote:
On 5/16/24 16:57, Jacob Champion wrote:
On Thu, May 16, 2024 at 1:31 PM Joe Conway <mail@joeconway.com> wrote:
Maybe we should just make it a policy that *nothing* gets moved forward
from commitfest-to-commitfest and therefore the author needs to care
enough to register for the next one?I think that's going to severely disadvantage anyone who doesn't do
this as their day job. Maybe I'm bristling a bit too much at the
wording, but not having time to shepherd a patch is not the same as
not caring.Maybe the word "care" was a poor choice, but forcing authors to think
about and decide if they have the "time to shepherd a patch" for the
*next CF* is exactly the point. If they don't, why clutter the CF with it.
Objectively, I think this could be quite effective. You need to prove
your continued interest in your project by pressing a button every two
months.
But there is a high risk that this will double the annoyance for
contributors whose patches aren't getting reviews. Now, not only are
you being ignored, but you need to prove that you're still there every
two months.
On Thu, May 16, 2024 at 2:04 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Oh, that's an independent pet peeve of mine. Usually, if I'm
looking over the CF list for a patch to review, I skip over ones
that already show an assigned reviewer, because I don't want to
step on that person's toes. But it seems very common to put
one's name down for review without any immediate intention of
doing work. Or to do a review and wander off, leaving the patch
apparently being tended to but not really. (And I confess I'm
occasionally guilty of both things myself.)
Yep, I do the same thing (and have the same pet peeve).
I think it'd be great if we could separate "I'm actively reviewing
this" from "I'm interested in this". As a bonus, adding yourself
to the "interested" list would be a fine proxy for the thumbs-up
or star markers mentioned upthread.If those were separate columns, we could implement some sort of
aging scheme whereby somebody who'd not commented for (say)
a week or two would get quasi-automatically moved from the "active
reviewer" column to the "interested" column, whereupon it wouldn't
be impolite for someone else to sign up for active review.
+1!
--Jacob
Peter Eisentraut <peter@eisentraut.org> writes:
The problem is if we have 180 patches in Needs Review, and only 20 are
really actually ready to be reviewed. And a second-order problem is
that if you already know that this will be the case, you give up before
even looking.
Right, so what can we do about that? Does Needs Review state need to
be subdivided, and if so how?
If it's just that a patch should be in some other state altogether,
we should simply encourage people to change the state as soon as they
discover that. I think the problem is not so much "90% are in the
wrong state" as "each potential reviewer has to rediscover that".
At this point it seems like there's consensus to have a "parking"
section of the CF app, separate from the time-boxed CFs, and I hope
somebody will go make that happen. But I don't think that's our only
issue, so we need to keep thinking about what should be improved.
regards, tom lane
On 16 May 2024, at 23:46, Tom Lane <tgl@sss.pgh.pa.us> wrote:
At this point it seems like there's consensus to have a "parking"
section of the CF app, separate from the time-boxed CFs, and I hope
somebody will go make that happen. But I don't think that's our only
issue, so we need to keep thinking about what should be improved.
Pulling in the information from the CFBot regarding test failures and whether
the patch applies at all, and automatically altering the state to WOA for at
least the latter category would be nice. There's likely to be more analysis we
can do on the thread to measure "activity/hotness", but starting with the
simple boolean data we already have could be a good start.
--
Daniel Gustafsson
On 5/16/24 17:36, Jacob Champion wrote:
On Thu, May 16, 2024 at 2:29 PM Joe Conway <mail@joeconway.com> wrote:
If no one, including the author (new or otherwise) is interested in
shepherding a particular patch, what chance does it have of ever getting
committed?That's a very different thing from what I think will actually happen, which is
- new author posts patch
- community member says "use commitfest!"
Here is where we should point them at something that explains the care
and feeding requirements to successfully grow a patch into a commit.
- new author registers patch
- no one reviews it
- patch gets automatically booted
Part of the care and feeding instructions should be a warning regarding
what happens if you are unsuccessful in the first CF and still want to
see it through.
- community member says "register it again!"
- new author says ಠ_ಠ
As long as this is not a surprise ending, I don't see the issue.
Like Tom said upthread, the issue isn't really that new authors are
somehow uninterested in their own patches.
First, some of them objectively are uninterested in doing more than
dropping a patch over the wall and never looking back. But admittedly
that is not too often.
Second, I don't think a once every two months effort in order to
register continuing interest is too much to ask.
And third, if we did something like Magnus' suggestion about a CF
parking lot, the process would be even more simple.
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
Daniel Gustafsson <daniel@yesql.se> writes:
Pulling in the information from the CFBot regarding test failures and whether
the patch applies at all, and automatically altering the state to WOA for at
least the latter category would be nice.
+1. There are enough intermittent test failures that I don't think
changing state for that would be good, but patch apply failure is
usually persistent.
I gather that the CFBot is still a kluge that is web-scraping the CF
app rather than being actually integrated with it, and that there are
plans to make that better that haven't been moving fast. Probably
that would have to happen first, but there would be a lot of benefit
from having the info flow be two-way.
regards, tom lane
On 16.05.24 23:46, Tom Lane wrote:
Peter Eisentraut <peter@eisentraut.org> writes:
The problem is if we have 180 patches in Needs Review, and only 20 are
really actually ready to be reviewed. And a second-order problem is
that if you already know that this will be the case, you give up before
even looking.Right, so what can we do about that? Does Needs Review state need to
be subdivided, and if so how?
Maybe a new state "Unclear". Then a commitfest manager, or someone like
Robert just now, can more easily power through the list and set
everything that's doubtful to Unclear, with the understanding that the
author can set it back to Needs Review to signal that they actually
think it's ready. Or, as a variant of what someone else was saying,
just set all patches that carry over from March to July as Unclear. Or
something like that.
I think, if we consider the core mission of the commitfest app, we need
to be more protective of the Needs Review state.
I have been, from time to time, when I'm in commitfest management mode,
aggressive in setting entries back to Waiting on Author, but that's not
always optimal.
So a third status that encompasses the various other situations like
maybe forgotten by author, disagreements between author and reviewer,
process difficulties, needs some senior developer intervention, etc.
could be helpful.
This could also help scale the commitfest manager role, because then the
head CFM could have like three helpers and just tell them, look at all
the "Unclear" ones and help resolve them.
Peter Eisentraut <peter@eisentraut.org> writes:
On 16.05.24 23:46, Tom Lane wrote:
Right, so what can we do about that? Does Needs Review state need to
be subdivided, and if so how?
Maybe a new state "Unclear". ...
I think, if we consider the core mission of the commitfest app, we need
to be more protective of the Needs Review state.
Yeah, makes sense.
So a third status that encompasses the various other situations like
maybe forgotten by author, disagreements between author and reviewer,
process difficulties, needs some senior developer intervention, etc.
could be helpful.
Hmm, "forgotten by author" seems to generally turn into "this has been
in WOA state a long time". Not sure we have a problem representing
that, only with a process for eventually retiring such entries.
Your other three examples all sound like "needs senior developer
attention", which could be a helpful state that's distinct from "ready
for committer". It's definitely not the same as "Unclear".
regards, tom lane
On Thu, May 16, 2024 at 5:04 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Jacob Champion <jacob.champion@enterprisedb.com> writes:
... Similar to how people currently use the
Reviewer field as a personal TODO list... it might be nice to
officially separate the ideas a bit.Oh, that's an independent pet peeve of mine. Usually, if I'm
looking over the CF list for a patch to review, I skip over ones
that already show an assigned reviewer, because I don't want to
step on that person's toes. But it seems very common to put
one's name down for review without any immediate intention of
doing work. Or to do a review and wander off, leaving the patch
apparently being tended to but not really. (And I confess I'm
occasionally guilty of both things myself.)I think it'd be great if we could separate "I'm actively reviewing
this" from "I'm interested in this". As a bonus, adding yourself
to the "interested" list would be a fine proxy for the thumbs-up
or star markers mentioned upthread.If those were separate columns, we could implement some sort of
aging scheme whereby somebody who'd not commented for (say)
a week or two would get quasi-automatically moved from the "active
reviewer" column to the "interested" column, whereupon it wouldn't
be impolite for someone else to sign up for active review.
I really like the idea of an "interested" column of some sort. I think
having some idea of what patches have interest is independently
valuable and helps us distinguish patches that no committer was
interested enough to work on and patches that no one thinks is a good
idea at all.
As for having multiple categories of reviewer, it's almost like we
need someone to take responsibility for shifting the patch to the next
state -- where the next state isn't necessarily "committed". We tend
to wait and assign a committer if the patch is actually committable
and will get committed. Lots of people review a patch without claiming
that were the author to address all of the feedback, the patch would
be committable. It might be helpful if someone could sign up to
shepherd the patch to its next state -- regardless of what that state
is.
- Melanie
On Thu, May 16, 2024 at 5:46 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Right, so what can we do about that? Does Needs Review state need to
be subdivided, and if so how?
It doesn't really matter how many states we have if they're not set accurately.
At this point it seems like there's consensus to have a "parking"
section of the CF app, separate from the time-boxed CFs, and I hope
somebody will go make that happen. But I don't think that's our only
issue, so we need to keep thinking about what should be improved.
I do *emphatically* think we need a parking lot. And a better
integration between commitfest.postgresql.org and the cfbot, too. It's
just ridiculous that more work hasn't been put into this. I'm not
faulting Thomas or anyone else -- I mean, it's not his job to build
the infrastructure the project needs any more than it is anyone else's
-- but for a project of the size and importance of PostgreSQL to take
years to make minor improvements to this kind of critical
infrastructure is kind of nuts. If we don't have enough volunteers,
let's go recruit some more and promise them cookies.
I think you're overestimating the extent to which the problem is "we
don't reject enough patches". That *is* a problem, but it seems we
have also started rejecting some patches that just never really got
much attention for no particularly good reason, while letting other
things linger that didn't really get that much more attention, or
which were objectively much worse ideas. I think that one place where
the process is breaking down is in the tacit assumption that the
person who wrote the patch wants to get it committed. In some cases,
people park things in the CF for CI runs without a strong intention of
pursuing them; in other cases, the patch author is in no kind of rush.
I think we need to move to a system where patches exist independent of
a CommitFest, and get CI run on them unless they get explicitly closed
or are too inactive or some other criterion that boils down to nobody
cares any more. Then, we need to get whatever subset of those patches
need to be reviewed in a particular CommitFest added to that
CommitFest. For example, imagine that the CommitFest is FORCIBLY empty
until a week before it starts. You can still register patches in the
system generally, but that just means they get CI runs, not that
they're scheduled to be reviewed. A week before the CommitFest,
everyone who has a patch registered in the system that still applies
gets an email saying "click here if you think this patch should be
reviewed in the upcoming CommitFest -- if you don't care about the
patch any more or it needs more work before other people review it,
don't click here". Then, the CommitFest ends up containing only the
things where the patch author clicked there during that week.
For bonus points, suppose we make it so that when you click the link,
it takes you to a box where you can type in a text comment that will
display in the app, explaining why your patch needs review: "Robert
says the wire protocol changes in this patch are wrong, but I think
he's full of hot garbage and want a second opinion!" (a purely
hypothetical example, I'm sure) If you put in a comment like this when
you register your patch for the CommitFest, it gets a sparkly gold
border and floats to the top of the list, or we mail you a Kit-Kat
bar, or something. I don't know.
The point is - we need a much better signal to noise ratio here. I bet
the number of patches in the CommitFest that actually need review is
something like 25% of the total. The rest are things that are just
parked there by a committer, or that the author doesn't care about
right now, or that are already being actively discussed, or where
there's not a clear way forward. We could create new statuses for all
of those states - "Parked", "In Hibernation," "Under Discussion," and
"Unclear" - but I think that's missing the point. What we really want
is to not see that stuff in the first place. It's a CommitFest, not
once-upon-a-time-I-wrote-a-patch-Fest.
--
Robert Haas
EDB: http://www.enterprisedb.com
On 17.05.24 00:13, Tom Lane wrote:
So a third status that encompasses the various other situations like
maybe forgotten by author, disagreements between author and reviewer,
process difficulties, needs some senior developer intervention, etc.
could be helpful.Hmm, "forgotten by author" seems to generally turn into "this has been
in WOA state a long time". Not sure we have a problem representing
that, only with a process for eventually retiring such entries.
Your other three examples all sound like "needs senior developer
attention", which could be a helpful state that's distinct from "ready
for committer". It's definitely not the same as "Unclear".
Yeah, some fine-tuning might be required. But I would be wary of
over-designing too many new states at this point. I think the key idea
is that there ought to be a state that communicates "needs attention
from someone other than author, reviewer, or committer".
On 17.05.24 04:26, Robert Haas wrote:
I do*emphatically* think we need a parking lot.
People seem to like this idea; I'm not quite sure I follow it. If you
just want the automated patch testing, you can do that on your own by
setting up github/cirrus for your own account. If you keep emailing the
public your patches just because you don't want to set up your private
testing tooling, that seems a bit abusive?
Are there other reasons why developers might want their patches
registered in a parking lot?
We also need to consider that the cfbot/cirrus resources are limited.
Whatever changes we make, we should make sure that they are prioritized
well.
On 17/05/2024 08:05, Peter Eisentraut wrote:
On 17.05.24 04:26, Robert Haas wrote:
I do*emphatically* think we need a parking lot.
People seem to like this idea; I'm not quite sure I follow it. If you
just want the automated patch testing, you can do that on your own by
setting up github/cirrus for your own account. If you keep emailing the
public your patches just because you don't want to set up your private
testing tooling, that seems a bit abusive?
Agreed. Also, if you do want to park a patch in the commitfest, setting
it to "Waiting on Author" is effectively that.
I used to add patches to the commitfest to run CFBot on them, but some
time back I bit the bullet and set up github/cirrus to run on my own
github repository. I highly recommend that. It only takes a few clicks,
and the user experience is much better: push a branch to my own github
repository, and cirrus CI runs automatically.
--
Heikki Linnakangas
Neon (https://neon.tech)
On Fri, May 17, 2024 at 12:25 AM Maciek Sakrejda <m.sakrejda@gmail.com>
wrote:
Thanks for raising this. As someone who is only modestly familiar with
Postgres internals or even C, but would still like to contribute through
review, I find the current process of finding a suitable patch both tedious
and daunting. The Reviewing a Patch article on the wiki [0] says reviews
like mine are still welcome, but it's hard to get started. I'd love to see
this be more approachable.
I totally agreed with Maciek. Its really hard for even an experience
developer to become a PG contributor or be able to contribute effectively.
Show quoted text
Thanks,
Maciek
On 17/05/2024 05:26, Robert Haas wrote:
For bonus points, suppose we make it so that when you click the link,
it takes you to a box where you can type in a text comment that will
display in the app, explaining why your patch needs review: "Robert
says the wire protocol changes in this patch are wrong, but I think
he's full of hot garbage and want a second opinion!" (a purely
hypothetical example, I'm sure) If you put in a comment like this when
you register your patch for the CommitFest, it gets a sparkly gold
border and floats to the top of the list, or we mail you a Kit-Kat
bar, or something. I don't know.
Dunno about having to click a link or sparkly gold borders, but +1 on
having a free-form text box for notes like that. Things like "cfbot says
this has bitrotted" or "Will review this after other patch this depends
on". On the mailing list, notes like that are both noisy and easily lost
in the threads. But as a little free-form text box on the commitfest, it
would be handy.
One risk is that if we start to rely too much on that, or on the other
fields in the commitfest app for that matter, we de-value the mailing
list archives. I'm not too worried about it, the idea is that the
summary box just summarizes what's already been said on the mailing
list, or is transient information like "I'll get to this tomorrow"
that's not interesting to archive.
The point is - we need a much better signal to noise ratio here. I bet
the number of patches in the CommitFest that actually need review is
something like 25% of the total. The rest are things that are just
parked there by a committer, or that the author doesn't care about
right now, or that are already being actively discussed, or where
there's not a clear way forward. We could create new statuses for all
of those states - "Parked", "In Hibernation," "Under Discussion," and
"Unclear" - but I think that's missing the point. What we really want
is to not see that stuff in the first place. It's a CommitFest, not
once-upon-a-time-I-wrote-a-patch-Fest.
Yeah, I'm also skeptical of adding new categories or statuses to the
commitfest.
I sometimes add patches to the commitfest that are not ready to be
committed, because I want review on the general idea or approach, before
polishing the patch to final state. That's also a fine use of the
commitfest app. The expected workflow is to get some review on the
patch, and then move it back to Waiting on Author.
--
Heikki Linnakangas
Neon (https://neon.tech)
On Fri, 17 May 2024 at 06:58, Peter Eisentraut <peter@eisentraut.org> wrote:
Yeah, some fine-tuning might be required. But I would be wary of
over-designing too many new states at this point. I think the key idea
is that there ought to be a state that communicates "needs attention
from someone other than author, reviewer, or committer".
+1 on adding a new state like this. I think it would make sense for
the author to request additional input, but I think it would need two
states, something like "Request for new reviewer" and "Request for new
committer". Just like authors disappear sometimes after a driveby
patch submission, it's fairly common too imho for reviewers or
committers to disappear after a driveby review. Having a way for an
author to mark a patch as such would be helpful, both to the author,
and to reviewers/committers looking to do help some patch out.
On Fri, 17 May 2024 at 09:33, Heikki Linnakangas <hlinnaka@iki.fi> wrote:
Things like "cfbot says
this has bitrotted" or "Will review this after other patch this depends
on". On the mailing list, notes like that are both noisy and easily lost
in the threads. But as a little free-form text box on the commitfest, it
would be handy.
+many on the free form text box
On 17 May 2024, at 09:32, Heikki Linnakangas <hlinnaka@iki.fi> wrote:
On the mailing list, notes like that are both noisy and easily lost in the threads. But as a little free-form text box on the commitfest, it would be handy.
On a similar note, I have in the past suggested adding a free-form textfield to
the patch submission form for the author to give a short summary of what the
patch does/adds/requires etc. While the thread contains all of this, it's
likely quite overwhelming for many in general and new contributors in
particular. A short note, on purpose limited to ~500 chars or so to not allow
mailinglist post copy/paste, could be helpful there I think (I've certainly
wanted one, many times over, especially when doing CFM).
One risk is that if we start to rely too much on that, or on the other fields in the commitfest app for that matter, we de-value the mailing list archives. I'm not too worried about it, the idea is that the summary box just summarizes what's already been said on the mailing list, or is transient information like "I'll get to this tomorrow" that's not interesting to archive.
One way to ensure we capture detail could be if the system would send an
automated email to the thread summarizing the entry when it's marked as
"committed"?
--
Daniel Gustafsson
On 17 May 2024, at 00:03, Peter Eisentraut <peter@eisentraut.org> wrote:
I think, if we consider the core mission of the commitfest app, we need to be more protective of the Needs Review state.
IMHO this is a very very good summary of what we should focus on with this
work.
--
Daniel Gustafsson
On Fri, 17 May 2024 at 10:47, Daniel Gustafsson <daniel@yesql.se> wrote:
One way to ensure we capture detail could be if the system would send an
automated email to the thread summarizing the entry when it's marked as
"committed"?
This sounds great! Especially if Going back from an archived thread
to the commitfest entry or git commit is currently very hard. If I'll
just be able to Ctrl+F on commitfest@postgresql.com that would be so
helpful. I think it would even be useful to have an email be sent
whenever a patch gets initially added to the commitfest, so that
there's a back link to and it's easy to mark yourself as reviewer.
Right now, I almost never take the time to do that because if I look
at my inbox, I have no clue what the interesting email thread is
called in the commitfest app.
On Fri, 17 May 2024 at 11:02, Jelte Fennema-Nio <postgres@jeltef.nl> wrote:
On Fri, 17 May 2024 at 10:47, Daniel Gustafsson <daniel@yesql.se> wrote:
One way to ensure we capture detail could be if the system would send an
automated email to the thread summarizing the entry when it's marked as
"committed"?This sounds great! Especially if
(oops pressed send too early)
**Especially if it contains the git commit hash**
Show quoted text
Going back from an archived thread
to the commitfest entry or git commit is currently very hard. If I'll
just be able to Ctrl+F on commitfest@postgresql.com that would be so
helpful. I think it would even be useful to have an email be sent
whenever a patch gets initially added to the commitfest, so that
there's a back link to and it's easy to mark yourself as reviewer.
Right now, I almost never take the time to do that because if I look
at my inbox, I have no clue what the interesting email thread is
called in the commitfest app.
On 16 May 2024, at 23:30, Robert Haas <robertmhaas@gmail.com> wrote:
I think we just need 10x CFMs. Let’s have a CFM for each CF section. I’d happily take "Replication and Recovery” or “System Administration” for July. “Miscellaneous” or “Performance” look monstrous.
I feel I can easily track ~20 threads (besides threads I’m interested in). But it’s too tedious to spread attention among ~200 items.
Best regards, Andrey Borodin.
I think there are actually a number of factors that make this much harder.
On Fri, May 17, 2024 at 2:33 PM Heikki Linnakangas <hlinnaka@iki.fi> wrote:
On 17/05/2024 05:26, Robert Haas wrote:
For bonus points, suppose we make it so that when you click the link,
it takes you to a box where you can type in a text comment that will
display in the app, explaining why your patch needs review: "Robert
says the wire protocol changes in this patch are wrong, but I think
he's full of hot garbage and want a second opinion!" (a purely
hypothetical example, I'm sure) If you put in a comment like this when
you register your patch for the CommitFest, it gets a sparkly gold
border and floats to the top of the list, or we mail you a Kit-Kat
bar, or something. I don't know.Dunno about having to click a link or sparkly gold borders, but +1 on
having a free-form text box for notes like that. Things like "cfbot says
this has bitrotted" or "Will review this after other patch this depends
on". On the mailing list, notes like that are both noisy and easily lost
in the threads. But as a little free-form text box on the commitfest, it
would be handy.One risk is that if we start to rely too much on that, or on the other
fields in the commitfest app for that matter, we de-value the mailing
list archives. I'm not too worried about it, the idea is that the
summary box just summarizes what's already been said on the mailing
list, or is transient information like "I'll get to this tomorrow"
that's not interesting to archive.The point is - we need a much better signal to noise ratio here. I bet
the number of patches in the CommitFest that actually need review is
something like 25% of the total. The rest are things that are just
parked there by a committer, or that the author doesn't care about
right now, or that are already being actively discussed, or where
there's not a clear way forward. We could create new statuses for all
of those states - "Parked", "In Hibernation," "Under Discussion," and
"Unclear" - but I think that's missing the point. What we really want
is to not see that stuff in the first place. It's a CommitFest, not
once-upon-a-time-I-wrote-a-patch-Fest.
Yeah this is a problem.
I think in cases here something is in hibernation or unclear it really
should be "returned with feedback." There's really nothing stopping
someone from learning from the experience and resubmitting an improved
version.
I think under discussion is also rather unclear. The current statuses
already cover this sort of thing (waiting for author and waiting for
review). Maybe we could improve the categories here but it is
important to note whether the author or a reviewer is expected to take
the next step.
If the author doesn't respond within a period of time (let's say 30
days), I think we can just say "returned with feedback."
Since you can already attach older threads to a commitfest entry, it
seems to me that we ought to be more aggressive with "returned with
feedback" and note that this doesn't necessarily mean "rejected" which
is a separate status which we rarely use.
Show quoted text
Yeah, I'm also skeptical of adding new categories or statuses to the
commitfest.I sometimes add patches to the commitfest that are not ready to be
committed, because I want review on the general idea or approach, before
polishing the patch to final state. That's also a fine use of the
commitfest app. The expected workflow is to get some review on the
patch, and then move it back to Waiting on Author.--
Heikki Linnakangas
Neon (https://neon.tech)
On 5/16/24 23:43, Peter Eisentraut wrote:
On 16.05.24 23:06, Joe Conway wrote:
On 5/16/24 16:57, Jacob Champion wrote:
On Thu, May 16, 2024 at 1:31 PM Joe Conway <mail@joeconway.com> wrote:
Maybe we should just make it a policy that *nothing* gets moved forward
from commitfest-to-commitfest and therefore the author needs to care
enough to register for the next one?I think that's going to severely disadvantage anyone who doesn't do
this as their day job. Maybe I'm bristling a bit too much at the
wording, but not having time to shepherd a patch is not the same as
not caring.Maybe the word "care" was a poor choice, but forcing authors to think
about and decide if they have the "time to shepherd a patch" for the
*next CF* is exactly the point. If they don't, why clutter the CF with
it.Objectively, I think this could be quite effective. You need to prove
your continued interest in your project by pressing a button every two
months.But there is a high risk that this will double the annoyance for
contributors whose patches aren't getting reviews. Now, not only are
you being ignored, but you need to prove that you're still there every
two months.
Yeah, I 100% agree with this. If a patch bitrots and no one cares enough
to rebase it once in a while, then sure - it's probably fine to mark it
RwF. But forcing all contributors to do a dance every 2 months just to
have a chance someone might take a look, seems ... not great.
I try to see this from the contributors' PoV, and with this process I'm
sure I'd start questioning if I even want to submit patches.
That is not to say we don't have a problem with patches that just move
to the next CF, and that we don't need to do something about that ...
Incidentally, I've been preparing some git+CF stats because of a talk
I'm expected to do, and it's very obvious the number of committed (and
rejected) CF entries is more or very stable over time, while the number
of patches that move to the next CF just snowballs.
My impression is a lot of these contributions/patches just never get the
review & attention that would allow them to move forward. Sure, some do
bitrot and/or get abandoned, and let's RwF those. But forcing everyone
to re-register the patches over and over seems like "reject by default".
I'd expect a lot of people to stop bothering and give up, and in a way
that would "solve" the bottleneck. But I'm not sure it's the solution
we'd like ...
It does seem to me a part of the solution needs to be helping to get
those patches reviewed. I don't know how to do that, but perhaps there's
a way to encourage people to review more stuff, or review stuff from a
wider range of contributors. Say by treating reviews more like proper
contributions.
Long time ago there was a "rule" that people submitting patches are
expected to do reviews. Perhaps we should be more strict this.
regards
--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
On Fri, May 17, 2024 at 1:05 AM Peter Eisentraut <peter@eisentraut.org> wrote:
On 17.05.24 04:26, Robert Haas wrote:
I do*emphatically* think we need a parking lot.
People seem to like this idea; I'm not quite sure I follow it. If you
just want the automated patch testing, you can do that on your own by
setting up github/cirrus for your own account. If you keep emailing the
public your patches just because you don't want to set up your private
testing tooling, that seems a bit abusive?Are there other reasons why developers might want their patches
registered in a parking lot?
It's easier to say what's happening than it is to say why it's
happening. The CF contains a lot of stuff that appears to just be
parked there, so evidently reasons exist.
But if we are to guess what those reasons might be, Tom has already
admitted he does that for CI, and I do the same, so probably other
people also do it. I also suspect that some people are essentially
using the CF app as a personal todo list. By sticking patches in there
that they intend to commit next cycle, they both (1) feel virtuous,
because they give at least the appearance of following the community
process and inviting review before they commit and (2) avoid losing
track of the stuff they plan to commit.
There may be other reasons, too.
--
Robert Haas
EDB: http://www.enterprisedb.com
On 17 May 2024, at 13:13, Robert Haas <robertmhaas@gmail.com> wrote:
But if we are to guess what those reasons might be, Tom has already
admitted he does that for CI, and I do the same, so probably other
people also do it. I also suspect that some people are essentially
using the CF app as a personal todo list. By sticking patches in there
that they intend to commit next cycle, they both (1) feel virtuous,
because they give at least the appearance of following the community
process and inviting review before they commit and (2) avoid losing
track of the stuff they plan to commit.There may be other reasons, too.
I think there is one more which is important: 3) Giving visibility into "this
is what I intend to commit". Few can follow -hackers to the level where they
can have an overview of ongoing and/or finished work which will go in. The CF
app does however provide that overview. This is essentially the TODO list
aspect, but sharing one's TODO isn't all bad, especially for maintainers.
--
Daniel Gustafsson
On Fri, May 17, 2024 at 7:11 AM Tomas Vondra
<tomas.vondra@enterprisedb.com> wrote:
Yeah, I 100% agree with this. If a patch bitrots and no one cares enough
to rebase it once in a while, then sure - it's probably fine to mark it
RwF. But forcing all contributors to do a dance every 2 months just to
have a chance someone might take a look, seems ... not great.
I don't think that clicking on a link that someone sends you that asks
"hey, is this ready to be reviewed' qualifies as a dance.
I'm open to other proposals. But I think that if the proposal is
essentially "Hey, let's have the CFMs try harder to do the thing that
we've already been asking them to try to do for the last N years,"
then we might as well just not bother. It's obviously not working, and
it's not going to start working because we repeat the same things
about bouncing patches more aggressively. I just spent 2 days on it
and moved a handful of entries forward. To make a single pass over the
whole CommitFest at the rate I was going would take at least two
weeks, maybe three. And I am a highly experienced committer and
CommitFest manager with good facility in English and a lot of
experience arguing on this mailing list. I'm in the best possible
position to be able to do this well and efficiently and I can't. So
where are we going to find the people who can?
I think Andrey Borodin's nearby suggestion of having a separate CfM
for each section of the CommitFest does a good job revealing just how
bad the current situation is. I agree with him: that would actually
work. Asking somebody, for a one-month period, to be responsible for
shepherding one-tenth or one-twentieth of the entries in the
CommitFest would be a reasonable amount of work for somebody. But we
will not find 10 or 20 highly motivated, well-qualified volunteers
every other month to do that work; it's a struggle to find one or two
highly motivated, well-qualified CommitFest managers, let alone ten or
twenty. So I think the right interpretation of his comment is that
managing the CommitFest has become about an order of magnitude more
difficult than what it needs to be for the task to be done well.
It does seem to me a part of the solution needs to be helping to get
those patches reviewed. I don't know how to do that, but perhaps there's
a way to encourage people to review more stuff, or review stuff from a
wider range of contributors. Say by treating reviews more like proper
contributions.
Well, I know that what would encourage *me* to do that is if I could
find the patches that fall into this category easily. I'm still not
going to spend all of my time on it, but when I do have time to spend
on it, I'd rather spend it on stuff that matters than on trying to
drain the CommitFest swamp. And right now every time I think "oh, I
should spend some time reviewing other people's patches," that time
promptly evaporates trying to find the patches that actually need
attention. I rarely get beyond the "Bug fixes" section of the
CommitFest application before I've used up all my available time, not
least because some people have figured out that labelling something
they don't like as a Bug fix gets it closer to the top of the CF list,
which is alphabetical by section.
Long time ago there was a "rule" that people submitting patches are
expected to do reviews. Perhaps we should be more strict this.
This sounds like it's just generating more manual work to add to a
system that's already suffering from needing too much manual work. Who
would keep track of how many reviews each person is doing, and how
many patches they're submitting, and whether those reviews were
actually any good, and what would they do about it?
One patch that comes to mind here is Thomas Munro's patch for
"unaccent: understand ancient Greek "oxia" and other codepoints merged
by Unicode". Somebody submitted a bug report and Thomas wrote a patch
and added it to the CommitFest. But there are open questions that need
to be researched, and this isn't really a priority for Thomas: he was
just trying to be nice and put somebody's bug report on a track to
resolution. Now, Thomas has many patches in the CommitFest, so if you
ask "does he review as much stuff as he has signed up to be reviewed,"
he clearly doesn't. Let's reject all of his patches, including this
one! And if on this specific patch you ask whether the author is
staying on top of it, he clearly isn't, so let's reject this one a
second time, just for that. Now, what have we accomplished by doing
all of that?
Not a whole lot, in general, because Thomas is a committer, so he can
still commit those patches if he wants, barring objections. However,
we have succeeded in kicking them out of our CI system, so if he does
commit them, they'll be more likely to break the buildfarm. And in the
case of this specific patch, what we've done is punish Thomas for
trying to help out somebody who submitted a bug report, and at the
same time, made the patch he submitted less visible to anyone who
might want to help with it.
Wahoo!
--
Robert Haas
EDB: http://www.enterprisedb.com
On 5/16/24 22:26, Robert Haas wrote:
For example, imagine that the CommitFest is FORCIBLY empty
until a week before it starts. You can still register patches in the
system generally, but that just means they get CI runs, not that
they're scheduled to be reviewed. A week before the CommitFest,
everyone who has a patch registered in the system that still applies
gets an email saying "click here if you think this patch should be
reviewed in the upcoming CommitFest -- if you don't care about the
patch any more or it needs more work before other people review it,
don't click here". Then, the CommitFest ends up containing only the
things where the patch author clicked there during that week.
100% agree. This is in line with what I suggested on an adjacent part of
the thread.
The point is - we need a much better signal to noise ratio here. I bet
the number of patches in the CommitFest that actually need review is
something like 25% of the total. The rest are things that are just
parked there by a committer, or that the author doesn't care about
right now, or that are already being actively discussed, or where
there's not a clear way forward.
I think there is another case that no one talks about, but I'm sure
exists, and that I am not the only one guilty of thinking this way.
Namely, the week before commitfest I don't actually know if I will have
the time during that month, but I will make sure my patch is in the
commitfest just in case I get a few clear days to work on it. Because if
it isn't there, I can't take advantage of those "found" hours.
We could create new statuses for all of those states - "Parked", "In
Hibernation," "Under Discussion," and "Unclear" - but I think that's
missing the point. What we really want is to not see that stuff in
the first place. It's a CommitFest, not
once-upon-a-time-I-wrote-a-patch-Fest.
+1
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
On Fri, 17 May 2024 at 13:39, Robert Haas <robertmhaas@gmail.com> wrote:
On Fri, May 17, 2024 at 7:11 AM Tomas Vondra
<tomas.vondra@enterprisedb.com> wrote:Yeah, I 100% agree with this. If a patch bitrots and no one cares enough
to rebase it once in a while, then sure - it's probably fine to mark it
RwF. But forcing all contributors to do a dance every 2 months just to
have a chance someone might take a look, seems ... not great.I don't think that clicking on a link that someone sends you that asks
"hey, is this ready to be reviewed' qualifies as a dance.
If there's been any useful response to the patch since the last time
you pressed this button, then it might be okay. But it's definitely
not uncommon for items on the commitfest app to get no actual response
at all for half a year, i.e. multiple commits fests (except for the
odd request for a rebase that an author does within a week). I'd most
certainly get very annoyed if for those patches where it already seems
as if I'm screaming into the void I'd also be required to press a
button every two months, for it to even have a chance at receiving a
response.
So I think the right interpretation of his comment is that
managing the CommitFest has become about an order of magnitude more
difficult than what it needs to be for the task to be done well.
+1
Long time ago there was a "rule" that people submitting patches are
expected to do reviews. Perhaps we should be more strict this.This sounds like it's just generating more manual work to add to a
system that's already suffering from needing too much manual work. Who
would keep track of how many reviews each person is doing, and how
many patches they're submitting, and whether those reviews were
actually any good, and what would they do about it?
+1
On Fri, 17 May 2024 at 14:19, Joe Conway <mail@joeconway.com> wrote:
On 5/16/24 22:26, Robert Haas wrote:
For example, imagine that the CommitFest is FORCIBLY empty
until a week before it starts. You can still register patches in the
system generally, but that just means they get CI runs, not that
they're scheduled to be reviewed. A week before the CommitFest,
everyone who has a patch registered in the system that still applies
gets an email saying "click here if you think this patch should be
reviewed in the upcoming CommitFest -- if you don't care about the
patch any more or it needs more work before other people review it,
don't click here". Then, the CommitFest ends up containing only the
things where the patch author clicked there during that week.100% agree. This is in line with what I suggested on an adjacent part of
the thread.
Such a proposal would basically mean that no-one that cares about
their patches getting reviews can go on holiday and leave work behind
during the week before a commit fest. That seems quite undesirable to
me.
On 5/17/24 08:31, Jelte Fennema-Nio wrote:
On Fri, 17 May 2024 at 14:19, Joe Conway <mail@joeconway.com> wrote:
On 5/16/24 22:26, Robert Haas wrote:
For example, imagine that the CommitFest is FORCIBLY empty
until a week before it starts. You can still register patches in the
system generally, but that just means they get CI runs, not that
they're scheduled to be reviewed. A week before the CommitFest,
everyone who has a patch registered in the system that still applies
gets an email saying "click here if you think this patch should be
reviewed in the upcoming CommitFest -- if you don't care about the
patch any more or it needs more work before other people review it,
don't click here". Then, the CommitFest ends up containing only the
things where the patch author clicked there during that week.100% agree. This is in line with what I suggested on an adjacent part of
the thread.Such a proposal would basically mean that no-one that cares about
their patches getting reviews can go on holiday and leave work behind
during the week before a commit fest. That seems quite undesirable to
me.
Well, I'm sure I'll get flamed for this suggestion, be here goes anyway...
I wrote:
Namely, the week before commitfest I don't actually know if I will have
the time during that month, but I will make sure my patch is in the
commitfest just in case I get a few clear days to work on it. Because if
it isn't there, I can't take advantage of those "found" hours.
A solution to both of these issues (yours and mine) would be to allow
things to be added *during* the CF month. What is the point of having a
"freeze" before every CF anyway? Especially if they start out clean. If
something is ready for review on day 8 of the CF, why not let it be
added for review?
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
On 17.05.24 13:36, Daniel Gustafsson wrote:
On 17 May 2024, at 13:13, Robert Haas <robertmhaas@gmail.com> wrote:
But if we are to guess what those reasons might be, Tom has already
admitted he does that for CI, and I do the same, so probably other
people also do it. I also suspect that some people are essentially
using the CF app as a personal todo list. By sticking patches in there
that they intend to commit next cycle, they both (1) feel virtuous,
because they give at least the appearance of following the community
process and inviting review before they commit and (2) avoid losing
track of the stuff they plan to commit.There may be other reasons, too.
I think there is one more which is important: 3) Giving visibility into "this
is what I intend to commit". Few can follow -hackers to the level where they
can have an overview of ongoing and/or finished work which will go in. The CF
app does however provide that overview. This is essentially the TODO list
aspect, but sharing one's TODO isn't all bad, especially for maintainers.
Ok, but these cases shouldn't use a separate "parking lot". They should
use the same statuses and flow diagram as the rest. (Maybe with more
dotted lines, sure.)
On 17 May 2024, at 16:39, Robert Haas <robertmhaas@gmail.com> wrote:
I think Andrey Borodin's nearby suggestion of having a separate CfM
for each section of the CommitFest does a good job revealing just how
bad the current situation is. I agree with him: that would actually
work. Asking somebody, for a one-month period, to be responsible for
shepherding one-tenth or one-twentieth of the entries in the
CommitFest would be a reasonable amount of work for somebody. But we
will not find 10 or 20 highly motivated, well-qualified volunteers
every other month to do that work;
Why do you think so? Let’s just try to find more CFMs for July.
When I felt that I’m overwhelmed, I asked for help and Alexander Alekseev promptly agreed. That helped a lot.
If I was in that position again, I would just ask 10 times on a 1st day :)
it's a struggle to find one or two
highly motivated, well-qualified CommitFest managers, let alone ten or
twenty.
Because we are looking for one person to do a job for 10.
So I think the right interpretation of his comment is that
managing the CommitFest has become about an order of magnitude more
difficult than what it needs to be for the task to be done well.
Let’s scale the process. Reduce responsibility area of a CFM, define it clearer.
And maybe even explicitly ask CFM to summarize patch status of each entry at least once a CF.
Can I do a small poll among those who is on this thread? Would you volunteer to summarize a status of 20 patches in July’s CF? 5 each week or so. One per day.
Best regards, Andrey Borodin.
On Friday, May 17, 2024, Joe Conway <mail@joeconway.com> wrote:
I wrote:
Namely, the week before commitfest I don't actually know if I will have
the time during that month, but I will make sure my patch is in the
commitfest just in case I get a few clear days to work on it. Because if it
isn't there, I can't take advantage of those "found" hours.A solution to both of these issues (yours and mine) would be to allow
things to be added *during* the CF month. What is the point of having a
"freeze" before every CF anyway? Especially if they start out clean. If
something is ready for review on day 8 of the CF, why not let it be added
for review?
In conjunction with WIP removing this limitation on the bimonthlies makes
sense to me.
David J.
On 17.05.24 09:32, Heikki Linnakangas wrote:
Dunno about having to click a link or sparkly gold borders, but +1 on
having a free-form text box for notes like that. Things like "cfbot says
this has bitrotted" or "Will review this after other patch this depends
on". On the mailing list, notes like that are both noisy and easily lost
in the threads. But as a little free-form text box on the commitfest, it
would be handy.One risk is that if we start to rely too much on that, or on the other
fields in the commitfest app for that matter, we de-value the mailing
list archives. I'm not too worried about it, the idea is that the
summary box just summarizes what's already been said on the mailing
list, or is transient information like "I'll get to this tomorrow"
that's not interesting to archive.
We already have the annotations feature, which is kind of this.
On Fri, May 17, 2024 at 8:31 AM Jelte Fennema-Nio <postgres@jeltef.nl> wrote:
Such a proposal would basically mean that no-one that cares about
their patches getting reviews can go on holiday and leave work behind
during the week before a commit fest. That seems quite undesirable to
me.
Well, then we make it ten days instead of seven, or give a few days
grace after the CF starts to play catchup, or allow the CfM to make
exceptions.
To be fair, I'm not sure that forcing people to do something like this
is going to solve our problem. I'm very open to other ideas. But one
idea that I'm not open to is to just keep doing what we're doing. It
clearly and obviously does not work.
I just tried scrolling through the CommitFest to a more or less random
spot by flicking the mouse up and down, and then clicked on whatever
ended up in the middle of my screen. I did this four times. Two of
those landed on patches that had extremely long discussion threads
already. One hit a patch from a non-committer that hasn't been
reviewed and needs to be. And the fourth hit a patch from a committer
which maybe could benefit from review but I can already guess that the
patch works fine and unless somebody can find some architectural
downside to the approach taken, there's not really a whole lot to talk
about.
I don't entirely know how to think about that result, but it seems
pretty clear that the unreviewed non-committer patch ought to get
priority, especially if we're talking about the possibility of
non-committers or even junior committers doing drive-by reviews. The
high-quality committer patch might be worth a comment from me, pro or
con or whatever, but it's probably not a great use of time for a more
casual contributor: they probably aren't going to find too much wrong
with it. And the threads with extremely long threads already, well, I
don't know if there's something useful that can be done with those
threads or not, but those patches certainly haven't been ignored.
I'm not sure that any of these should be evicted from the CommitFest,
but we need to think about how to impose some structure on the chaos.
Just classifying all four of those entries as either "Needs Review" or
"Waiting on Author" is pretty useless; then they all look the same,
and they're not. And please don't suggest adding a bunch more status
values that the CfM has to manually police as the solution. We need to
find some way to create a system that does the right thing more often
by default.
--
Robert Haas
EDB: http://www.enterprisedb.com
On Fri, May 17, 2024 at 9:02 AM Peter Eisentraut <peter@eisentraut.org> wrote:
We already have the annotations feature, which is kind of this.
I didn't realize we had that feature. When was it added, and how is it
supposed to be used?
--
Robert Haas
EDB: http://www.enterprisedb.com
On 17.05.24 14:42, Joe Conway wrote:
Namely, the week before commitfest I don't actually know if I will
have the time during that month, but I will make sure my patch is in
the commitfest just in case I get a few clear days to work on it.
Because if it isn't there, I can't take advantage of those "found" hours.A solution to both of these issues (yours and mine) would be to allow
things to be added *during* the CF month. What is the point of having a
"freeze" before every CF anyway? Especially if they start out clean. If
something is ready for review on day 8 of the CF, why not let it be
added for review?
Maybe this all indicates that the idea of bimonthly commitfests has run
its course. The original idea might have been, if we have like 50
patches, we can process all of them within a month. We're clearly not
doing that anymore. How would the development process look like if we
just had one commitfest per dev cycle that runs from July 1st to March 31st?
On 5/17/24 14:51, Andrey M. Borodin wrote:
On 17 May 2024, at 16:39, Robert Haas <robertmhaas@gmail.com> wrote:
I think Andrey Borodin's nearby suggestion of having a separate CfM
for each section of the CommitFest does a good job revealing just how
bad the current situation is. I agree with him: that would actually
work. Asking somebody, for a one-month period, to be responsible for
shepherding one-tenth or one-twentieth of the entries in the
CommitFest would be a reasonable amount of work for somebody. But we
will not find 10 or 20 highly motivated, well-qualified volunteers
every other month to do that work;Why do you think so? Let’s just try to find more CFMs for July.
When I felt that I’m overwhelmed, I asked for help and Alexander Alekseev promptly agreed. That helped a lot.
If I was in that position again, I would just ask 10 times on a 1st day :)it's a struggle to find one or two
highly motivated, well-qualified CommitFest managers, let alone ten or
twenty.Because we are looking for one person to do a job for 10.
Yes. It's probably easier to find more CF managers doing much less work.
So I think the right interpretation of his comment is that
managing the CommitFest has become about an order of magnitude more
difficult than what it needs to be for the task to be done well.Let’s scale the process. Reduce responsibility area of a CFM, define it clearer.
And maybe even explicitly ask CFM to summarize patch status of each entry at least once a CF.
Should it even be up to the CFM to write the summary, or should he/she
be able to request an update from the patch author? Of at least have the
choice to do so.
I think we'll always struggle with the massive threads, because it's
really difficult to find the right balance between brevity and including
all the relevant details. Or rather impossible. I did try writing such
summaries for a couple of my long-running patches, and while it might
have helped, the challenge was to also explain why stuff *not* done in
some alternative way, which is one of the things usually discussed. But
the summary gets very long, because there are many alternatives.
Can I do a small poll among those who is on this thread? Would you
volunteer to summarize a status of 20 patches in July’s CF? 5 each week
or so. One per day.
Not sure. For many patches it'll be trivial. And for a bunch it'll be
very very time-consuming.
regards
--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
On 17 May 2024, at 15:05, Robert Haas <robertmhaas@gmail.com> wrote:
On Fri, May 17, 2024 at 9:02 AM Peter Eisentraut <peter@eisentraut.org> wrote:
We already have the annotations feature, which is kind of this.
I didn't realize we had that feature. When was it added, and how is it
supposed to be used?
A while back.
commit 27cba025a501c9dbcfb08da0c4db95dc6111d647
Author: Magnus Hagander <magnus@hagander.net>
Date: Sat Feb 14 13:07:48 2015 +0100
Implement simple message annotations
This feature makes it possible to "pull in" a message in a thread and highlight
it with an annotation (free text format). This will list the message in a table
along with the annotation and who made it.
Annotations have to be attached to a specific message - for a "generic" one it
makes sense to attach it to the latest message available, as that will put it
at the correct place in time.
Magnus' commitmessage explains it well. The way I've used it (albeit
infrequently) is to point to a specific mail in the thread where a significant
change was proposed, like the patch changhing direction or something similar.
--
Daniel Gustafsson
On 5/17/24 09:08, Peter Eisentraut wrote:
On 17.05.24 14:42, Joe Conway wrote:
Namely, the week before commitfest I don't actually know if I will
have the time during that month, but I will make sure my patch is in
the commitfest just in case I get a few clear days to work on it.
Because if it isn't there, I can't take advantage of those "found" hours.A solution to both of these issues (yours and mine) would be to allow
things to be added *during* the CF month. What is the point of having a
"freeze" before every CF anyway? Especially if they start out clean. If
something is ready for review on day 8 of the CF, why not let it be
added for review?Maybe this all indicates that the idea of bimonthly commitfests has run
its course. The original idea might have been, if we have like 50
patches, we can process all of them within a month. We're clearly not
doing that anymore. How would the development process look like if we
just had one commitfest per dev cycle that runs from July 1st to March 31st?
What's old is new again? ;-)
I agree with you. Before commitfests were a thing, we had no structure
at all as I recall. The dates for the dev cycle were more fluid as I
recall, and we had no CF app to track things. Maybe retaining the
structure but going back to the continuous development would be just the
thing, with the CF app tracking just the currently (as of this
week/month/???) active stuff.
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
On Fri, May 17, 2024 at 9:54 AM Joe Conway <mail@joeconway.com> wrote:
I agree with you. Before commitfests were a thing, we had no structure
at all as I recall. The dates for the dev cycle were more fluid as I
recall, and we had no CF app to track things. Maybe retaining the
structure but going back to the continuous development would be just the
thing, with the CF app tracking just the currently (as of this
week/month/???) active stuff.
The main thing that we'd gain from that is to avoid all the work of
pushing lots of things forward to the next CommitFest at the end of
every CommitFest. While I agree that we need to find a better way to
handle that, I don't think it's really the biggest problem. The core
problems here are (1) keeping stuff out of CommitFests that don't
belong there and (2) labelling stuff that does belong in the
CommitFest in useful ways. We should shape the solution around those
problems. Maybe that will solve this problem along the way, but if it
doesn't, that's easy enough to fix afterward.
Like, we could also just have a button that says "move everything
that's left to the next CommitFest". That, too, would avoid the manual
work that this would avoid. But it wouldn't solve any other problems,
so it's not really worth much consideration.
--
Robert Haas
EDB: http://www.enterprisedb.com
On Fri, May 17, 2024 at 9:09 AM Peter Eisentraut <peter@eisentraut.org> wrote:
How would the development process look like if we
just had one commitfest per dev cycle that runs from July 1st to March 31st?
Exactly the same?
--
Peter Geoghegan
Robert Haas <robertmhaas@gmail.com> writes:
On Fri, May 17, 2024 at 9:54 AM Joe Conway <mail@joeconway.com> wrote:
I agree with you. Before commitfests were a thing, we had no structure
at all as I recall. The dates for the dev cycle were more fluid as I
recall, and we had no CF app to track things. Maybe retaining the
structure but going back to the continuous development would be just the
thing, with the CF app tracking just the currently (as of this
week/month/???) active stuff.
The main thing that we'd gain from that is to avoid all the work of
pushing lots of things forward to the next CommitFest at the end of
every CommitFest.
To my mind, the point of the time-boxed commitfests is to provide
a structure wherein people will (hopefully) pay some actual attention
to other peoples' patches. Conversely, the fact that we don't have
one running all the time gives committers some defined intervals
where they can work on their own stuff without feeling guilty that
they're not handling other people's patches.
If we go back to the old its-development-mode-all-the-time approach,
what is likely to happen is that the commit rate for not-your-own-
patches goes to zero, because it's always possible to rationalize
your own stuff as being more important.
Like, we could also just have a button that says "move everything
that's left to the next CommitFest".
Clearly, CFMs would appreciate some more tooling to make that sort
of thing easier. Perhaps we omitted it in the original CF app
coding because we expected the end-of-CF backlog to be minimal,
but it's now obvious that it generally isn't.
BTW, I was reminded while trawling old email yesterday that
we used to freeze the content of a CF at its start and then
hold the CF open until the backlog actually went to zero,
which resulted in multi-month death-march CFs and no clarity
at all as to release timing. Let's not go back to that.
But the CF app was probably built with that model in mind.
regards, tom lane
On Fri, May 17, 2024 at 10:31 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
To my mind, the point of the time-boxed commitfests is to provide
a structure wherein people will (hopefully) pay some actual attention
to other peoples' patches. Conversely, the fact that we don't have
one running all the time gives committers some defined intervals
where they can work on their own stuff without feeling guilty that
they're not handling other people's patches.If we go back to the old its-development-mode-all-the-time approach,
what is likely to happen is that the commit rate for not-your-own-
patches goes to zero, because it's always possible to rationalize
your own stuff as being more important.
We already have gone back to that model. We just haven't admitted it
yet. And we're never going to get out of it until we find a way to get
the contents of the CommitFest application down to a more reasonable
size and level of complexity. There's just no way everyone's up for
that level of pain. I'm not sure not up for that level of pain.
--
Robert Haas
EDB: http://www.enterprisedb.com
Robert Haas <robertmhaas@gmail.com> writes:
On Fri, May 17, 2024 at 10:31 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
If we go back to the old its-development-mode-all-the-time approach,
what is likely to happen is that the commit rate for not-your-own-
patches goes to zero, because it's always possible to rationalize
your own stuff as being more important.
We already have gone back to that model. We just haven't admitted it
yet. And we're never going to get out of it until we find a way to get
the contents of the CommitFest application down to a more reasonable
size and level of complexity. There's just no way everyone's up for
that level of pain. I'm not sure not up for that level of pain.
Yeah, we clearly need to get the patch list to a point of
manageability, but I don't agree that abandoning time-boxed CFs
will improve anything.
regards, tom lane
On Fri, May 17, 2024 at 7:11 AM Tomas Vondra
<tomas.vondra@enterprisedb.com> wrote:
On 5/16/24 23:43, Peter Eisentraut wrote:
On 16.05.24 23:06, Joe Conway wrote:
On 5/16/24 16:57, Jacob Champion wrote:
On Thu, May 16, 2024 at 1:31 PM Joe Conway <mail@joeconway.com> wrote:
Maybe we should just make it a policy that *nothing* gets moved forward
from commitfest-to-commitfest and therefore the author needs to care
enough to register for the next one?I think that's going to severely disadvantage anyone who doesn't do
this as their day job. Maybe I'm bristling a bit too much at the
wording, but not having time to shepherd a patch is not the same as
not caring.Maybe the word "care" was a poor choice, but forcing authors to think
about and decide if they have the "time to shepherd a patch" for the
*next CF* is exactly the point. If they don't, why clutter the CF with
it.Objectively, I think this could be quite effective. You need to prove
your continued interest in your project by pressing a button every two
months.But there is a high risk that this will double the annoyance for
contributors whose patches aren't getting reviews. Now, not only are
you being ignored, but you need to prove that you're still there every
two months.Yeah, I 100% agree with this. If a patch bitrots and no one cares enough
to rebase it once in a while, then sure - it's probably fine to mark it
RwF. But forcing all contributors to do a dance every 2 months just to
have a chance someone might take a look, seems ... not great.I try to see this from the contributors' PoV, and with this process I'm
sure I'd start questioning if I even want to submit patches.
Agreed.
That is not to say we don't have a problem with patches that just move
to the next CF, and that we don't need to do something about that ...Incidentally, I've been preparing some git+CF stats because of a talk
I'm expected to do, and it's very obvious the number of committed (and
rejected) CF entries is more or very stable over time, while the number
of patches that move to the next CF just snowballs.My impression is a lot of these contributions/patches just never get the
review & attention that would allow them to move forward. Sure, some do
bitrot and/or get abandoned, and let's RwF those. But forcing everyone
to re-register the patches over and over seems like "reject by default".
I'd expect a lot of people to stop bothering and give up, and in a way
that would "solve" the bottleneck. But I'm not sure it's the solution
we'd like ...
I don't think we should reject by default. It is discouraging and it
is already hard enough as it is to contribute.
It does seem to me a part of the solution needs to be helping to get
those patches reviewed. I don't know how to do that, but perhaps there's
a way to encourage people to review more stuff, or review stuff from a
wider range of contributors. Say by treating reviews more like proper
contributions.
One reason I support the parking lot idea is for patches like the one
in [1]https://commitfest.postgresql.org/48/4248/. EXPLAIN for parallel bitmap heap scan is just plain broken.
The patch in this commitfest entry is functionally 80% of the way
there. It just needs someone to do the rest of the work to make it
committable. I actually think it is unreasonable of us to expect the
original author to do this. I have had it on my list for weeks to get
back around to helping with this patch. However, I spent the better
part of my coding time in the last two weeks trying to reproduce and
fix a bug on stable branches that causes vacuum processes to
infinitely loop. Arguably that is a bigger problem. Because I knew
this EXPLAIN patch was slipping down my TODO list, I changed the patch
to "waiting on author", but I honestly don't think the original author
should have to do the rest of the work.
Should I spend more time on this patch reviewing it and moving it
forward? Yes. Maybe I'm just too slow at writing postgres code or I
have bad time management or I should spend less time doing things
like figuring out how many lavalier mics we need in each room for
PGConf.dev. I don't know. But it is hard for me to figure out how to
do more review work and guarantee that this kind of thing won't
happen.
So, anyway, I'd argue that we need a parking lot for patches which we
all agree are important and have a path forward but need someone to do
the last 20-80% of the work. To avoid this being a dumping ground,
patches should _only_ be allowed in the parking lot if they have a
clear path forward. Patches which haven't gotten any interest don't go
there. Patches in which the author has clearly not addressed feedback
that is reasonable for them to address don't go there. These are
effectively community TODOs which we agree need to be done -- if only
someone had the time.
- Melanie
On Fri, May 17, 2024 at 7:40 AM Robert Haas <robertmhaas@gmail.com> wrote:
On Fri, May 17, 2024 at 10:31 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
To my mind, the point of the time-boxed commitfests is to provide
a structure wherein people will (hopefully) pay some actual attention
to other peoples' patches. Conversely, the fact that we don't have
one running all the time gives committers some defined intervals
where they can work on their own stuff without feeling guilty that
they're not handling other people's patches.If we go back to the old its-development-mode-all-the-time approach,
what is likely to happen is that the commit rate for not-your-own-
patches goes to zero, because it's always possible to rationalize
your own stuff as being more important.We already have gone back to that model. We just haven't admitted it
yet.
I've worked on teams that used the short-timebox CF calendar to
organize community work, like Tom describes. That was a really
positive thing for us.
Maybe it feels different from the committer point of view, but I don't
think all of the community is operating on the long-timebox model, and
I really wouldn't want to see us lengthen the cycles to try to get
around the lack of review/organization that's being complained about.
(But maybe you're not arguing for that in the first place.)
--Jacob
Melanie Plageman <melanieplageman@gmail.com> writes:
So, anyway, I'd argue that we need a parking lot for patches which we
all agree are important and have a path forward but need someone to do
the last 20-80% of the work. To avoid this being a dumping ground,
patches should _only_ be allowed in the parking lot if they have a
clear path forward. Patches which haven't gotten any interest don't go
there. Patches in which the author has clearly not addressed feedback
that is reasonable for them to address don't go there. These are
effectively community TODOs which we agree need to be done -- if only
someone had the time.
Hmm. I was envisioning "parking lot" as meaning "this is on my
personal TODO list, and I'd like CI support for it, but I'm not
expecting anyone else to pay attention to it yet". I think what
you are describing is valuable but different. Maybe call it
"pending" or such? Or invent a different name for the other thing.
regards, tom lane
On Fri, May 17, 2024 at 11:05 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
We already have gone back to that model. We just haven't admitted it
yet. And we're never going to get out of it until we find a way to get
the contents of the CommitFest application down to a more reasonable
size and level of complexity. There's just no way everyone's up for
that level of pain. I'm not sure not up for that level of pain.Yeah, we clearly need to get the patch list to a point of
manageability, but I don't agree that abandoning time-boxed CFs
will improve anything.
I'm not sure. Suppose we plotted commits generally, or commits of
non-committer patches, or reviews on-list, vs. time. Would we see any
uptick in activity during CommitFests? Would it vary by committer? I
don't know. I bet the difference wouldn't be as much as Tom Lane would
like to see. Realistically, we can't manage how contributors spend
their time all that much, and trying to do so is largely tilting at
windmills.
To me, the value of time-based CommitFests is as a vehicle to ensure
freshness, or cleanup, or whatever word you want to do. If you just
make a list of things that need attention and keep incrementally
updating it, eventually for various reasons that list no longer
reflects your current list of priorities. At some point, you have to
throw it out and make a new list, or at least that's what always
happens to me. We've fallen into a system where the default treatment
of a patch is to be carried over to the next CommitFest and CfMs are
expected to exert effort to keep patches from getting that default
treatment when they shouldn't. But that does not scale. We need a
system where things drop off the list unless somebody makes an effort
to keep them on the list, and the easiest way to do that is to
periodically make a *fresh* list that *doesn't* just clone some
previous list.
I realize that many people here are (rightly!) concerned with
burdening patch authors with more steps that they have to follow. But
the current system is serving new patch authors very poorly. If they
get attention, it's much more likely to be because somebody saw their
email and wrote back than it is to be because somebody went through
the CommitFest and found their entry and was like "oh, I should review
this". Honestly, if we get to a situation where a patch author is sad
because they have to click a link every 2 months to say "yeah, I'm
still here, please review my patch," we've already lost the game. That
person isn't sad because we asked them to click a link. They're sad
it's already been N * 2 months and nothing has happened.
--
Robert Haas
EDB: http://www.enterprisedb.com
On Fri, May 17, 2024 at 11:57 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Melanie Plageman <melanieplageman@gmail.com> writes:
So, anyway, I'd argue that we need a parking lot for patches which we
all agree are important and have a path forward but need someone to do
the last 20-80% of the work. To avoid this being a dumping ground,
patches should _only_ be allowed in the parking lot if they have a
clear path forward. Patches which haven't gotten any interest don't go
there. Patches in which the author has clearly not addressed feedback
that is reasonable for them to address don't go there. These are
effectively community TODOs which we agree need to be done -- if only
someone had the time.Hmm. I was envisioning "parking lot" as meaning "this is on my
personal TODO list, and I'd like CI support for it, but I'm not
expecting anyone else to pay attention to it yet".
+1.
I think what
you are describing is valuable but different. Maybe call it
"pending" or such? Or invent a different name for the other thing.
Yeah, there should be someplace that we keep a list of things that are
thought to be important but we haven't gotten around to doing anything
about yet, but I think that's different from the parking lot CF.
--
Robert Haas
EDB: http://www.enterprisedb.com
On 5/17/24 11:58, Robert Haas wrote:
I realize that many people here are (rightly!) concerned with
burdening patch authors with more steps that they have to follow. But
the current system is serving new patch authors very poorly. If they
get attention, it's much more likely to be because somebody saw their
email and wrote back than it is to be because somebody went through
the CommitFest and found their entry and was like "oh, I should review
this". Honestly, if we get to a situation where a patch author is sad
because they have to click a link every 2 months to say "yeah, I'm
still here, please review my patch," we've already lost the game. That
person isn't sad because we asked them to click a link. They're sad
it's already been N * 2 months and nothing has happened.
+many
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
On Fri, 17 May 2024 at 17:59, Robert Haas <robertmhaas@gmail.com> wrote:
If they
get attention, it's much more likely to be because somebody saw their
email and wrote back than it is to be because somebody went through
the CommitFest and found their entry and was like "oh, I should review
this".
I think this is an important insight. I used the commitfest app to
find patches to review when I was just starting out in postgres
development, since I didn't subscribe to all af pgsql-hackers yet. I
do subscribe nowadays, but now I rarely look at the commitfest app,
instead I skim the titles of emails that go into my "Postgres" folder
in my mailbox. Going from such an email to a commitfest entry is near
impossible (at least I don't know how to do this efficiently). I guess
I'm not the only one doing this.
Honestly, if we get to a situation where a patch author is sad
because they have to click a link every 2 months to say "yeah, I'm
still here, please review my patch," we've already lost the game. That
person isn't sad because we asked them to click a link. They're sad
it's already been N * 2 months and nothing has happened.
Maybe it wouldn't be so bad for an author to click the 2 months
button, if it would actually give their patch some higher chance of
being reviewed by doing that. And given the previous insight, that
people don't look at the commitfest app that often, it might be good
if pressing this button would also bump the item in people's
mailboxes.
"David G. Johnston" <david.g.johnston@gmail.com> writes:
On Friday, May 17, 2024, Joe Conway <mail@joeconway.com> wrote:
A solution to both of these issues (yours and mine) would be to allow
things to be added *during* the CF month. What is the point of having a
"freeze" before every CF anyway? Especially if they start out clean. If
something is ready for review on day 8 of the CF, why not let it be added
for review?
In conjunction with WIP removing this limitation on the bimonthlies makes
sense to me.
I think that the original motivation for this was two-fold:
1. A notion of fairness, that you shouldn't get your patch reviewed
ahead of others that have been waiting (much?) longer. I'm not sure
how much this is really worth. In particular, even if we do delay
an incoming patch by one CF, it's still going to compete with the
older stuff in future CFs. There's already a sort feature in the CF
dashboard whereby patches that have lingered for more CFs appear ahead
of patches that are newer, so maybe just ensuring that late-arriving
patches sort as "been around for 0 CFs" is sufficient.
2. As I mentioned a bit ago, the original idea was that we didn't exit
a CF until it was empty of un-handled patches, so obviously allowing
new patches to come in would mean we'd never get to empty. That idea
didn't work and we don't think that way anymore.
So yeah, I'm okay with abandoning the must-submit-to-a-future-CF
restriction.
regards, tom lane
On Fri, May 17, 2024 at 7:11 AM Tomas Vondra <tomas.vondra@enterprisedb.com>
wrote:
It does seem to me a part of the solution needs to be helping to get
those patches reviewed. I don't know how to do that, but perhaps there's
a way to encourage people to review more stuff, or review stuff from a
wider range of contributors. Say by treating reviews more like proper
contributions.
This is a huge problem. I've been in the situation before where I had some
cycles to do a review, but actually finding one to review is
super-difficult. You simply cannot tell without clicking on the link and
wading through the email thread. Granted, it's easy as an
occasional reviewer to simply disregard potential patches if the email
thread is over a certain size, but it's still a lot of work. Having some
sort of summary/status field would be great, even if not everything was
labelled. It would also be nice if simpler patches were NOT picked up by
experienced hackers, as we want to encourage new/inexperienced people, and
having some "easy to review" patches available will help people gain
confidence and grow.
Long time ago there was a "rule" that people submitting patches are
expected to do reviews. Perhaps we should be more strict this.
Big -1. How would we even be more strict about this? Public shaming?
Withholding a commit?
Cheers,
Greg
On Fri, 2024-05-17 at 13:12 -0400, Greg Sabino Mullane wrote:
Long time ago there was a "rule" that people submitting patches are expected
to do reviews. Perhaps we should be more strict this.Big -1. How would we even be more strict about this? Public shaming? Withholding a commit?
I think it is a good rule. I don't think that it shouldn't lead to putting
people on the pillory or kicking their patches, but I imagine that a committer
looking for somebody else's patch to work on could prefer patches by people
who are doing their share of reviews.
Yours,
Laurenz Albe
On Fri, May 17, 2024 at 3:51 PM Laurenz Albe <laurenz.albe@cybertec.at> wrote:
On Fri, 2024-05-17 at 13:12 -0400, Greg Sabino Mullane wrote:
Long time ago there was a "rule" that people submitting patches are expected
to do reviews. Perhaps we should be more strict this.Big -1. How would we even be more strict about this? Public shaming? Withholding a commit?
I think it is a good rule. I don't think that it shouldn't lead to putting
people on the pillory or kicking their patches, but I imagine that a committer
looking for somebody else's patch to work on could prefer patches by people
who are doing their share of reviews.
If you give me an automated way to find that out, I'll consider paying
some attention to it. However, in order to sort the list of patches
needing review by the amount of review done by the patch author, we'd
first need to have a list of patches needing review.
And right now we don't, or at least not in any usable way.
commitfest.postgresql.org is supposed to give us that, but it doesn't.
--
Robert Haas
EDB: http://www.enterprisedb.com
On 5/17/24 21:59, Robert Haas wrote:
On Fri, May 17, 2024 at 3:51 PM Laurenz Albe <laurenz.albe@cybertec.at> wrote:
On Fri, 2024-05-17 at 13:12 -0400, Greg Sabino Mullane wrote:
Long time ago there was a "rule" that people submitting patches are expected
to do reviews. Perhaps we should be more strict this.Big -1. How would we even be more strict about this? Public shaming? Withholding a commit?
I think it is a good rule. I don't think that it shouldn't lead to putting
people on the pillory or kicking their patches, but I imagine that a committer
looking for somebody else's patch to work on could prefer patches by people
who are doing their share of reviews.
Yeah, I don't have any particular idea how should the rule be "enforced"
and I certainly did not imagine public shaming or anything like that. My
thoughts were more about reminding people the reviews are part of the
deal, that's it ... maybe "more strict" was not quite what I meant.
If you give me an automated way to find that out, I'll consider paying
some attention to it. However, in order to sort the list of patches
needing review by the amount of review done by the patch author, we'd
first need to have a list of patches needing review.And right now we don't, or at least not in any usable way.
commitfest.postgresql.org is supposed to give us that, but it doesn't.
It'd certainly help to know which patches to consider for review, but I
guess I'd still look at patches from people doing more reviews first,
even if I had to find out in what shape the patch is.
I'm far more skeptical about "automated way" to track this, though. I'm
not sure it's quite possible - reviews can have a lot of very different
forms, and deciding what is or is not a review is pretty subjective. So
it's not clear how would we quantify that. Not to mention I'm sure we'd
promptly find ways to game that.
regards
--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
On Fri, May 17, 2024 at 9:29 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
"David G. Johnston" <david.g.johnston@gmail.com> writes:
On Friday, May 17, 2024, Joe Conway <mail@joeconway.com> wrote:
A solution to both of these issues (yours and mine) would be to allow
things to be added *during* the CF month. What is the point of having a
"freeze" before every CF anyway? Especially if they start out clean. If
something is ready for review on day 8 of the CF, why not let it beadded
for review?
In conjunction with WIP removing this limitation on the bimonthlies makes
sense to me.2. As I mentioned a bit ago, the original idea was that we didn't exit
a CF until it was empty of un-handled patches, so obviously allowing
new patches to come in would mean we'd never get to empty. That idea
didn't work and we don't think that way anymore.So yeah, I'm okay with abandoning the must-submit-to-a-future-CF
restriction.
Concretely I'm thinking of modifying our patch flow state diagram to this:
stateDiagram-v2
state "Work In Process (Not Timeboxed)" as WIP {
[*] --> CollaboratorsNeeded : Functional but\nFeedback Needed
[*] --> NeedsReview : Simple Enough for\nSign-Off and Send
[*] --> ReworkInProgress : via Returned With Feedback
CollaboratorsNeeded --> NeedsReview : Collaboration Done\nReady for
Sign-Off
CollaboratorsNeeded --> WaitingOnAuthor : Feedback Given\nBack with
Authors
ReworkInProgress --> ReworkCompleted : Rework Ready\nfor Inspection
ReworkCompleted --> ReworkInProgress : More Changes Needed
ReworkCompleted --> ReadyForCommitter : Requested Rework Confirmed\nTry
Again to Commit
NeedsReview --> ReadyForCommitter : Reviewer and Author\nDeem
Submission Worthy
NeedsReview --> WaitingOnAuthor : Changes Needed
WaitingOnAuthor --> NeedsReview : Changes Made
WaitingOnAuthor --> CollaboratorsNeeded : Need Help Making Changes
WaitingOnAuthor --> Withdrawn : Not Going to Make Changes
Withdrawn --> [*]
}
state "Bi-Monthly Timeboxing" as BIM {
[*] --> CommitPending : Simple Committer Patch
CommitPending --> Committed : Done!
CommitPending --> ChangesNeeded : Minor Feedback Given
CommitPending --> ReturnedWithFeedback : Really should have been WIP
first
ReadyForCommitter --> ChangesNeeded : Able to be fixed\nwithin the
current cycle
ReadyForCommitter --> Committed : Done!
ReadyForCommitter --> ReturnedWithFeedback : Not doable in the current
cycle\nSuitable for rejections as well
ChangesNeeded --> ReadyForCommitter
Committed --> [*]
ReturnedWithFeedback --> [*]
}
This allows for usage of WIP as a collaboration area with the side benefit
of CI.
Patches that have gotten commit cycle feedback don't get lumped back into
Needs Review
There is a short-term parking spot for committer-reviewed patches that just
cannot be pushed at the moment. That should be low volume enough to cover
both quick-fixes and freeze-driven waits.
Collaboration Needed should include a description of what kind of feedback
or help is sought. Even if that is just "first timer seeking guidance".
The above details 5 new categories:
Collaborators Needed - Specialized Needs Review for truly WIP work
Rework Completed - Specialized Needs Review to ensure that patches that got
into the bi-monthly once get priority for getting committed
Commit Pending - Specialized Needs Review for easily fast-tracked patches;
and a parking lot for frozen out patches
Rework in Progress - Parking lot for patches already through the bi-monthly
and currently being reworked most likely for the next bi-monthly
Changes Needed - Specialized Waiting on Author but the expected time period
or effort to perform the changes is low; or the patch is just a high
priority one that deserves to remain in the bi-monthly in order to keep
attention on it. When the author is done the committer is waiting for the
revisions and so it goes right back into ReadyForCommitter.
I removed Rejected here but it could be kept. It seems reasonably rolled
into Returned with Feedback and we shouldn't be rejecting without feedback
anyway. Not enough rejection volume to warrant its own category.
David J.
[image: image.png]
[image: image.png]
Attachments:
image.pngimage/png; name=image.pngDownload
�PNG
IHDR � � q�E IDATx�}i�E�v����~��Z��rAdQQ@��$� �"^/��� d�{e�ZU�o��w��C�����[��]ODFfDd�<y�������p���dfd��'��'��?��oF
�Q� 1@� 1@� 1@U���tc|j�����`�Q�Q� 1@� 1@� 1@��@��#����L�c9r��������M{���O���L�e@� 1@� 1@� 1P
�1f���sb����c��� ��n;)&�Y)~~�M���b� �b� �b� J��y�����^���g=���!$�\� �b� �b� �b����[n��_Evx|�.Wn�b� �b� �b� *��[���������2�
�L��\�!�b� �b� �b�{10w�nq��Hv9�w�����@�XpL���O�����G{��m����,v������������������-�>�m��������U�0�b�H��d������kc������wfZ�6������#�Ay�@E1@�[���AoqH<P��c D���a"�����2�O�����.���F�0���� ���+[C2��06j[�c ���Y7���pJ�Qn� 1PV���p�&Ye3�MEL!"�"A����`�o�����L��1������5���'�b��0@�K�w�9 +�����s���]z���(L$����F�3����e�����������V�=�����Y�g�Y����C�m��jS4����5�P�=~[|�/�~Y���\��+��z�������/�&�s�m?~o����1>�w��������T�����]�;��el��&�
�>��C����_�/1@������O@�>nb��:\�e����$�U�se� ���T��Z�lI]�xj�7�_����.����z)r���7)R�_����n.���&��������� n\���g��.G�-���5���2�u��w������W���l�Sw�,���<����i�N.P� 1@����:�v��g9(�b��1��%��O�n�I$!� B�$��J�2b���"�QI]�+D(e}2��c�w�=.u���[������!T7�&���6��n�k��~�{�l�GJ#������|���Y���l�eq�{�4�wY��xWp=�w���2����9K�b�h
$�LS��$�0b�h��Bgufe�<y�I����.���x=�$H�"�.D��d0D�\�
��g�~�x ���I��n���?Ly�gu���Cv
���V�7�W����Q�z�(W�&����O���W?��xQ>�1@� �%�%�%�b ]4Mv��O�}A����pfI�|o��]�IS@����,%�����P�u��������Hw���������$�I�
U�bC�AZ�G����y����q��8Mw�R��'1@tHv���#';l71@d����z��!=%����j2�|���K�d�FR+�\�����:�9!I������7�J�f<���'����'
c�j��+��Bm�<��h�W���O\����f��c���w�m�"�!,d�S�KH�@�1@�K�W��8����9��u������Fd7|}������C�$��Cv�0�k���gq�"�F�c���r$)���F�~r�s�� ������I���Qg7�Y���������~[��L��y�m��O���������@���C���[.8��9? �b�� �%�KbNzH��b�0�������4gc$��A�IL��ps��(/b�P �% HwN��b������/
�<���������2���:� ���]NFNF�X��
�
���E��V��&���m���~�9���/$���S��:� ���]*pN��b� �b� �b��|�{�#���v3�(b� �b� �b� ���c�����q�/?{�������1@� 1@� 1@�@�1����xt�V���s���n���1@� 1@� 1@�@�1�d�Q�]�|.r� 1@� 1@� 1P-��r���+6TJ�RJ�O�'1@� 1@�@ �%�%�%�b� �b� �b�r �%�+�4V�XW�b� �b� ��rc�d�d�d� �b� �b� ���a�d�����W�8��� �b� �b
������� 1@� 1@� 1P9����u�@,���� 1@� 1@�@�1@�K�K�K� 1@� 1@�@�0@�KPW�\�+�
���G� 1@� 1�HvIvIv�b� �b� �b��Hv ���:�U ���Db� �b� �b�� �%�%�%�b� �b� �b�r �%�+j���{����#�b� �b�H$�$�$�� 1@� 1@� 1@T$�u�@��*��j"1@� 1@d���+W���!�����������?��?�s����s�r~�9:1�HvSb������� 1@� 1P>\��������)�����K�?�~��!�����61@��� ix�cx���Kb� �b�����BW]����������$;��m`�d�
����]b� �b� ����;w��������F}���|�r�����1@����ht�ct���Kb� �b�����������.p�V#��|�h$�-
./������ 1@� 1P
<������]�]x����N�����0@����hp�ap���Gb� �b��k��I�����<e�����0@�����T�|�01@� 1@����+�����4����D���'����h$�-�����~$�b� ��<10u�TO���&�DV�<��wqLT $�$�T�� 1@� 1@9a��~h��?~�}�S�T���-j��d���
� �b� �b ',^�8�w��������oH���&����%�b� �b����mk��Y��-[�~��_HvIv9�8��b� �b� ��61�z�j�������?��?$ �����SO=E�)c�����f���]"*Rb� �b� ��a`��Eb���������[o�E���~h�D��ri�](7b� �b� ��b�������ct�H^�A^��'�]**Vb� �b� ��b�d��D�Yb�����n�>�)S�� �b� ���]b�l�-K}IvIv��K� 1@� 1�A������<���$�Tle�KEL� 1@�@� �M_��)e
����r%� �b� �b�� �%1#9�$�Tlu6��\)Wb� �b�(Hv��2��Lu%�%��J.1@� 1@�@1@�K�[&Y����vP�� (�+�01@� 1@�`����������@� �MY�4���r%�b� ���b��]b����t�HvIv��D� 1@� 1�A����v�V��$�TlU�E�M� 1@�@r��&�qEY5��]�]��� 1@� 1@t$�$p�8��/$�Tljr�RV�1@� 1@T$��vU���v����r%� �b� �b�� �%��4)���Iv;���
*��
� �b� ��� �M.+���j$�$�\�%�b� �b�� �O�.>��3�A���{�C�Iv9��X�b� �b� :�zv�C�Ht��W$�Tl,�,�/�1@� 1@d��]�*\����.�.Wr�b� �b� :��]�]�l0@��A�FPgj��r%�b� ��2a�d�x-^�TW�]�]��� 1@� 1@t$�$�e"�e�+�n[����R � 1@� 1�
Hv��+�J�����r%� �b� �b�� �%)#1�$�Tlu6��\)Wb� �b�(Hv��2��Lu%�%��J.1@� 1@�@1@�K�[&Y����vP�� (�+�01@� 1@�`�d7���+�.�.Wr�b� �b� :��]�2�l0@��A�FPgj��r%�b� ��2a�d�x-^�TW�]�]��� 1@� 1@t��OG�et��D�X���#$�TT�� 1@� 1@� =����e�Hv;����(���M� 1@�@51@�[�~�x�|�����r%� �b� �b�� ��<)"1�f��vP�qPUsP�_��� 1@� 1�Hv��f��{���d�d�+�� 1@� 1@� �nr�B�GY5���*�f:��r`� 1@� 1PM��V�_9^;��$�$�\�%�b� �b�� Hv;O�HL��$�TlT�T�W�+1@� 1@4��]������x!�%��J.1@� 1@�@1@������QV�`�d���������� 1@� 1@T$���W����+�.�.Wr�b� �b� :�����"�j��nU5���J� 1@�`�d�xi/�79^HvIv��K� 1@� 1�AL�:U\�p�}��> �LN �$+�]**Vb� �b� ��b���j�2�����d������b����b� �b�H�����"�(�f0@�K���\b� �b� ��b�d���{���d����@MT���"�b� ���b�d���*�;�.�]�]��� 1@� 1�~��_�5'�{��G����rk;�&T|q+Hvi�R3n�����
1@�@^������a����n��V�d��� �i��r�-������ �.�QyE��0b� �b�: �m����6/3�����,�?�.�.�.1@� 1@�a�d�y�F����HvIv��d�]���[��*&b� �b�� �m����6/3��j�����.�.�.1@� 1@�a�d�y�F����HvIv�b�]���[��*&b� �b��Pd�W�j���
�^�|�o@�j�w�{J���5Q��/��Y�,��M��N�41���,���g(�6��O����MG�u���/�jC��'�LPUm}��� �%�%�%�b� �b 5�|�,��&j��^v�^1`��������C{���{����0��K������o o�~� fE��5e$ x�E��$HvS�����=O�K���C� 1@�@j���-b���jL4�&R!���t���m=T�;,����M�QL�����G�Ivi�R3nq@�5*"b� �b�;0p���Us�'Ty���W��>#,����:�Y�!I�U��E����L���(�n����l�m����B���|��D��������a��~a��4�����|���.�w�Y�w���3fx�z������5���� ���u]qo�Z���������e�C�Iv�C��j?HvIvIv�b� �b�H
r�n���Q���(R�?|^�"G�uMt$���
�,�(�}��@�#�$��������Cx=���}|���S�+�\M�~p�
�����j�s�N��~�Ny��^�>a�~��&�Y���um(fA }�SH�N=��gW~ �Q���G�-A��IvIv��0�.�[j�-h�FED� 1@t�l����S�U����������f�=�H)R���ibA�$����d�|��?���_@�<��E������{����f���~��QdW�fJ�.�~���'�/���'� �����1�W�vE�g���zk��v�^i�~������� 1@� 1�L���"P���dV�Mn������i5�z5��"eV��"_���������=��T��a�&YU�c�U WN��S���M��#�������k������a�]���[�x��� �b�������s��&-�����]��i)�x��-�]���D�z�����������r�6z�u��k��������^S���]� ��Z{�#d�qC��z�U�A�K�K�K� 1@�@jPGa���P�����������d��s�=o��0ymt��G�}�0�n�M�A�� v�d�}<!�������h���K:5��
�V�V{i�����!?��O�}y���~2C��~"�Mm|�J���.�1@� 1@�a������k&� �Y����<�� r�y�_v�^Q��dJ� |�n�O�494?u�3C{z��}�{]a\����6 ����=��;U��Q#QX�����������f]u��������e9}�e����|��~
=����K�n'��qK��������b� ����@8�Y�t>]rl��t��w���zk�����i��d�;�J���d�d�d� �b� ���0@��<�$�m^f�,�����a�]���[�x��� �b����6O�Hv���nw��v��.�.�.1@� 1@�a k��IN�>IvIv�%u|>�������f�8���B�� 1@tHv�'n$���L/v0���5N�������� 1@� 1�Hv�'n��,���3�IvIv��gVn#F�HM�����Jb� �b� ����������`��1�����[���.��.I�_}�������k������G���;�o�!^x�������~X` ��R�A@� 1@� 1@
���8w����� R��Ov��]&�Bb�����'���#G$�z�������o/���x�����Y���>(���.vR��DC�� 1@� 1@�� �nu�����}"��:{
&M�$�|�I�t�R��+����~[���_�:uJ\�~]|��g���?���b��Ub��yb��i��{�%&&�b� �b� <��v�5�?�^��i��&���zH��1C����5k��-[��]�v�c������J|�����/�{��o���x����������?.��/���*?@b� �b� ���� �ny�Tn�{:�����Fz��w���'���g�����W_}U������O?�O�CCCr������| 6m�$��y���O��S��Q�Fu��k$G^�����){b� �b�H$��RZXb96�:Bv�t���c���>*���]�V����b���������K���+����2s��z��SO=%�L�BB��`.�� 1@� 1P
���% W�=�Y��6��=��#���
k���;dh���.._�,���L���_���;���^��g�yF&�����J� ���9��b� �b�(/Hv��ww������$�!F2-d�������K1����7n�g��:d�-a�1��9s��C���q,��!1@� 1@$��fQ�Y�zU��&�$�7n���?�<n �{�<(�#�4�F�-�R#�4�j-Y�Df���c�$��=Tf� 1@� 1@&Hv��?=<t=�M
&�<O�>]&�����7�#�p�02K#�4�����j�X�X�B��;W��3������r���$�b� ��"c sLD����P1@��b���#G�,�8������I��<�`x�/^�(�]�&������<���^�*#!�<���R��2J���� �b��.���]����_���L������=������}}}24���CrUG/}�������b�����b3l�����^����wTL�)&���&�b��&������<�����[����'�xBf9��cb��
<������3��!FFid���K_}���%I�>���7�u���{�I�;�yb���L� 1@�$���?�����Ov?������������W�^��P��9#��{�������4�\[���]'{� IDAT���i��i2w���8��q>|��#k4��W�Z%6m���o����8�>��+��c��o�b� ���]b�(X�Z=|�;u��H��,��V������p�BIr_y�Iz�� ��'����I�������'���� �@�-Z$f��-=����g&���W)F�������c��z�)AO1q� �CL� 1@$��apX�:4$��4�j�������g����r�Jy\Bm���g���>}Zz������>����O?}����m��z�N8�g��9b��b�� b��Q�������`4)F�,�)��#����k��>")���x"�b� ���0@�����/�+)2!�I_n�w��wJr����?.�}�Y�|�r�~�z�so�~�m��'�������Aq��%�DN8����L�]�v�����P�_|QfD��W��I�&���G��o��$�MO2�r�#o��$��$�TL�����1@� 1�0@������
Cv[�`W�];y�d�}����K�.�^��_]�u�N �H���<00 ��@8���W�c]�l�,���|�;������)F".��pwD�Z���FqP��+1@� 1�Hv��%qIY�(5�5���8����L��;W�����^{M�N���R�����7n���/�S�N�#G��l�b�S�D]��������f-�3w��S7�E�6
o>����G1�#��?^~,R�� $J�qN�W�3�fy��T�� 1@�@�0@�[����*Ou%�m� ��8����mD�-d���a�L���l� � � � �:����?���"#<a����{z���Y�<�����~��mx~q�����2������C�;����H��������X��a�����['|��$�b� �� �%��G�5/;��2�� �n��q5���a�0������OK/2nm��Q����q�����G?�8qBz�A�p�.���{���C����|w����wK//d���X�@6p���W�������srA����R�02H��xx����B�� ��H�}L��� 1@d�zv��-q���%�����:���7u�T?Y�#�����Pkx2j
�1�Y����DF0���G>�^�Zz���3Z#���:V�9,H@�����%�I���������}��1�R���X��gz$B{��G�Y��j]%��-�m$���b� �� �n�2&��S�$�$��F�L��G>����w�}72�5�B~A����}���qd����e����exM[�c���"���$C[�b��y� � �8:�y�b$C�B�2H3�3���,A�A��,��;����N�@� �M_��)e
��V���2�j�v����BO0�~��~Xx���&<� t�(����O3F���(<�FVk;�u�����)B�g��%���u� ���H��pj�
H���[�?+F�r����ne|��� ��r`�d����T�~"��r��������@���N$���{��m�&C!�5�#����W�������}� �H6��v�$��!$��rve, �;Vz���[��#�a,(�S|���1��I���x[w|�}M�@50 ��9���(��{p�������{�c��H�K����~V(t�{]�!$M�#iH�N��z�<�g�Fx0�,#���������W��'$!KJ�� I��c�`4!gz��U�4j�71@�@��
��kp�1��C�����'qD4��]�]_�y ��ddXFfkx��p��[��pkd���8}���r���mI���dd\��$#K3�.�8)�Zc�
!�Q����8�z�51���G���l!x��L�R ���[��2���b����C^����7�{����6��c�( �%���2�9���OF�ed^������H�544$30#qO���G����xn��UVv��'��`tQw�z@F������u(�&��C&��1�o��%��#V�b��1���Z�&N�<)����?��!��,����]���������$����p�<�H�O0<��7o��w����c<00 WaA�/_�,N�:%Wf�#��-]�d��Lcg�b�sY2\Gc���G5����i|"$����s����f�d����9�4fI�%�!N�b��������V��l�o'0@�K�K��2F�)�ga�8f�<
��?��cq��!y�/�Z��"�M�'�!�,��G2�V}��]��"yW�I�=G�1��k���!��<�0��B�-{��#��m�����X�F4,L�0�� �:a�NN>�b��,�wW�]�2�O:�'�u�O��2��������/A\q�/�!���M8� !�0�:y��#�1P��dh}V2��6l�C�����t�5��y�1�}�+
O7��B�1x������m�����l��c� �l��Q����&��8���AE� ��@va��V7����� �%��R-9@Z�G$�O}V2�����k�`��o*�#H3�3H4<� �0��y� � � �E8
G6���#Y�F[q.�ydB�NMC����k�=�����;����,�����;+56{�I����P�6a���{��vZ �-��N�3YC� qAFX4�.��?_�
ko�>/�<
�de�_#�{�����Y���M�b �E���h*N����������Y�:�mb8u���Qc'�g7����X�������C���C���op"��9��y���})����/%����o����T��?�G�l?.�?2������ya�'�%��|���1��Rc���a� � � ��W���\���pc$��x��<
d��&9rDz�q�r��:���@�N���x�����F;�^�*�Y�
h�����^e�l�m�a���Z��N�)'g�f-?��&�Q���[n���M,�~��:G����b��#��#����b��{&���^��]����x��}n�=$�1�+�MF8��&#�x�����$�d}f22<G�M��_�,3=>\&
C22~����Dd��P#���<( ?�q�����8a��FX6��9�X���,���yQ`b�Is1'�E��GW����l�U��e,�]�I������c��P���r!��1�8^8��$�\��K����� -��MN�7^X��L�HlO,�C�DV������S�L� ���uGb-|$�BO�>-�Rc?5��oqI�x�qzc��G���r2]��t'��_������u���E[?#���Y��9u�z���w�>�j�/Iv ��A���6��I{2�{��L�/���@�4B���
�X�����Hn�#�e�g���{��c��)�<7y���b���2d�v��]?o�3�<S7 �w�p��/3���:�����N]K3�{UL�Y��t�'�� ��>8'F�����oWgT����~'~�?�7�g����c���p��{���].W�U��}��Des���������<���={�X�p���������SF�2H��k���H8C��pv0��bOooo�]F���M�5jTK������S�ZI��UI���$�8�n�t��#��u���d�O�>ed�F8�^�~k���/�$&=�'�%�Lw��.}���w���+���v�[���M���g���c&��o�X!��$�\��k����j���'�G;v�$� �����^�5k�����[�Z�d�!�L�����H|�w�^����7����yxkQ���{���2E�6<��(���d�9GFjx��y��S������d
������ �_�Y��N������� |F�G��}���e��|l�n��'�n>c%��u�o$�$����nl;�q'1`z�z����^�r���31<� ����~��7�k�2<��4c�/<��@�GB�C
O5/��8��^��"���xn��%������� �� ����H��w�P�X�`���8�$gF���()��$���L�BV�}�d7�A�[��I���Xqm[�'�%�
M��}P��T�e� �)���w��AN��{��l�"���~��g2���d�Q�^e�;c�2<�o��fxq�.]jy���7*k�>� ^g��&t�N#����Fh5��Pksx^����M ��g}�����f�$���_�j5�.�Y���O��%��<O���� �-��$��g��v���&HvIvIv�b������\d��7�p��u2ly����7$�AX�7Dv���������{�A\���+�#���t��I���K���b8� {�qt�x!���Q$\|\���� /�>~�u���O�[!��>C����d����d7����?��Iv9�%�!�b�e��d�Y�Z����JHzB�3����^`�W�<�,�4� ���Y���� � �En�����WK��.�@x�Q&�-�d�]����$��L�Iv�?>Iv�+$���Iv9�my���d&��� �� ��"�=
G&�|"���;���3g����7nxy�9� � �����W�+��P�
6H�
�0B�5�����~�l�%���
QM�����}�z�d�d�U���|�hQ�L�K�K�K�@�0��Z�G�'N��^�#�Pi��dX�F�,�T��d�\ko2�����?���������/�5 �[���~6��l��(��G���X���F�����mmN��]���MOY��bgC��)�����3�NFv{�����A.�����V����=�:c����?�6,8&~��W��m�Qg�����X)*��T�Hv9�-�$�S����&������_����o��G�JDv�����fDx�%��&��'��D�����K�.���]b�����u!��G74&�Dm�1q����T���w�!��h�$L}�wI�b.r��/�z��r�<�d�:���|1�L9�� �S��&�lC�x�nx2- �O��(�=�U�J���&�E�����d���Fd7����q��$���
����������<���-����<�d�d�������m�� Z� �o���JJe�2
���o�hzm�ky=/�&-=<���`r����{�rm��?��d�'�z%%�����M�M�~{�*S�|p�e�S�����"��L�E����Cb��h�O�M�����(����Ozv[���K�<�}Nn1�T���81� �����F���&U����U��������=����?��:�q��}���e��������+�����!��g�$O�t�.�.�.1@�� �����e�[!�rb�M��$R�/L������Z$��xc=RgL��I��pd��7�If����
o������� �z���z��3qMT�Q���+���R�yo����7�\��\�����.%��s�=���WQ2���� �n>�X���k����!�v�)��s
������W�I_��o�������Q�j�[�N?��s}]�t�#sO�U�3��1d�^�^��|�J�}���Hv9���$��8�N�B�g7NI��������D�#Cr��'�A���('��$4D�Lr{���X�X��x��uMMR��_�� ����&�V�Q~�r��GO����i�+��<"�5�2p&������f_E�$j���Hv�17����.�UD�c���B��I7�������U�*��!���Z������7�Bu����/�,����&�����B���J�x!��g��;���<�.�n���j�g{�h�b���]��� ���ZDX�
��OM6�{�NR�dNN<��1!v�|&��^�[�={R*'�>qV��w9���FL��*���n��Er����w�o����R��Ov�~p�*J&v�����Sb��M*�9z�vp^X����X���mhL�d�%�(����[�W��#D~�1���n>c������IvIvIv�b� n�M4Gv���K�����L��w��"�������g��&�A�����e�%��5��&,��d�^ 0e����O���>��6��0q�������6���_�Swu�X�x4�����-�a����N����:��%��6���'��:Zu$��g�t+���n�]Nr9�%�b�h��jo�9Y���[��~�$q�Q��A&�R^5���.���(/%������g�M4������t�k/���$��P����\d�y��&��[WI
���m�2��$��g���jbg�!I��
��7�^������q��F�
���;�lc�������<��QcD�F���X�G���w�]Nr9�%�b�h������|��h����k=�yMN]��l�)��oM�C�x�I��X��j���&����3����������=B���\�@�&�V�U4��r5'����w�����l%�`���6����n��$��g�����h���������q���o��]M���xc���p����f��5&#�K"��!��n
��/$����n%���M��I.'�� 1@���=q�d'�O9
[����������3�������.'��_;���d�d7m���<�]Nr9�%�b�( ��^�[J��yrC�n>x���c��7�GA4F�o����3&�=�s� ��$��\b� ����]����.��'�w����3�'��������q�.�g���g����r&��$��\b� �����:a��d���'$���2��6�n��N[����3V��e-�d��\Nr�b� Hv��SiOp�^�n6�1c���{L,_�\�����c5q�/~A��x��d7��RV�W�Iv9��$� �b�d�$�EA���~�������k��;v��_}���x��8x����}�x����G�/�n�-���n{c%/rX����r��I.1@]����G��3g���{Nl��Il?x^Lz����O������6���9R<��#b������^;w�����q���w����b��e����;�f3��]L�{��G1AUH�8� 1@Tw�q��<y�x��g��u�,���K�� �$\[�y7�.�n��$���7n�x�����U����[����������_-�9"�}�]��K/������S�����+�<�d�d��9k�ErY��K�NbC���|`QV�1�/���>��O����)��hhhH|��b��]���_K�.���(����7����6Ov�;-�7�kl�����C=$zzz��/�,��}q��1��7��s���}���-[����^<�����HE6$�$���������d�d7#T��vP�����d�+��;��#>��3������}�8i�$q���'�q�.yYL[�r�d'��Y��X��U_���>�@F��=[`����mx����R__���g�8}���v��8q��l�+��"-Z$~�aq�=�d�������q|�xAj��GD��3�I������d�d�J� ��Ba ��Y�f��+W
=�>u���~��8y���������%K��G}T�{������'��'9�.�d:���a��]�=����C� <�H�/'"@�}�Y������4'�f�?D������������~*�z�-��/�9s�t�
=��b����%�3V��G�l(�8HsL����j�2%��$�J� ���1p��w�i����
6���{O=zT\�rE��s'�&L���K��<���O��$�s_�X<�tc$6�u��y��"������c+��9���v'rI������
�P��#�``@|���2I������nI�7}�X����~y3�g ���c&�u��Z�y��\0�W��x�4�>!��$�J� ���0`&��>>x�0��z��8~���������*.\�K(d##z��qa��.C�r�������Q��_�����)�g�!1��]M�d �>VxQ���c�TxPq���3B�a5�:�����������_���/����#H8���UNQ{t��b��o��!����Oy��b���b���>�t��V�q�z5G�Iv9���!�b�-�X����
�D�x[3a
2�� �X?��
�b���8U�{��������������?VBv�����X���x�����Q(U�N IDAT��"���E�b��}��^���k:\��b���r�!��+������9#���+6o�,V�X!�����S�gQ�,<�i�^�o��g�r�V��l8��b��? |F���=��9��#�_)e<���/�.'�T>� 1@$� B�Af��H+��c� #�Y��eL�i���d/���j�/�wE��pY�;����!���:$=���+��s�cO;�"0��5�\��ZT�`O7r�~���������e��m���=����j��d����*�28�����������s�N�
���$
�l$�B��c�R����_@r5���H��7�F�3W�~oY��0�)S��V����3���"�������E6r,$ ;2���G��8��'R�����l�2I�W�������/�(D���E�X��<�d�d
� ��2�L���0 ����j<&#�)��=8���`o����ItZ�C��i�o���{"����O5�����AH.�em�me�L�36��@��"A���5*����4w�\9^�D�_���gF����mn�����C�<S�{ql�����/�M�����g���5�.�.�1@T�=��cb���r"���fVx�z{{eRLL�p6h����B������i^��N�{G���w��N��m���b����3�E$$�B�1��Ar*��m��f���}�k���W�����������9S`�p3���l����<�U�/J��F�r8���~��6e3>��+�nE'����s��_�/Q�^Zxv����=�7��;v��XY/c��6���� /�
��iFl������G����{���Nz��D?�c��M5��P���q"��#�<"=@��������efh�pd�3fL%�)�>��,���~O��G�<��MH\�x�bF��d�{�]�,s�uZ�����b������xo��K��'��d6XA�7��r�kV�!�8� �����OoV�kT.<� �X�itoQ������d�I��3iq6-"���K� ;�fY��� A&u$�����e�+�h,���L�Y��P!�_��(Z�X,��?�
��E�#�S
;J�K�K�B� �@ '�
a��y.��c������{i�a���P�c�I�.$dW��'�.��c1�Su�z�< =�H������I8����c�M�e�qT�:�0��"�:���Pl�#&�J_� ��S�:�1�^�?DH`����'e�}3{�u9�L�U�)�n�&�U�A�C�c !�'��d��ur2
���$&�:+��!+�*��$��`�g����A\:��*�_�P�d5Q���
I�0�p��F��ZL�Ah��;'I��o�)'�Xlb�� S�_��9s�H�!��CgA_�+�0d���gX��d�E�����-����� l�����v�3�xiVV$�$�T$� 1��9�A���]�vY ��1�X.����*q����,�l�9E6�(�Q$������,�{�=�H�5��9��XD�1�Im{�:�|�����F����Td���L�Ip���� ������"