PostgreSQL 17 Release Management Team & Feature Freeze

Started by Michael Paquieralmost 2 years ago41 messages
#1Michael Paquier
michael@paquier.xyz

Hi,

We are pleased to announce the Release Management Team (RMT) (cc'd)
for the PostgreSQL 17 release:
- Robert Haas
- Heikki Linnakangas
- Michael Paquier

You can find information about the responsibilities of the RMT here:
https://wiki.postgresql.org/wiki/Release_Management_Team

Additionally, the RMT has set the feature freeze to be **April 8, 2024
at 0:00 AoE** (see [1]https://en.wikipedia.org/wiki/Anywhere_on_Earth). This is the last time to commit features for
PostgreSQL 17. In other words, no new PostgreSQL 17 feature can be
committed after April 8, 2024 at 0:00 AoE. As mentioned last year in
[2]: /messages/by-id/9fbe60ec-fd1b-6ee0-240d-af7fc444223d@postgresql.org -- Michael

You can track open items for the PostgreSQL 17 release here:
https://wiki.postgresql.org/wiki/PostgreSQL_17_Open_Items

Please let us know if you have any questions.

On behalf of the PG17 RMT,

Michael

[1]: https://en.wikipedia.org/wiki/Anywhere_on_Earth
[2]: /messages/by-id/9fbe60ec-fd1b-6ee0-240d-af7fc444223d@postgresql.org -- Michael
--
Michael

#2Hayato Kuroda (Fujitsu)
kuroda.hayato@fujitsu.com
In reply to: Michael Paquier (#1)
RE: PostgreSQL 17 Release Management Team & Feature Freeze

Dear Michael,

We are pleased to announce the Release Management Team (RMT) (cc'd)
for the PostgreSQL 17 release:
- Robert Haas
- Heikki Linnakangas
- Michael Paquier

Thanks for managing the release of PostgreSQL to proceed the right direction!

You can track open items for the PostgreSQL 17 release here:
https://wiki.postgresql.org/wiki/PostgreSQL_17_Open_Items

I think the entry can be closed:

```
pg_upgrade with --link mode failing upgrade of publishers
Commit: 29d0a77fa660
Owner: Amit Kapila
```

The reported failure was only related with the test script, not the feature.
The issue has already been analyzed and the fix patch was pushed as f17529b710.

Best Regards,
Hayato Kuroda
FUJITSU LIMITED
https://www.fujitsu.com/

#3Michael Paquier
michael@paquier.xyz
In reply to: Hayato Kuroda (Fujitsu) (#2)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, Mar 18, 2024 at 03:49:24AM +0000, Hayato Kuroda (Fujitsu) wrote:

I think the entry can be closed:

```
pg_upgrade with --link mode failing upgrade of publishers
Commit: 29d0a77fa660
Owner: Amit Kapila
```

The reported failure was only related with the test script, not the feature.
The issue has already been analyzed and the fix patch was pushed as f17529b710.

If you think that this is OK, and as far as I can see this looks OK on
the thread, then this open item should be moved under "resolved before
17beta1", mentioning the commit involved in the fix. Please see [1]https://wiki.postgresql.org/wiki/PostgreSQL_16_Open_Items#resolved_before_16beta1 -- Michael
for examples.

[1]: https://wiki.postgresql.org/wiki/PostgreSQL_16_Open_Items#resolved_before_16beta1 -- Michael
--
Michael

#4Hayato Kuroda (Fujitsu)
kuroda.hayato@fujitsu.com
In reply to: Michael Paquier (#3)
RE: PostgreSQL 17 Release Management Team & Feature Freeze

Dear Michael,

If you think that this is OK, and as far as I can see this looks OK on
the thread, then this open item should be moved under "resolved before
17beta1", mentioning the commit involved in the fix. Please see [1]
for examples.

OK, I understood that I could wait checking from you. Thanks.

Best Regards,
Hayato Kuroda
FUJITSU LIMITED
https://www.fujitsu.com/

#5Amit Kapila
amit.kapila16@gmail.com
In reply to: Hayato Kuroda (Fujitsu) (#4)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, Mar 18, 2024 at 12:39 PM Hayato Kuroda (Fujitsu)
<kuroda.hayato@fujitsu.com> wrote:

If you think that this is OK, and as far as I can see this looks OK on
the thread, then this open item should be moved under "resolved before
17beta1", mentioning the commit involved in the fix. Please see [1]
for examples.

OK, I understood that I could wait checking from you. Thanks.

I don't think there is a need to wait here. The issue being tracked
was fixed, so I have updated the open items page accordingly.

--
With Regards,
Amit Kapila.

#6David Rowley
dgrowleyml@gmail.com
In reply to: Michael Paquier (#1)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, 18 Mar 2024 at 15:50, Michael Paquier <michael@paquier.xyz> wrote:

Additionally, the RMT has set the feature freeze to be **April 8, 2024
at 0:00 AoE** (see [1]). This is the last time to commit features for
PostgreSQL 17. In other words, no new PostgreSQL 17 feature can be
committed after April 8, 2024 at 0:00 AoE. As mentioned last year in
[2], this uses the "standard" feature freeze date/time.

Someone asked me about this, so thought it might be useful to post here.

To express this as UTC, It's:

postgres=# select '2024-04-08 00:00-12:00' at time zone 'UTC';
timezone
---------------------
2024-04-08 12:00:00

Or, time remaining, relative to now:

select '2024-04-08 00:00-12:00' - now();

David

Show quoted text

[1]: https://en.wikipedia.org/wiki/Anywhere_on_Earth
[2]: /messages/by-id/9fbe60ec-fd1b-6ee0-240d-af7fc444223d@postgresql.org

#7Michael Paquier
michael@paquier.xyz
In reply to: David Rowley (#6)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Thu, Apr 04, 2024 at 03:10:27PM +1300, David Rowley wrote:

Someone asked me about this, so thought it might be useful to post here.

I've received the same question.

To express this as UTC, It's:

postgres=# select '2024-04-08 00:00-12:00' at time zone 'UTC';
timezone
---------------------
2024-04-08 12:00:00

Or, time remaining, relative to now:

select '2024-04-08 00:00-12:00' - now();

And, as of the moment of typing this email, I get:
=# select '2024-04-08 00:00-12:00' - now() as time_remaining;
time_remaining
-----------------
13:10:35.688134
(1 row)

So there is just a bit more than half a day remaining before the
feature freeze is in effect.
--
Michael

#8Robert Haas
robertmhaas@gmail.com
In reply to: Michael Paquier (#7)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Sun, Apr 7, 2024 at 6:50 PM Michael Paquier <michael@paquier.xyz> wrote:

And, as of the moment of typing this email, I get:
=# select '2024-04-08 00:00-12:00' - now() as time_remaining;
time_remaining
-----------------
13:10:35.688134
(1 row)

So there is just a bit more than half a day remaining before the
feature freeze is in effect.

OK, so feature freeze is now in effect, then.

In the future, let's use GMT for these deadlines. There have got to be
a lot more people who can easily understand when a certain GMT
timestamp falls in their local timezone than there are people who can
easily understand when a certain AOE timestamp falls in their local
timezone.

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

--
Robert Haas
EDB: http://www.enterprisedb.com

#9Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#8)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

Robert Haas <robertmhaas@gmail.com> writes:

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

I was just about to pen an angry screed along the same lines.
The commit flux over the past couple days, and even the last
twelve hours, was flat-out ridiculous. These patches weren't
ready a week ago, and I doubt they were ready now.

The RMT should feel free to exercise their right to require
revert "early and often", or we are going to be shipping a
very buggy release.

regards, tom lane

#10Melanie Plageman
melanieplageman@gmail.com
In reply to: Robert Haas (#8)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, Apr 8, 2024 at 9:26 AM Robert Haas <robertmhaas@gmail.com> wrote:

On Sun, Apr 7, 2024 at 6:50 PM Michael Paquier <michael@paquier.xyz> wrote:

And, as of the moment of typing this email, I get:
=# select '2024-04-08 00:00-12:00' - now() as time_remaining;
time_remaining
-----------------
13:10:35.688134
(1 row)

So there is just a bit more than half a day remaining before the
feature freeze is in effect.

OK, so feature freeze is now in effect, then.

In the future, let's use GMT for these deadlines. There have got to be
a lot more people who can easily understand when a certain GMT
timestamp falls in their local timezone than there are people who can
easily understand when a certain AOE timestamp falls in their local
timezone.

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

What if we pick the actual feature freeze time randomly? That is,
starting on March 15th (or whenever but more than a week before), each
night someone from RMT generates a random number between $current_day
and April 8th. If the number matches $current_day, that day at
midnight is the feature freeze.

- Melanie

#11Robert Treat
rob@xzilla.net
In reply to: Melanie Plageman (#10)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, Apr 8, 2024 at 10:27 AM Melanie Plageman
<melanieplageman@gmail.com> wrote:

On Mon, Apr 8, 2024 at 9:26 AM Robert Haas <robertmhaas@gmail.com> wrote:

On Sun, Apr 7, 2024 at 6:50 PM Michael Paquier <michael@paquier.xyz> wrote:

And, as of the moment of typing this email, I get:
=# select '2024-04-08 00:00-12:00' - now() as time_remaining;
time_remaining
-----------------
13:10:35.688134
(1 row)

So there is just a bit more than half a day remaining before the
feature freeze is in effect.

OK, so feature freeze is now in effect, then.

In the future, let's use GMT for these deadlines. There have got to be
a lot more people who can easily understand when a certain GMT
timestamp falls in their local timezone than there are people who can
easily understand when a certain AOE timestamp falls in their local
timezone.

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

What if we pick the actual feature freeze time randomly? That is,
starting on March 15th (or whenever but more than a week before), each
night someone from RMT generates a random number between $current_day
and April 8th. If the number matches $current_day, that day at
midnight is the feature freeze.

Unfortunately many humans are hardwired towards procrastination and
last minute heroics (it's one reason why deadline driven development
works even though in the long run it tends to be bad practice), and
historically was one of the driving factors in why we started doing
commitfests in the first place (you should have seen the mad dash of
commits before we had that process), so ISTM that it's not completely
avoidable...

That said, are you suggesting that the feature freeze deadline be
random, and also held in secret by the RMT, only to be announced after
the freeze time has passed? This feels weird, but might apply enough
deadline related pressure while avoiding last minute shenanigans.

Robert Treat
https://xzilla.net

#12Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Robert Haas (#8)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, 2024-04-08 at 09:26 -0400, Robert Haas wrote:

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

I found that there are a lot of people who can only get going with a
pressing deadline. But that's just an observation, not an excuse.

I don't know if additional rules will achieve anything here. This can
only improve with buy-in from the committers, and that cannot be forced.

Yours,
Laurenz Albe

#13Andrey M. Borodin
x4mmm@yandex-team.ru
In reply to: Melanie Plageman (#10)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 8 Apr 2024, at 17:26, Melanie Plageman <melanieplageman@gmail.com> wrote:

What if we pick the actual feature freeze time randomly? That is,
starting on March 15th (or whenever but more than a week before), each
night someone from RMT generates a random number between $current_day
and April 8th. If the number matches $current_day, that day at
midnight is the feature freeze.

But this implies that actual date is not publicly known before feature freeze is in effect. Do I understand idea correctly?

Best regards, Andrey Borodin.

#14Heikki Linnakangas
hlinnaka@iki.fi
In reply to: Tom Lane (#9)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 08/04/2024 16:43, Tom Lane wrote:

Robert Haas <robertmhaas@gmail.com> writes:

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

I was just about to pen an angry screed along the same lines.
The commit flux over the past couple days, and even the last
twelve hours, was flat-out ridiculous. These patches weren't
ready a week ago, and I doubt they were ready now.

The RMT should feel free to exercise their right to require
revert "early and often", or we are going to be shipping a
very buggy release.

Can you elaborate, which patches you think were not ready? Let's make
sure to capture any concrete concerns in the Open Items list.

I agree the last-minute crunch felt more intense than in previous years.
I'm guilty myself; I crunched the "direct SSL" patches in. My rationale
for that one: It's been in a pretty settled state for a long time. There
hasn't been any particular concerns about the design or the
implementation. I haven't commit tit sooner because I was not
comfortable with the lack of tests, especially the libpq parts. So I
made a last minute dash to write the tests so that I'm comfortable with
it, and I restructured the commits so that the tests and refactorings
come first. The resulting code changes look the same they have for a
long time, and I didn't uncover any significant new issues while doing
that. I would not have felt comfortable committing it otherwise.

Yeah, I should have done that sooner, but realistically, there's nothing
like a looming deadline as a motivator. One idea to avoid the mad rush
in the future would be to make the feature freeze deadline more
progressive. For example:

April 1: If you are still working on a feature that you still want to
commit, you must explicitly flag it in the commitfest as "I plan to
commit this very soon".

April 4: You must give a short status update about anything that you
haven't committed yet, with an explanation of how you plan to proceed
with it.

April 5-8: Mandatory daily status updates, explicit approval by the
commitfest manager needed each day to continue working on it.

April 8: Hard feature freeze deadline

This would also give everyone more visibility, so that we're not all
surprised by the last minute flood of commits.

--
Heikki Linnakangas
Neon (https://neon.tech)

#15Melanie Plageman
melanieplageman@gmail.com
In reply to: Robert Treat (#11)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, Apr 8, 2024 at 10:41 AM Robert Treat <rob@xzilla.net> wrote:

On Mon, Apr 8, 2024 at 10:27 AM Melanie Plageman
<melanieplageman@gmail.com> wrote:

On Mon, Apr 8, 2024 at 9:26 AM Robert Haas <robertmhaas@gmail.com> wrote:

On Sun, Apr 7, 2024 at 6:50 PM Michael Paquier <michael@paquier.xyz> wrote:

And, as of the moment of typing this email, I get:
=# select '2024-04-08 00:00-12:00' - now() as time_remaining;
time_remaining
-----------------
13:10:35.688134
(1 row)

So there is just a bit more than half a day remaining before the
feature freeze is in effect.

OK, so feature freeze is now in effect, then.

In the future, let's use GMT for these deadlines. There have got to be
a lot more people who can easily understand when a certain GMT
timestamp falls in their local timezone than there are people who can
easily understand when a certain AOE timestamp falls in their local
timezone.

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

What if we pick the actual feature freeze time randomly? That is,
starting on March 15th (or whenever but more than a week before), each
night someone from RMT generates a random number between $current_day
and April 8th. If the number matches $current_day, that day at
midnight is the feature freeze.

Unfortunately many humans are hardwired towards procrastination and
last minute heroics (it's one reason why deadline driven development
works even though in the long run it tends to be bad practice), and
historically was one of the driving factors in why we started doing
commitfests in the first place (you should have seen the mad dash of
commits before we had that process), so ISTM that it's not completely
avoidable...

That said, are you suggesting that the feature freeze deadline be
random, and also held in secret by the RMT, only to be announced after
the freeze time has passed? This feels weird, but might apply enough
deadline related pressure while avoiding last minute shenanigans.

Basically, yes. The RMT would find out each day whether or not that
day is the feature freeze but not tell anyone. Then they would push
some kind of feature freeze tag (do we already do a feature freeze
tag? I didn't think so) at 11:59 PM (in some timezone) that evening
and all commits that are feature commits after that are reverted.

I basically thought it would be a way for people to know that they
need to have their work done before April but keep them from waiting
until the actual last minute. The rationale for doing it this way is
it requires way less human involvement than some of the other methods
proposed. Figuring out how many commits each committer is allowed to
do based on past number of LOC,etc like Robert's suggestion sounds
like a lot of work. I was trying to think of a simple way to beat the
natural propensity people have toward procrastination.

But, an approach like Heikki suggested [1]/messages/by-id/a5485b74-059a-4ea0-b445-7c393d6fe0de@iki.fi with check-ins and
staggered deadlines is certainly much more principled. It just sounds
like it will require a lot of enforcement and oversight. And it might
be hard to ensure it doesn't end up being enforced only for some
people and not others. However, I suppose everyone is saying a mindset
shift is needed. And you can't usually shift a mindset with a
technical solution like I proposed (despite what Libertarians might
tell you about carbon offsets).

- Melanie

[1]: /messages/by-id/a5485b74-059a-4ea0-b445-7c393d6fe0de@iki.fi

#16Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Heikki Linnakangas (#14)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, 8 Apr 2024 at 18:42, Heikki Linnakangas <hlinnaka@iki.fi> wrote:

On 08/04/2024 16:43, Tom Lane wrote:

Robert Haas <robertmhaas@gmail.com> writes:

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

I was just about to pen an angry screed along the same lines.
The commit flux over the past couple days, and even the last
twelve hours, was flat-out ridiculous. These patches weren't
ready a week ago, and I doubt they were ready now.

The RMT should feel free to exercise their right to require
revert "early and often", or we are going to be shipping a
very buggy release.

Can you elaborate, which patches you think were not ready? Let's make
sure to capture any concrete concerns in the Open Items list.

I agree the last-minute crunch felt more intense than in previous years.
I'm guilty myself; I crunched the "direct SSL" patches in. My rationale
for that one: It's been in a pretty settled state for a long time. There
hasn't been any particular concerns about the design or the
implementation. I haven't commit tit sooner because I was not
comfortable with the lack of tests, especially the libpq parts. So I
made a last minute dash to write the tests so that I'm comfortable with
it, and I restructured the commits so that the tests and refactorings
come first. The resulting code changes look the same they have for a
long time, and I didn't uncover any significant new issues while doing
that. I would not have felt comfortable committing it otherwise.

Yeah, I should have done that sooner, but realistically, there's nothing
like a looming deadline as a motivator. One idea to avoid the mad rush
in the future would be to make the feature freeze deadline more
progressive. For example:

April 1: If you are still working on a feature that you still want to
commit, you must explicitly flag it in the commitfest as "I plan to
commit this very soon".

April 4: You must give a short status update about anything that you
haven't committed yet, with an explanation of how you plan to proceed
with it.

April 5-8: Mandatory daily status updates, explicit approval by the
commitfest manager needed each day to continue working on it.

April 8: Hard feature freeze deadline

This would also give everyone more visibility, so that we're not all
surprised by the last minute flood of commits.

IMO the fact that people struggle to work on patches, and make them better,
etc. is an immense blessing for the Postgres community. Is the peak of
commits really a big problem provided we have 6 months before actual
release? I doubt March patches tend to be worse than the November ones.

People are different, so are the ways they feel motivation and inspiration.
This could be easily broken with bureaucratic decisions some of them, like
proposed counting of lines of code vs period of time look even little bit
repressive.

Let's remain an open community, support inspiration in each other, and
don't build an over-regulated corporation. I feel that Postgres will win if
people feel less limited by formal rules. Personally, I believe RMT has
enough experience and authority to stabilize and interact with authors if
questions arise.

Regards,
Pavel Borisov

#17Tom Lane
tgl@sss.pgh.pa.us
In reply to: Heikki Linnakangas (#14)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

Heikki Linnakangas <hlinnaka@iki.fi> writes:

On 08/04/2024 16:43, Tom Lane wrote:

I was just about to pen an angry screed along the same lines.
The commit flux over the past couple days, and even the last
twelve hours, was flat-out ridiculous. These patches weren't
ready a week ago, and I doubt they were ready now.

Can you elaborate, which patches you think were not ready? Let's make
sure to capture any concrete concerns in the Open Items list.

[ shrug... ] There were fifty-some commits on the last day,
some of them quite large, and you want me to finger particular ones?
I can't even have read them all yet.

Yeah, I should have done that sooner, but realistically, there's nothing
like a looming deadline as a motivator. One idea to avoid the mad rush
in the future would be to make the feature freeze deadline more
progressive. For example:
April 1: If you are still working on a feature that you still want to
commit, you must explicitly flag it in the commitfest as "I plan to
commit this very soon".
April 4: You must give a short status update about anything that you
haven't committed yet, with an explanation of how you plan to proceed
with it.
April 5-8: Mandatory daily status updates, explicit approval by the
commitfest manager needed each day to continue working on it.
April 8: Hard feature freeze deadline

This would also give everyone more visibility, so that we're not all
surprised by the last minute flood of commits.

Perhaps something like that could help, but it seems like a lot
of mechanism. I think the real problem is just that committers
need to re-orient their thinking a little. We must get *less*
willing to commit marginal patches, not more so, as the deadline
approaches.

regards, tom lane

#18Tom Lane
tgl@sss.pgh.pa.us
In reply to: Pavel Borisov (#16)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

Pavel Borisov <pashkin.elfe@gmail.com> writes:

IMO the fact that people struggle to work on patches, and make them better,
etc. is an immense blessing for the Postgres community. Is the peak of
commits really a big problem provided we have 6 months before actual
release? I doubt March patches tend to be worse than the November ones.

Yes, it's a problem, and yes the average quality of last-minute
patches is visibly worse than that of patches committed in a less
hasty fashion. We have been through this every year for the last
couple decades, seems like, and we keep re-learning that lesson
the hard way. I'm just distressed at our utter failure to learn
from experience.

regards, tom lane

#19Tomas Vondra
tomas.vondra@enterprisedb.com
In reply to: Tom Lane (#17)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 4/8/24 16:59, Tom Lane wrote:

Heikki Linnakangas <hlinnaka@iki.fi> writes:

On 08/04/2024 16:43, Tom Lane wrote:

I was just about to pen an angry screed along the same lines.
The commit flux over the past couple days, and even the last
twelve hours, was flat-out ridiculous. These patches weren't
ready a week ago, and I doubt they were ready now.

Can you elaborate, which patches you think were not ready? Let's make
sure to capture any concrete concerns in the Open Items list.

[ shrug... ] There were fifty-some commits on the last day,
some of them quite large, and you want me to finger particular ones?
I can't even have read them all yet.

Yeah, I should have done that sooner, but realistically, there's nothing
like a looming deadline as a motivator. One idea to avoid the mad rush
in the future would be to make the feature freeze deadline more
progressive. For example:
April 1: If you are still working on a feature that you still want to
commit, you must explicitly flag it in the commitfest as "I plan to
commit this very soon".
April 4: You must give a short status update about anything that you
haven't committed yet, with an explanation of how you plan to proceed
with it.
April 5-8: Mandatory daily status updates, explicit approval by the
commitfest manager needed each day to continue working on it.
April 8: Hard feature freeze deadline

This would also give everyone more visibility, so that we're not all
surprised by the last minute flood of commits.

Perhaps something like that could help, but it seems like a lot
of mechanism. I think the real problem is just that committers
need to re-orient their thinking a little. We must get *less*
willing to commit marginal patches, not more so, as the deadline
approaches.

For me the main problem with the pre-freeze crush is that it leaves
pretty much no practical chance to do meaningful review/testing, and
some of the patches likely went through significant changes (at least
judging by the number of messages and patch versions in the associated
threads). That has to have a cost later ...

That being said, I'm not sure the "progressive deadline" proposed by
Heikki would improve that materially, and it seems like a lot of effort
to maintain etc. And even if someone updates the CF app with all the
details, does it even give others sufficient opportunity to review the
new patch versions? I don't think so. (It anything, it does not seem
fair to expect others to do last-minute reviews under pressure.)

Maybe it'd be better to start by expanding the existing rule about not
committing patches introduced for the first time in the last CF. What if
we said that patches in the last CF must not go through significant
changes, and if they do it'd mean the patch is moved to the next CF?
Perhaps with exceptions to be granted by the RMT when appropriate?

regards

--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#20Joe Conway
mail@joeconway.com
In reply to: Tom Lane (#18)
1 attachment(s)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 4/8/24 11:05, Tom Lane wrote:

Pavel Borisov <pashkin.elfe@gmail.com> writes:

IMO the fact that people struggle to work on patches, and make them better,
etc. is an immense blessing for the Postgres community. Is the peak of
commits really a big problem provided we have 6 months before actual
release? I doubt March patches tend to be worse than the November ones.

Yes, it's a problem, and yes the average quality of last-minute
patches is visibly worse than that of patches committed in a less
hasty fashion. We have been through this every year for the last
couple decades, seems like, and we keep re-learning that lesson
the hard way. I'm just distressed at our utter failure to learn
from experience.

I don't dispute that we could do better, and this is just a simplistic
look based on "number of commits per day", but the attached does put it
in perspective to some extent.

--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

Attachments:

allcommits.pngimage/png; name=allcommits.pngDownload
�PNG


IHDR4r#��/ IDATx���w�T������D�},�(Q�bX�1�hD%J���nb4�M����JG��VX��i��.�{�������c��;��;�����<<�����������AB!�BH���~Fk@!�B!J�AC!�B�Xh�B!�B"4�B!����
!�B!$b�AC!�B�Xh�B!�B"4�B!����
!�B!$b1���^�{G�b`\�z��0�2���w_vN5
����-�E��
B!�B���M3�lS�n~�V��_�^<wn�}���&�mDI]-r����'f���CU&�B!��C
��	�H��_5�v-��Aw����G�]���V�_g�&
!�B!0��q47�����3&��SN���+q�{�Q/8P�����&"1�7t'�Cqf.lF*M!�B1
���hGL\"�N�c�x�]3����_��>��w &~0���1xp<��D�����Z���O!�B	�E]�q��i"�P����a�����<�a<7�}����N�����u������v3u�T�III������B!�	$%%if�����:;��<�	��z��@�2q���#������8��	h���B!��a�Ac���{������E�h<�!^_a�M��C.��b	^���v����o��m�b�����JB!�BL��M���`��s�|��6�o_�1/�����@L��{��>�F�z�(�{*��^�Gi�B!�B�z�1�p��_ ��/��<��0w�:+E!�B���X�B!�B��
!�B!$b�AC!�B�Xh�B!�B"4�B!����
!�B!$b�AC!�B�Xh�B!�B"4�B!����
!�B!$b�AC!�B�Xh�B!�B"4�B!����
!�B!$b�AC!�B�Xh�B!�B"4�B!����4����w�@�y(���������8���;a2fe��V�B!�bb�V �c������Qn��M�)x73g��B!�b"L`)�Kz����f�u)$�4�	�`	!�B!��pkA�]���-�����y��;�������p�)'cL����������B!�b.�5h�Z�y�9��	�8w bD?��%b���q�� ���KnC���C�j@��B!�|��f�Sx����|"����3n���os�=x��xn���9i����8Q���dX�V�q$%%i�:!�B!�j�l]�UY�qc��[Kjzf`b�3�z��h�J��.�1�l=�? �gYi���>�{
����;B!�B���"����K�p��/;2_���f!����o{���0�^�5^�rZ|��W�q��?�u&�B!����"��W�b�9H�gF�������V��[Fx��!�B!��]�q
�?�}!�z�����)~a�R�B!�c�B!�B	
B!�BH�B��B!����!�B!�D,4h!�B1	��{��4h!�B1�����]���?���*���h�B!�b���Cuc;Z;�rG���D4h!�B1�����!�IdA��B!����!�B!�d\��
���,���v����hU!�B$!@���'�hQ�v�
7<�m����C!�0�h�!�B�Fp��D
��h������
!�B�|bc�

B!�BL��(�
�j�0B!$R�-���th����F!�B"�a�A��B!����!�B!�D,�1h�����3b�C�p���r�#�}�8i�(�>�Z<�4]�I����ZB!��>�9�������r+���M��6����Ko@�3�vz���B!��	��U�	uI���y3����.��v-��Aw����G�]���V�_g�&
!�B!0�A#�����`��O�����:P�����&"1���8$N���\�4���f��+���u�����y����/-H�w�F�q��������'��hU!����m6��t���!B-�<���[���D�*�ho�@L�`���`��x�;:������a�Z�F���$K�o�b��*@q~�$&�z�OMK��sWW��2��^W������/g�����V)bx��<�Y����X������)B�|rrj\����a�6���M����b�X��D�]�K������u������v3u�T���X��"K�M�6p4'��lX,��z�Oqu30/'���I_h��!��K~�KG�R�p��w�6���8i�`�5"�B��`�N`o5��3���r�������4[WlDU�v�����Z�P�3���OM����m&�vdg���&``P��B!�������K�p��/;2_���f!������[q'^��',z�Xw��w������:�����������=���B���  �S���/b��q���p����2{!M���!D;:���/h�x�cw���0Z
B!*�	;�����8��T}3��0w��j��C����w���v#����
V6������f��I��b�J�B���w��4o�|��!8v�	��{�PV����N,��e�:�B���2��A�p
=1�-�����XOlv��H��e�B��n��
B!�BL'��C�&�rF��mQ�1B�������01�*���,nO ��������A�Dk�5U������N�dqB�B"��V
/8 �|"1iG��sU�8=�Wh!$z�
�2h�BH��	B!}4�B!����
!&���B!��AC��p[Q'B�N��K�
�:h0D?�cB!��B��B!����	'�	!�B174h��C�T�|BHd�q�2h�x�{��36�.?�EZ�1cB"��Sr��������V��!�C�
�k���%�����j��B���H	n��7���v���)kD	Wh��lo�#�B���U5�-c10��&����%��M�����jB��1��1����d����S0|XF�z)�|g7��q��X��C\��&cV&�~�th�B!�D7�4��O0s�z��F*�[Q����xe���t7��6��w�j�:����s��7ReB!�B4�gh�c�
��K��9_���a�!��[�����/l���	�H���T��>�6ZD
x�(!��zE��1���7�
�~�������cY����U�!47�����3&��SN���+q�{�Q�v�D0�	!����j����Gms~����y&�f�k�)���.�
cg|���q���1��~�)J����c�O��k��z�#�������G�l�I�����a������$K���
����,$%�)y%b ������������(h�����;Q�7Xgm"�����M�6��!�h�!+�������T���H�hF��syy9�����j������({���V����l8�����)F'L_��?t���Wx���pO�}Xr�m���m�0�'=���������k�-�=?u�T���b���������z���a�L��B�P����9���.Zb��|[����W^�K��1@��$����4\�M���#���qd��vWN?�tX,��!�OU�#��2���cM����&�!�_8��3`���q#��~��M��d�qh��[�Z3�0g]:�_<FO��j������t�<X�.Wh6[���Ti��%�����aZ�-fs�O�q�-eO�~�P�&��{�2����=�%��xc-&\81Y�q����������>��+�����c��J|B����l�		=���M�5�b�+gc�=�bTBN��<�n��I���_��Y� ��	1l$���
c^Z��o��5C1"s��O�61�2�b"�!�
���"���|��u�F�B�`[M��t�{�&&������0\��Hy���"Q��3�e���������ga����!�h�V���CcB<�.r�&��M����U?u0s"���N4�v�+C�&z���E4==��4h!$��������3B	4A�
!�B!��c4M��D5�r����r"%��B<��I������D%X��QDc��BT`��<��m\��tt��VG�����/0����3������V���3���}��4HCBH(�p�B!�A���)>��Z;��'��2�B?`B�O-Dzq-�[:1w������CnY���09� 
��p\L!��D����hA�-H����n�]uT����������3!�BH�B�&���>��yni!�BH_�
��1�W����'�;���SB!}�h������!QEkg7o�0Z
M��0D_�H!� �L1'�F+`6�pE6�l3f�?l�� �Wh����	�*!$��qZ�v\�!QE~Ec���}��K����|���������G��0��s��I4�o�W��>��!$J��F������Q��Q
Wh�
s��������BT����+(R���w��(~5�Ds>b�W�(�E/���B�l�"���}^��S�B!/�4��}}tl2�h#��&f-�0���Hr�W��]�!7��O�
[�����%�L�r+=�07���y?��T����W4������{>A^y�2!:�jJH���f��g�`�o���������&b��{��3��i����k~@gW�Z�/`�`������f,����.�^8~H�����5�lh��
G=�	P��[:U�S�{h�m�BAE#
+��t[�*zB�����@��b4�w���?�.���D46��{7_p
�K��S/����F�Z|��/;'����\������X��At���~6c�]6����Q�����j���"��|�m����!��k:
>����q���niD�������WJ���M��6����Ko@�3�vz��*���2(���.
��&�BH_���A���s��K7�� �C�E��W�k�_���eX3�<=#�������J���Lhi�p���"�F��1>�u8�S�"�D����%8<���[�o-}���P����+p�-cD{+
��eeW��W
CmN.Z�������qH�8�����3���9���Rk���6^������������]j>_X�V8#
5Mx��T-��=n3RV��w�����z�U!��D����c�B���
D{Z����3�Ag�������yf��;?��P1<8��t��I_�L�[�-g2Vh���)�k�U]��;vg����L�/_X�9H���S�)�1w��[�`��A�X���
0Z%C���8\P����E������/B!bLa��0}Z�����_��;��=�����C tt�� �����:���n���a�Z��NJJ��KII��svv6������/���^Q���	����������a������_}������(�]���*=���c�<����������"I�Mw����r������E�����EX>������iH�_���j��<$%�J�K-��WZ:�����8e�w���srr2F1ES�	���yZ�����b�����g�W�JJJd�y����{
l6�M&�K�\�TO�� �,!Z��_��\\\e/#�N�8�f$aE������/�'���~�~��N�{���l0y�#;�g]0��L�:�Gvo�X,�t���{ ���M�0��
���M]s'�y& 666`���m1P���{���a���(sv��&���%��[�,�=.sP�rU������z���X~���sG6����3]�SX��/I��~��-N�{�����X�;��a||<��
6,]t����sb����;�����X����Z�/)�����:�5�D�0�>��Ncm���3r��:�I�����i��p�
8qh���G[w{�F�i����F�u$�)�k�d ������X��1b���Ws(`;K�����pNd�~���X�7V!����T���������|o��Ck�z,�X�	�������X���d�]��~��xg�������R�:�i�S_G|������.��V/g�=�GJ��5
��|�qz���_�%���m��M�5�b�+gc�=�bTBN��<�n��ID��)���1|��8��Q8��TL���&jk������`78�>�/�#=NO�*DX�8�E"�M�9/�L-�;r=��G3 �]�fE���Gq���}���c0��/��!�?�������*����4h�$�����o�hhj5�3OCh��t���Y�	4�ij�z�6s�w�`�[I�p���-��v���4�+�U���W���&�1z�N���1Wh�Cko���<��������x%��%F���CC�D��P�����-���=y���������pD���L����F,�����v��|���D-��-X�%�h5��T?	!�D�f����;�����,��e4^��1'R�g(56��"����w�(�)N����Y�34l�������w�H��/]�'�]C�/!����T���I��K��hY����1C�M�+���������HJK}��d,D�/����3M=���!GxghD��v����)�A:Rg)>���X����-�����|g�>t�@���|�>qFC�A�����f�����2�U����f|���eW���p����wA6,��Mi��;H�%X{�E[�����J��{��t[fT4�$�`�47y�
��{9U5���PQ�:0!��D���D���
�|��bb�6�~�{�(]�U�Hq�|��������{�R���+]�vv��g���Z����|5R����=y�������n<����B�������F����!�
3�L������.BY]+�l8�C����|yD����
M8��%�����pny����"�I�uv�<�(�lBZq���z��S���sB�>C�u��O��|�,����"Dz������������V��"�h8�F���61i��E��9B��E�x�v����!�0��5z����n������[--;j���.KZ��GH4a�>��m�N�D
��H����R��sGk��e����I���1�pg�#���g���M��6�U 2	���u�}{c����J���Vou�����W�u�����4"�9�3��1������"4��e��\���C�9k
t�o���Y�	��FZQm����`"$h�x!Lm<Pd�&D�
���`�I�����P��&���xS�w�d�A��5 %�����._�Y�P�����(�nFE}��]���~{c�^���b��L-�	��=���Q���z|��!t[19f�H!��K46z�
� ttq������n��F�����@o'��Q�BR.q��z���<�D�����fw����:�e��JH�P�[���x�`��OVw�=HHu����/ �O4�"��xw<��� �,{�rf0Z]�-��2.��m�.(�1�VH��op/5~�`Z��T�j���M���K��d �J
��I������QD�v�k��}�$��'I��u�c��M�:F�4��������J�t������G��Y5���'���m��E��H4A�������jW������7�!�L���
*1w�Q��R�;���(
+���?%�4�?�3����7�xK���W[24��e�QZ��9����#dX�"��oX$�S��������Bl���5Z3cwD�A�|���]������K~��7��zw.�����`��AZ�	kw&?1u���jk6����v�����oq��Cpl�#�_��}����N,x���a#����0��-Nk)��[����]��������)�]%�VA��uJ��qI�hU� ���P�q�K+�;�cF�������:���\��
M��h5%n7���\�f�����PZ�2|8�S�����Ng��u��
 �{�j6�[g���S�-���� IDATHAc��EM\~�Ze�\F�$����6�VS��_��W�����bZ;�Pr|�1��N���l�!D	�m~E}Z;
�F��+�`�����Wp��cq�����%���;P'�^�{G�b`\�z��0�2����S��4q��s���@��5<W"���g�3"ra��O������w"����M��m�A��X������mCYsJ��#����7[��f4�����X�V����x�\e������}����o�^UZu��U�J��0�w:h�\ga�)����X�E�e��B�o"�z^���!118����r^#���hiB30<A_��!�����s {��)�)S�{�P�{��
������_B�s��j���Z�o�:��Q��r]8+���i4z"���0-"��S?#��f_��>'Q�h4��x'C
�~�/��w^�q��p�m��9q��� 47�����3&��SN���+q�{�Q�c>���-��O���_���.<��F���3,�����f��������lPg�~8�jd��%N:��rg~�7W�U���&�Z(zJ}�ju�U
�����0���(���2']����'�w�b�}�q�;�%�L�F���q���+4>���W.e�4�g~�����*�s-��/���~��`��b$����>�,�C����������m#���TDE�0�C�u���N��r�S�-�������*<y^�%b���1��'q�5c`=���������X6�$��INN�����oRR�,=�+w}�����|0>�R��
�G_�
�T���;\����Y5�|���x��823���KJJd����>`�}�v������u�>��j�S�gM���TWw�t�m��u��oR��
���������f����{ss���m]��h������G���:���vO����$�����}����p�?����{/�8z��������i��_%����$����PR�+��5�[��������
�2�������4��]���Z�V�����xT'N���'6J���\�kkk�����v}.**�	#.�PXX��$�������v�BC����@z���yii��6�]T�v��A�i�&$�{n������;�+�������N;��h'�������F��������R���kUO?q=�������x���83���S������-�	��r ��]�6n����M3�ULA��l���A�y���&������������3�`�������g��Y���
5x��xn���9i����P{���>R{3�b���fm�w@���4h�����<s�K���N�,�������93���a�\�(����������N��r��g�W|4u���j\p��|�|�k)P��H.��X�LP�gqu3070`����|����=7��K��iP�6�bcc=d�J^T���NHH�����
|��#���O��vpc����������q���~?�_
,�o����X���8/�zzq3f�K~U�#��2��<?��O�d���O0�w�l8�g�}6,�k\�i�
�8��������6 �iH�w�y�X.�+�Ha
�U�K�`�=hQ!���yN���W���|��2j�?�|`������~�W���W�:��3`�L������\��<�LX,���������_~�8o\@���������q?�������in�r��~��9
����6mN>�#���]�^����g����vp��iqB��*���
�n����k�'�x���W�����x�#�[xs��c�rO�1���k�~����}��M��'�p��Wn:�`��89U5��n���0�����?���kp���������UwW�c��Rt���l=�? V7�����O<}
����{>R�����CEQ��\��������'�Z7I����H���t5h���x����������Gyl#�g��=S��w��v4������[~��i����l8��Q�F�s�(�*M�4Fr�Tk�p�8�������)�m��a��H�$���*�5h���cIQ6>�i4�]��������_��Y� ��	1l$���
c^Z��o����}�X�9]6��oc��M�;i</d4�}{�{��,��w�X�+Wr��+�����������{�����X�)
�]=>�I�R����m���<��g%ib�<����:��p���Nj&Q^y����[��R�����j� �OK��{��X�5;�J��$�9V��/�?����ph�����G�V��2i�hh���
G�W���Zz�&���hbG\��Hy����+o��Y���9�����B?DTG�6\�����X������o^^	�����}7^�Z\� ��6z"��������!��LIu3.rl=��(�gO�����/���n�>�D�A��f������n�����/��[�]6;.r��;�hs:��y�nq����rn4�|��Z�11��fb�9��RD!��O-Bqu3.8�G8�����s�;��bG6��
@��G0rXxg
��N�_]�M���Ed��	����������������Z��������'@DU����d�}�_�XE
��[�T��7}������F�z����^��6$�)�mE��U�`i�E��ijG]�se&�$x�"}�/�
�@��z�� ����V�e�vv���<`���7?��6��4+��G������O4��2�����Vz���	�:z�6g>���"2�)�l� ��L�:["��E�U��T2������b�>EM�r�bw���A�l'6�����A���������W���W)�T��B����K��x#�`F�zq�~� x=�c�j�v���P��m��1���}a�I�w��kK�t��L�n�eI��K?��Ac�:���3����xA���sC����� F�L�x��8���� �n��.}5*p8�2�h�+T�	$SJq��{;q$u�rU��w��x�&Xkapp��Dz~��� @��U�<p��������#gA�,TR��?���}{�xm�n��)_Z%���������y(�k��]�����m�n�6�#��f�������3�D������rV�������-}�K�X�����������
�����]j�W��t�<���[�|����x���Au���C�����<�i�����i}�x` ����z�:ayF�C�����M�������D�z��f���,[e������AcB����R/�����6�� 6�|���7��`~Rs*�(9=h\jc�q�XMlJCZQ���G����mM�?a�L�����_:`����p	������o,�kx���������������lvl:X��R=��lD��=���*r����[�5�	�6����F���v�x���A#�<(�_��\kg7Z#�u=
� h9S���p��1�v;]�����G ���j�u,���0s��J��s��p8��O�8��������r[��K7�=!���H#����7f��*���D���V/nq�	��R��.f:C�j��zC�FG5!f�H����,��iR pC��F#��y�	+_�n�B&��nh5�D��uC���9����Y���]�P���}ej�O}����
n6BvW+u���3��2��;0����u4�k����g��7����0���F����}iK��uy�s.���^����k�i�F�����p	�������6�{�=p�Zm?S^)������=����h�F���$�,IgWmNG�����%���
��,8tL���J�dK9��u���WI�>���'�#��v,��A�r}���8�A��)jIeC�n8�����0���_b�V R��Cnxn)`��7��~y��p���r����i''�h��=[e�nO=V�����U�S�\3/mV7�#��V=R�K��dz�p�n8����p�C8��!��'���YX�#>��^��3��[����-w��a�H�&m\8�]�����#Q{q����Sp��35�������r��G�P��a������d��o��[����y�|z�J�xF
^����V�+4A��b�@9�8��9�����aKG��<���b�q��Q���X�U�.�TE�+�����D[������	���9�rG�
��N�a�t��k]r��'��F�{�9����/�h�;��%=�8&\z����4y�;�N'D�e
���QU�3��3s?�g��A�E�n9R3[����U�e��w.���C��F�\)�*i����H�sZX5����b��q��N|jm�'F�{b."}���
��tA����B��B,�o��R\RfLtw��kl������v�V:�U�8�%b���&�
�%y�5�=OiL�����H��
9�L��U�;Z5Z�l������d�����+FJ�Vc����u���;�C{�S�-T�����
��
n����	�j����H����$�-G��^$b/gzo!���P����]��T�k� �]���w��Y����j���W+�@���(Ik���h�G���b��Ia!.|�p
��8�_���%�����R\�����jEg8:�z���W��?�2=A���w)9���=6�x�+�5�i���r�8�CP���mE��gA�fw&�7�3?��_���]���[�������lh��x
jhK��)'t���(6.�����v�KtA��mar:������-`A���C~Ec�0�[�^�io�%}k'�=��>6���[����g"����������6��������?}��������x�pA5~����|o�0Z�@��XM�xr!�~j����G��p�����������3�}+4b9��?�s����h�:�u�����PX���[I!	T��N���t������e{�^\�e���3C���M��fw���������;�f{�s*��p	�������Mi��v��%[3���%���Dvi=�+���;���7��~����c��tY2B�^�~'(�����[��&{�?��@nYf-��� �H_�j7��6���C8+4"�`1Rs*�I�A�5��h1��*����� r���WD�s�#�����]����[m�O�o�.���t�����l8���e��V*�o���9���Nm����m��St�s�b�A�@U�+����8qXF������@@���p�eg��Q�0��k���\t�J�R�T �js?��{�����_�!��Cb���'���53�v�'�y�Ei���4	�r�@q�3b�� �i��@�z��0j[�8�u�����p�*J98���lO�A�$	-�� �K�x�/4#�i>���A�����M�['�1��qT,���a������	%���o�����@�<7�MX����Z�.��O�����%�r����)zy	�)�SA3}��/J���1�eT�H��,}D��j�2�K��}1�:�1x+��I-��-���K=�������u��V��B�o"�z^���!118����r^#��a��k���g$"1v�cxbZ	V|�	�lE������
���`��h�����g�
���I�����4�RD�>`-5�+����#�Z�]�O����H�����]N(�<���:X���[��R�Jn��t$�-.�T����lD�8EW�9��$e�V���p
���
��G����n��c����C��o�4�F_����
��k�(���s&��)�P�����&"1�7t'�Cqf.���'y��j�Ni�mX�9���7�*3�dd��{l��2K�dT@���D��!�tZ4����W������QX7?j)���dA	��-����D�0.�<*�T#2��H�:���O}K'mNw9�5��W�'L��V)N'{���(1N���Hu�!/n)a�o��L/��-�v_~�0�9�X�'/���p�!��*�m��-h��/b��)����SO������\l�������R��rZ�G��w�X�;��o�7����E��}�)�G���
Dz����~���Y�'����u���xW�{G������"���;L~|>Jk[p���a��w
/^q�m��2���Tl}�.T6�����z���/��d�3 �k�)M����oJ��7��>�/�������F����u��^/-H����a�V�o��P���EF�~1�����!�
~<Y_>���-z�����k���7�_Lv��G�����(b2"�����C����W�|���x�W?�s ���� ����S�^�8>9���f����CUC;n��YX����5�wy�O�d��i��IX�#[��HMHy����=��x���u�U�)�j��fo���R�vr
<�~��V�	M���g���g�a���!:BG::�����=�����dX��=#%%H(t{1���G^����f������u}_\\P�Cph��a�r�����Mnn.���QW�~f���h,IGim 5���b=�v�!���*$%%���.�Q���$�����SRRP�;���MMn/p����"W�����BR��L�������������
�0Y~�S�zEj��}A��k���=�kmm�H��6yF]Ee��<u��w7F���X�TRNv���G
k�n]bb�������
i���[�V����|/>h�{�n4
FA���xAA����"7�:��x�����������>e��;����fCKKK�0uuu���]���������u�G8[���Z�����#hmu���-X��Z$�����n��K����u>e�������Q/-��'''c���y�Iaa�G�)e�6���C�x�f��[�?���g�:::��x��q�F~�U����� H���6��)))(��Sw��Ms8~�v8����������P��Cu��5[�c��9������h�v�!���_��p ���755����n���}����-Q�{�RV����[��w�a`��`Q�.;�M>a�QS��egg#)I�+yo
��j�]��e��MH���������7c�`��1)))�-N���|�u�V�������@^�;_��_^������D\s�R1���c���7��ax�7�Z��9�>���KW��0�y����+/O6h4��~������mx��Q������0��td������8��	�%e���>�{��b	{��\ �0r�H$&�R�
��\�gu�v:+�i�����2c>�@�M}�
7�����.�;H�vLb�9�X����%����g�^�I��_d��&&�}/���g�����a=z4,�s{������XX,=r���C��WN������8����rBBP�������������#Ncd��	�X.�����\�A��g'�b�
���r�
��	����.���L7�
<����+���&��p�	'x�cim0G�L�)�����:��]i�<�,����;'

n�2`�Y,��x�c/'�|�K���C���aqqq8���]z����/��������Ag���:�u�0��w�Chb0e�`Y >>����_t?7`��p�P���f��Q���K�5������b�`K�f��g\s�5�x�H��;�����/��y��:����i�p��������7�t�g$y�>2z9��Sa���8����L�:cG������`�;O�<�L�<S�79���;�;�|X,�-�q��U������#w�:m�4�|����.�n�:�{LLL�����W����r%.>{���*]mZ�~����qzg�n��F$Q�9�}}������F�05��NCy��1��;�;s�����y ����y9���
��������ptao������n�	��|�f�v��s���r���>��(vO�������|�K��Dg����L�����N��J]
��]��/~��o?v����?�a�������^{-��?����
|���"P�!n��8�XWK�+��X�W]w�u8c�p@�������^��]������]?
?J,)�A�}��z�Fh\����?�|���q2��;q+���9Yh����&��v.f��;�> IDATa<�������������g����T(/gZ��=��PCUo�
R�?�g4����~~M�������C:��!���1��j�[���c
��y����G^S��i����P�6�j$W�y�H �~O���`�Ac�<K����M����8��
���[��{��>�F�z�(�{*��^�G�YrW�������>+���N�\+����9�qh��LO�ReDA��_����j��j���		���\�3�Hmj�5|��T�u/�^��X��XB��-��!C������A�
p������"T���l/���0������.�f���{�NY�������{���e�uv#%�S��q@96{����y�	F�?���o��Zq�S�p0�wkXae��������������������S/���B�6�6�K }*�9�\jN~|>��zJ���c����\�/�6��]z������E5�x�l�
�m�A�C���������7��n-�o�k�;��}���p�o�x����|�cG�����-F��p�J���mX�����>��x�n�v��q�kk�[��O�W�?N����tsbHFC��
���q>\�V�����-����T�_
9���"�m�pn�`��������1�����;����Cc03<2�W�C����#��/��0���DnY��!�Pl>T�5����Q��;������m=�o\����P[��m<�i�h��:s��#��]�i�X�5/�OA^y��tZ��/6��G��|���u�>a��1hRs*�����n�U��|�/?�Ua��b|�3G��J+��]=�.���_:���&BNY��������o�BJz�:��D�1����i����QX����R|����\�*\�F
�����t������ O���#����������� 3�:k�sBmV��	��������������e
�����'2��������Y�3��N�V�w{�K���i�:��
�p�J<���h%��@�x���f9x��,&d��x�X��+��=����t�w�-sr���wRtW[/-�r����W�n���2�i�Fl���'PzY]t-����l��#n�������A p9����~�$�F	���������[
���fW���o��E��
rYK5�d������G�O��H�J�+9|���XR� H2�4��YZv�jtj� H�&)-.��H��mi�Yg��$����9?b���^��@���`�#W+g���$��uA|���O����$���Z��
y��p�>
d��.X�oAv��{S������G-���C������@��K5�5�KC{�B�s#��TN
v��"���\�~�V��3��l%y���nRo�V���:�4fA��B��G�D�fjH�'P�6��H�z�w�3������;.5�(R���M��1������O������A*Q�l=��^�.�Y��#�L(�~���.���x^�(g\R���c�/���!��a|)�{?VX��n�=��Rd���w�C[�I�|�[<;���Y�����^��U.����i���������@S��t�����������w�+U%��K�e�u>a��:� Y�A�"cR�"��xp+
�8&c���Vq>4�waar:J�gf_��R��Gm�Z7���[����m���m���Mi�nl� y/,���
|������������ir�{�s��&���/
�X�XB%jgW�zj!.>{4~����M���g>���*�����p�����������Z�y��\��B|�������nEIM����7~��%�����ve��������Au��o����L���:�w�����%#�o��+o���FJ�wt��>�"&�#�^����f���*��������>6��<z�%����=~7lf��cOl9\�I�����pVh<�7��H�[���we��~�Cou����WWc��B�|��,z��7�<X(��m����&ov�N*����)
���]�i_�#�5?n$��h��7�$���@��}���?�v��Wf^�����1� +6~�����,�����i�������1�VY|�m���%ztt��_��?EwJ��P
tIM��w5�tnJ�m�@e��
���W���2J�DF� ��gK��]��QR�c��Q�sJ\��Gk�rU�#I+
>��Kx��QFpo��nlG���Q	�V'��W�r�e�j�@�z��E�2�SV���(���}G��R���(�������I/�������L�FD8����zt���wx$��q�m���j��Pg��>�����G��\��h��������c�K�p��
ZV�'h�������������Y�k�J�<	f�2��!��K
Fg=
��a�V��p]-���VZiBVRU�d��3���@M��3 �p1�W����eT{g�j����K��#�~�G���>�!G{�����U�d���IBtU�`��2�r4a-�>+����>m��������'2���.`jx��:p�b��RQ�_!f����]eO%y����!A��${9G�HQ]����qf�r���T�dZ V7���;�(.�SB��#-�#.����~�������D��uo�f������*�C��T�Y��P�W�w���zNk��S5���\�u��w�����:C��^�gD�CDSP�����6��0W{�	�V-���	�P|����7_+�G����	�WI����^�G>�m
-�8r|�~����)'�G;���7a��b�~���\v�<�~����R:�;Q��s���rhh����AKGw��R��������l��]�x��)�������{�(�;[����#�u|��R�w����9�wia���u��je�l9\��&�H'T{��7W�����_~�3<����(>�
zQ���-L����1�2V���-����(�7w�Q����;�;/�A��!��w�{����jB�F�
�yU>�������2�|�t��+��j� o`�����K��x{y��-�8v���OW��<ce�7+5�����L���;��W� 9n-�-k�w�N7�//H�m����� ��b�TX�=(RG�Jp�#����c�v��#������	�r��#�0��E����36�Q��a��iU�^�J�����{�x��m�;����A��������d�=��

�YR�sEKTa�.Ow��~{�������lxi���������`SZm��Oo9��r�A���H�S��\����O������>��Y�w���JX	���P-"����y=�a
]v��qy�TP����j$����N�x�%��_��6G�H��K����+4��L�-gz�������{�`��)�n��5����N�)5�����{�a����.�� ����|\BZ0����Ow#�V�P���5�63���8�wPLX3�:rb>{9SY���P@�s{f.����k�%O��0�j>hyxY+�������� ET�ce�O��x���������
�������D�Rn�V��8�=�)��uXSx���Q���wRe�U����c�;�p������H�;������G*�Rw�Uk[�����c����Y��4��K}F��H��I��������PX�E�Z!���o��c�����+�jV����
�{-[�[mX����c�n=u�+�}i�7��������z/����C�����6��lh���jIa�8��Q��V��w)i��Ft�2J��1SZ;e?�'�+S�����-���t+���r���-{�KJ� ���[:1o�Q�����Srd9�����-!<h� ��-��� 81��x�g���~�q�49���o(�^��&i_>����c�������(��T�@n��p���vO���
�m���_�V5a��\I������Y�9�X�=���
;��vVk��a����a�-M���.�xSb��ub�K��09�g��K��]�O/��hX���O:���l��� ����nt��Ha5,/��~�V�ryb��uP4��Q���}'Y���-���;���.�?���gI�����7����xI��T�����I�d?����K���4�������U�����>^V�F���+o��S$����9w�Q�������;I
�0�~��T6���O��7�
-�8��p�_�!���������g��%{��4Y��C��.}�3�*���+$?�6�yy%v����~�����n���w�����6��u10�?�����4,h\Z�28W<�P���].n|n�k������pA5�s"�������32����\�����v�`��l��f`��o������������rW�dceJ6������k/<
[���o���J��__�O����T��
�>��7����^��r�2�j]�
�������}���;0����V/=��CNm5�O-���x�.~q����lU������4�Zq��_��������/�-#r+1l� ��/r�������^���4?n��BI�!u�S��e��p%����6yv��j<��V�v�M�
XZQm�J&g6N�ma3j�a�6fa��_5�I��u-�lp�6�I����3�,�s����2�}Sz������Lg������.Z����Q�lw�9e�~�hUT�e���t��L{������r_�����h�YE�]����e2U5�{���������;l=��)�{T����YY�H�������}�����m��.��O��#z>�O]s�����D[~��8J�JEUM�~!��*���Q���[�{�+����SG*�<�4B����$������Z��^�{G�b`\�z��0�2���I���~�Kh����k$n�
��������:pB�Bj)��g�y��D��,N�uU��2�ph�['9���.��������r&.�*�)��+M')G�������7Gky������wz�ni��(R��q���{���6���[��&|��5x����bb,<v�w7��6��o�#��}y�����Tu�����38����:�f��>�����DV83�z{�
��;A��:>��H���G4���q�|�i��^n�/%�+E���:fz�C��]��X�+����Qb��� %L�$kBM��`�
M,��w)v,�3~�������f$`x��*���f��j��W3���eD~���R�g$���i��yK�������������=A���T��-��F%��#����a��XF���#yk�z
���I���L���P�Q��f��	~g�b�]���	�L_�D��F�8�1�$�s):�&b�#o��'.��0#�Fh��,�^p�����&������g"�r��8b����0��Im�������|�t�~��L��hU�&�K:��<�����[����+������?g\�����c�v��-�����>YRX��*������ @����q
�)����J���'�{������G��`l�M���^J�R	�Nza7m�vI6o�f�lv�+�e	!�i��c�����q/�:�?d�VI3��|�����h����9s����b��BR|�om�rx��`F��~'7�G+$��E�U�����/�
��\��K��<��r���0�����;K����������5�����@ \8�^�{�dC/��f����t�V�<���^�n����������S
��:(����{?�����7�Pr���&�w���bd�&����������9�m4a�s��L]�6��y9q�����k��s�N��t�3�����\�~��m�bE��m��=���^�&�ct=��?��L��s�G��`��Lw���.�wu����vA�>����a4z���������d�����
���&��5��GaY���-[�UK
��
�����td'��UT�N~������3�l��%%����+g]]Vo����_����@EMV�>�;�����9���/�}�����'O�<�zc�����j�*H�C~��I�J�h4"//��+@���|�:�D�l�PTT$���o���RZZ���[;��yyy��?p=���_���w&��j�I��w�F����}�(�w����0��ZcWa���9�����5�����08�
�1Z���+N�,�w�����~�l!/��m�'>Y��Ig���X��N�8�R���}OL��j=v�,Z�=������q��.�����eee~����;Uc��Sx���19�Ck�jZ�/a��U���5b_��\2�1��T]k"��*�x�����q�t��$"���(�����RO>Xw[xN@���_��pk�m{,���g�������.��l6�����2��Z�
���~h�FN�[��w��s������Q�i��c���E(�v����*O�GM��������?	LIIk[h��R?[:��u�����
>'����_~�^�)�=�Z��F<���H�/F���~M ����T�gg��58�)�#����J�	E��w���x���QVc�������bCqY5��p#�$��� ����6m���zl�������r4T���o�]���7�\j���anNh!����h�^������w�������qI�&���A|�mg�������f�����~Z\/���t���l/���3��h�\�A*�g�v����32�RG@�V����+Oxl7q�D6���/�����'2��{��I;�;�f��9��;�;w����@��K�^������{w�������	a�����JG�};�:pG;����c���������[m�?g�������0%-�������K<:q���qbbb0{�l���l�����Y�P�X,��xHK��l�o�G��F���~�a���������W�����\��=`���s��@��DT��q��k��^��76�^
���oNNf�>��hx�u�(��p�E���y��u��k!++��<M�}������.!9������?f������c@��q���������8:{����6o#�V�9:����O>m~��G<������o�����8��������7l��3=��;����[����+�
��y?����`�t���Q��t�}�?,���'O���L�?:�q���~u?��8x
�i��a�N��v@����HW��X%�qa�}����c�|���c�=_�
���|��s���G���>��o?��}^�������a��`b�?�_�9Z��@��5�z���?�
������8�K5
F�����_|1��{�S7u�T�����W@��F�F��*`��M[�L��R*6�o�<�y�&''c�������1�u����x`��L����i��D��g9���T>��8���$X,V�b�aZ�c��!�|���`&�I��4<:���
�0���`�t'��`A\�!�}v��[i����q�&����X�@��m`m��9��'�=\���kQ�}��� �R��h��*�})q\��N��t���m� 	_S�m������������Ql���n�q=^X_+l���&^\l�Es���Q��4�R,"s��G�xgYd<��5�Ya�U����q+K�6�����;gR6�l�9e��� �����(�&��	��-R2�TD���l+�~� �N�����e�]1����}C~��� �Y-���DO���vh����x�'��=+���l$�'�������O,~~��<�����;d>�^��.Q�N�Vg��g���8T�u$������@�zS��:i��7��F���>3���W�`��*�[�����K���z�.��
�bE>*�<����vp�t������v��i1YlX��E�U�
�����������j�~�,�������S�v���L^����8����n������F��r.�~�Nn�����91�j��xE���d4[�hu�Y����G��%�����k�|^��<��_�c}���9�X�v�c ���/W�j_��9��i�<�Hq�\���J%�sh������}~=�����D�4Ylh2Yo(�2�E�u|��?_/W���.�h�dU�<�M��!j��9#"�41������i#zylS�(,1���o?�:�:�'z��Lm��It�~��n|��ndO� IDAT�������y;q���z����o��o����^����z����x��]H������F��D�o��=d����u�X��<2��W5b�]��d���G���.n�A�q)<^���~����>�R��q�<����9�;m�_-�!U���Z���
X_��r�>\����{���~e�������j��{>�{���w����X��n�s�}��
���cX�v���Ix��s��n�#_`��J����o����������_���^������s��?!!N������
�[�
��{G�����[����eO-����F��x��%�!���] ~�z8�6�lRI��Y�C���dU&����~��Z�|0H�Zq(�t�N_����!��)�u���U������Rd�	�Z��m���v{&��Y(����['�x�w���Ce�3�������S���V:���W�����G+`i�(��iw[�m3��=G��%o�[~/d�^����p!�����F��Z�Qo0��d������x���y�u]�,6���P�7�r�Z�/����d���*�"��r!e��<���U3������-�h�P�[;,Z�
��C#'�X�*���[��N%�bJ}|8�@�	fn���^��R�%_�r�b�����>e?>��9�[��$s3�|�6���&��EF�7D�k1�U$c��7�������J^�|�~?��Q�]�sh���Y������[MXp����A�>�|'�F{Y���1o�67!O��6����O!Y���94�����I���r>a����CX�_��Q�j{J)�y��E"$�=f��
�,b V2����
���,q�����h$�M3R=UTZ�����<�"���2�>B�p{mK�mQ�}8����UD{��2�V�N��m�K��wr��l�K_��k*������`���J0)�������R`�s?r�MR����Ap�����}�X��t�F�I4�]XS*|]��#��x�jF�@+�z���*��������w��G�BR|� 3���lv;>[��@[��u�w"�S�����%�s�K?a���!����_�v?jL�7n��y;��=����0t��.�~���m��&_�.���t���f��u���~����gZu�?Z��y���<\0�����������v����������}���������x��qAi������~��'�d���y��9TV���&�
������s��C��o.xt��7
��I�����K���KN��b�#F��,����_�i�	�v�Lg�s�-��6� @;����MX��q1��p��o�� ���H������g��������������v�����l��K�p��S���O��^�"���t|����R�S
�8z�wZF�����G1��Z]m�	�6�g\����	�?B��e���J}=M���x���Z_"�7��hl����b���>u��|���uj�td>Y����F��J����������	����j�#V�����>��9k�H>�`%��2P���j���8��bx���MQx�{f(�y���v���V���x����d��#����Y��*��J�`��c8oT��v*wf�{��������|����7��~��
��1I���X�*�]��N���W�u���+�\���laMF<^!��O�Qs_Di�{bvp�6~}���*������5���n#��o���%���]�^3wz[�(X��s���cl<��u�!cMF��y\�/H�O+T�w�r]*�pL�^&��me	_�i�y���2��G]��
�Y�e=��`����3^u�U1a`�$����(q��\�T��;��i���()�������s��:lB��^�@����R,F�!}�'��������!��[(�BX������uP�F���P	uFn�]����ig���P���a1j:FLh3L��r�������LW�P���O��iH��F�x��	em�Pv
�������jl+1���FK�u�|��	|
�=_%P�
R@�y�B��l�R%���(����!eR���aLd�:���i2
v!�g��F$��&�?l<�2!�`����U|J�X����7vm�����-��e!�I��j��#������"�����tM��!K���w��#���Hy��������Fo���tmP�NZ;�����PYg�w�PUop�NZ����8g�QPo��	��v���W�K*Rq�)GcF����s�~�����%������,�;PD�=��7�
���BtIK����Fb\���~�t_���V�A�:��u��	��cLN7���Ozo����2�]�g����g�p��aH��,�����'�,^�:y�N��<��7`��+=|��wv���+�l)FM�����������������S{���y�AeX������O�)��;`��-����?���K�F�I�����mr�����
���r,�|Pq��5���G���y6��5����s�����3�SB.���w� #:����74R������@�6�r�dMDt�X���7��U�~���k1���5M(�h}K��0m�^i�S����D�U|���6�nyK��9�hL����M(QAF������t�.�Fu���k���-���a����+{K����=��X�G
�`�):�FL�{��v��h���V������q����:
�v��0,�uK�p�Fb�6�L���@��jey�E$���C�D1bT�P��9n�����Q����s��8��mN�����O�94������\
_����i�ul�y�S��Rj_w��������?o[�l"���.rv2�P������%V>��5��C��c)�uj��������G��u�|�r�xH��Y�����ql�_�okI����n��Q@����x�V���(>m�h/��P�M;C�'�2\d�,`�`�H�Ds�Fl���D�:�Q�]�j��c=�����Y����vO�S�Pnr{�5���1:#B��������[��5��v��@
E��MI���r����+K����A�c�������%"��a�����������H���?���7~��5{����/[�q�?��gy|w��?x��.�l�����s�x~�F,�~�9'���{��[�c1�~�,C�tk�}��/���>����!V������!�����<)�����I|���3����H439�|�to���eK1��8�����m�U������o�@���cr<>z�b�$�����+�CN�#U{l������rv��D�+�;4���QLR���T7E(Ip���c_�����6<��rg���]��EU�_����&
�������^D��9D�ZT��`8z��k���	����V������o|��u�>��1��x����	����sb��l�r����i��.�y4����/�{���LV���x�P�`��{(JJ�?���i����c���'��wO��[��6���qu�5J�H�|�����<�D~��`��[0�C<�}��#v	u���M��K�N�6`:�]T�p��������<J��xb��\����iK�����x����Zba���u��\T��g0:�����htm��;���
!�sv�j���)���8C�[���	���c����KMd;4T�_���?���I��^5���s_����(9S��E ������^y3�H�����7���3�#Z^��e�K��R�1��9���X�'�{f.�/o���&���+��I���P��}5���N�����,�r\�4��}o[�����Q\�b��~���o�A4H}/��Y��K
��.�o�R������� e�\��i�\.��B���<�m����o!Z��~���{�0a�7�}e�o�<#m�%���nk�'�sh4�8f @�������"���
9��#gP�S������7�%"�`����7Db\����z��DA�tL����������GQ�`��C����u8�r�9��S��h�7�
1:���'c��#8kP���e���;��lwR8s��xx�P�����:�8x

����z�	v{r��S5����F����8��$�ck��IT^|�Qh�����MB"��i���[SL@���KQi��*��oh�U��V��8�"0>h/O���b�h������F���S���f�����Ro<��r��-�Y��&h�����'d��c��p���!)>��u��������|����3F��!*j��o4Q����
j������(�3I�����w|�\2X�_�mE��O�����{���"����u�����7�[��Di��P�h��R;4$%'���` 464A����w+��/���= �����}�&����~��X�"*&&��o*���`�
�>�9�"���Y�v���)gee%>��7�oWlE���'����EIn~��7��t0~��7�9���i���8Q�x����!k+�t��n����w���h��������w��w���3%��udj�wzw�������C����0T�Tc�O+=>������jPx�)��L�)�����+??��K�1��e%���
7D��F�-���7�Qh���F�;���"�m�3fx���#3{�l���U�ISl7z����G�^2�D
�N@��^���0��O���N��U2#F�V���MzzF�	����533�#�����?�������������o���F��)S0:��.��,���b7..h����h���T	�h�=q"�U�[�Q�FaP�N���v��H*��V�T�`���p8�4�iii:t�G��5kb�:t�W
,.����^�z���~�
l<�g��?����U����:��p���X"�������X�?��F��r�Kxy�`�pu.�/��'�1*B��}�z0��dH���L��N��j����x����'�%Z�TC�"��i�s������h����������9a
�Y��>��:v��?o������tg�xS;��=2���J�TY�����m�C8��m>��[�\GE�s)u�Ym4�!E�>������?�r�t5�\�����������X �Q�E$�
���������_mC����������y�����+�n���5�������9�>��P��_o��W����V��>Wk_������3x��M����BtL���Ua���#��?���"\���*��� B
DC�������X��mWg5���S��nz��%AY����%>�k�h���+�6��3�9l���{��s7
�����&��m/A���c�=�����8��2�F���,FY#M�$�� *�d�&ZV�eF�(��t$ rd��!gAv�=��k�/s=�
y���Tp�FB�xS�I|�@��g4�����5A���<����[�t1��/�����?��C�o�mi�����a&���#��4�;�?�bB!��_%-�i;[X3:h0Z�z�8���&���w*j�~�u���:��9���X����c�����iXl�;ocA)�L��1�v�!��(��z�f�;<5a�qb��PYu���h4�]l_k<Q���'[94~+�0J��M��j4X�����??����Nkwj��cr<�C\�>F��H�������B��w '+]��>�����
7�F���)?v",\U����8wfB#���-3%wf���Dc��C�0���kND;<��a���0�0��o��'JG�3��wh�a����-���iH����uh�>�09�1>|�a\iw�a&r����N!�0�+��a�ad�����sh�Q+���a�Q=��&|�

�0�+��a�ad������a�"���0�0�q��)�EP=���a��v��!��01�,�tT��b�q��uh�a�a�������n��Gl|<�[�?�,<_`�t��a�a�Q�H�'�Z�X���C+����w1�0�09�S�����:(���0�0�D�$g����k�Qg?�Oo����"3g2n~u#*y.$�0�0�0�(v��&>3����k��i�0�x7]z9���_�����[�|9�F����������`���f�a�aFN4Dj��h������/���9��uKGf���.����.������a�a�ao�|�W���*�n�U��3��|��q&�'��
]�>�qr���a�a�a��vhl�����������mo���6\4�l���_^a�a�a�a��vh������7Dzjr���O~������!��3�0�0#?�������b�`���[~C�0�0�0��b��H��a�a�a����uh�

�0�0���F�1g��CC<��a�a�a��v���74�0�0=��
��a�a�a��(�Y;���#]�a�a�a���uh���(����"V��t1�a�	���5/���j9Sz�#=5>��h7����"0�(�	31�_�HC�\197�E`�TY�����Dp�FYhh$Q����"0�(���8����3_���Ff�]��,gL{F�mw�<�0LHh%z���#��M�k��e��h����q��0��h���c��B����Z7�k#]�
i�q����94����!!�E`�Q<���"]���.<�b�I�������i5HN��d��o��������;>6����N)8L_\=u�v"���B\<!3F����9����ts�M����o��������!y�����M���� /\�F�=���M0�;�7�n"��p~��)];&y����^]R�~~��9.���e�gg����+���*���(N"=g�cr<�vK�he��j��"�����p��~a�'���;]�%�H��������31k|��euJ���n>��[/������.�
��9�����p��&n�9,d��\6i���zvN��w��Ce�m��=3p��~�9�/�=/+�v���H�W���j:]��L��h�e����������?�g�T�3�'���
�^���9C�VV�����p���B���E�l�������;��B�O1�NtV��X��20��C�^��2w_2������1}Do����x���|������.i�u��{��P�A	
��MX��8F��@�%E�m���]q���-�tZ-�2���'���.
{?	��J�"����i��{�*����X��e>���������>F��m������������{�&��-������?|�b���i��3gL��V�m�g�o��K_���I�i5���n(�Q�oh����6��ZHY�A��#e���8&�4}C��KXx�\7�:s-�]�Zh�#��G�	|~���^���Z�����#^k\��[O���-����NGM��
�/�:Y��V4��-��B���{�������5N�Zd!A���`�`�@#�a���
�b�4��T�t�<��wM_������MF���Jih��Ju#Wa�
�tX�R&���ZY����8��(�am[�t������	'>����)���}�mo5��C�$��/W�WYW�x���}��(,�!1N��l!��� �'b�>As4b�8��|���*�
�F���-�����*��c��s��%<��j��b��L��j�JA�����um
&���ke�����h��_�Y�]�{��v�F��a��6��s�}(F�����8���U��yh�.��'���"A���P��-�4�/�t��n���EE0����#{y����{a��.�	9��z]HH��ttX���{��+���5��k'\��S���8����9q1��������������&��;�7���W�ni������}�	��6��������<�K�������{pq1:L�����u��l�&�f�9wdL�KPh)sK]u�*��j����` 1.gr�����Z�G�����W�����q�<���s�r�{vNENV��k.���R\�eFj�b�������M�_�4��m��{&���t�������S�1'i��~�	���v� �t
�\���{���C] IDAT�Yw��j4������
H���oW�t�;wd�3�g�FKjb���i����t���W�D&���P�;$J��n +��z����o���V����Fz���������wn���5��Q}0}D����O_������c���^[��cZr<�rG}���o��}��g�g�5��0�W�T����������q���X{tJK4��:m�[-���b�����}0yhO�=�w�c9�G��	��;$bX���#���&517��n���dh���tZ
�����Cz����u�����[�:g��Lq����~��h?�0iH$��`���.�o����m}�]$�����g;��{���L1z�S_j4D
]��q�:b*�����
��1��o1s�F<64p�5//0{�l���V������V��e�����IX�6�����#OT�l��f#h4����������.i����6!>V��x=4�����1��n'��`����0v@wT7��`9tZ-�D.~����X��������Ce�H���`��f#��LGiE=�+RbQ�������!>F�F�v"������;]��Q����=.F����=3���i����]��p�t23��g���X%:$��b��`�6��w�y@V:uH@A��U6@�uQ"`\nwT��h��
3�q�%.F��#�
����a����"9>����N�?��aH�N��U|
];&�s�Dl9P�X���kA�h([mvh5��j@�^���x����mE'��i�%-	F�����`�bs�	�uZd�$��hA�����i�&�����V������k[��d�A���f'Xmv���p��,��n���z�V�����PY5lv;���h2Y�Cjb*��`��3�N�!�S
*����v*G�N)8Sk@Fjzw��-�`��1�G:ztJq��S�h0Z0��|�9|M&�LV����i�������V��1:���?0f�
���a�XA�����=3`'���2�����J��J��
��9�j�Gr|,*j�����&23Rp���s��Tu#�v;�����5
�:$`��SN=��`����A��`��L�V���L���k4�0.�;�����d��lE�N�(*�B�����mr��VaTvW�<t
f�
ct���UHI�EYe��vGJB,,V;6���bCjbt:
�����q<}�0�ql����bCb\4 =%g�����F�����z&���;tZ�H�����S��k(����F����`�b�o�-�xp�N8PZ	]�o[���n�Xmv�t9n�:�Z��f�)5'*�a0Ya����K*��
HK�G��Z9����0�m��F�MF+�bu ��bu0�mH���j��b�;����6��k*N�4a\nwh5l�_�.i���mB��8U��.i�������j�uZ���`��f+�����u�m4��@��gNV:��B��:d�&����N���d��k�q�@���0v@w���5(9]��X=��cq��	=;��hy-`tNW�W5�TM#4�`X����F�9Y���������3����x~��,�U�d����	1z-:wpx5�mHN�q�W�N���XtIK���U���!!V��4G�6F�Ee�6!%1�#�h���	���UB���f#�u�c�r�bt0Yl�A��8�E���N����K*J��;�S�Yq�L=�vKC��J$���f�#-)e�
��s�:�cr<v�F��x�W5 6F���T���:�S��m�����Qr�V�F�
�3���#��U".F�S�� ���g�q��D�M&������#��$���CR
�U">�Q�6;�vLB�����T�4�{F2j�H��uf�*(9��q r,�����b�N���^�{�	�z����`0C�s��[������U|�q-�u����F#:&'`P/G��F���N"-9
�3&6�����p��L����j�V�A����;�B��dtKOB��J�W5:���Gl��!f��1:�W76�mCn�l.<�����xT��19M&�}a_����G+�d��l�a����h��NB�q���N)0[l���;�{���0���v�$�
����5��iBzJ<LL2RP^��X��y/NN�EqY5�b��Rp�D5�buH��EM��z�
&�ti��Vl?X����iq�����:z�MF�uOs����q����-�e��I�1�n0bD�.�hN:T�`������3��'�����c���	z������1:�4�1%��^���X���y���Wp<pNM���U���=�O;�3����H:������\G�w���6�U���{����L���y�	�������;�KK=LM�C�^���{���e0������&�����d0Ya4[��_�� ;�#ztJ��c��n0`|n&��D�.p�T
����mE'��K�����?//�k�\�Ul����v�0��~�����o���s�a����K��C�0�0�0�|H��Q��3;N(B]�A�q�\��3�����1�0�0���!466A������$&&����<�a�a�a�e��p�ARr��	�����&����>Sb���0�^��2��a�a�a����r�R(��wR�������I--�����>�
��O?�$a��_�=�C�=�C�=�C�=�C�=�C�=�C+J<=��!g@���p%������l�\�^^=7\���^��a�a�a�(�C��)xf�H��B���	���S|�{r�;�0�0�0����q�<�v|���H�a�a�a���74�0�0�0P����0�0�0P����0�0�0��
�0�0�0��;4�0�0����0�0�0�Z�����c����+o�Co��I��u���FOrj�'uh�'uh�'uh�'uh�'uh�'�Pw������?��
�8k|���'���^�~����S+=������������������������DE�i�m���n5��U�ch`��$&�o�u�*��H,]|;��q<:�����������������������������DE�i��{w�P�!��������}[p8�\\0Z�U�M������6u�������bO��bO��bO��bO��bO��bO"C*�Z�2M��M�=�?���7��a}��o+���}��t}��t��*t���FOrj���`O���S�=�{R���Z�)<���u�������r�������M���E��%���!�i�>�\5���Z�*t���FOrj���`O���S�=�{R���Z�)<���u�"vIrl��k������G/.������0��;zQ�u�Rac�������]G���}�.x-�t������:<��bO��=�'�����j=��uuh�5�����w�-4���O7��Ci	���y���R3��/���$S\��t�����9t�G�*�����d�aO
�bO��@+�9{bO��=�'����������t������'T��kz��lJNG�~SLF�q������s��W�N�|�j�o
��C�=)B�=��� �h����=�'����S{
��:4�
S������h4R���iLFo��e	�T�������X+R:rj�'uh�'uh�'uh�'�h�A]jXE��d��o�S���v�Zy?
�q�P�"-��-��Z���S�=�C�=�C�=�C�=�G�7*������x��w���w~B�k�&Y�_F���-*�bO��bO�)9���:���:���:���z�|�����%���LJ��Lw����9^d
^�s�]OK���� �{R�{b�H��������������������uvh���^C������gRBbW0|euB���\Z�IZ���"�#�{R�{R�{R�{R��+�h���_�F��uH�����(8nD�����W�{R�{b�H�����������������������}Cc?���;�^?,q����:��kEJGN-��-��-��-��-7�=��v|!=8�������:Zq���k)�J�#�{
]GN-���z��S4h���u��bO������B��SK���D�����Q��$JN��K����Z�iXC�����g��O9��S�:rj���uT����@�=��#�{
]GN-����Z*�$�����}z�(���o�#3{SZ��������Nd=��v����#�{R�{R�{b�H��������������D�"2��M5�64���o����i�5�v�7}]�E���KGN-��-��-��Z���S�=�C�=�C�=���;4Du���Ch��d&"j*�E7�'��M��}�R!V"8�t��bO��bO��bO�)9���:���:���L��CCd+��.���>(����F����H/^;�F���U�#�{R�{R�{b�H�������������dAa�����������*$���f_�1��X���s0��|1�M�+x�B���]�V,-�L:��=�'����C+�{bO��=��)<����V>4��N��������ss(-��5�5ZUj&�_I���QZ�9�Ii����i�.�{bO��=����������{bOry
�9�y���WZ�Lg���_��dSr�8���CT��#���B�H�5�n|����:�)<-��{
O�=��#�'>~�i���u�SxZ�)tuz�th�����Q��\�F*\x7���Ms�,!1��ri�'uh�'uh�'uhE�'9���:���:���z��D9jXE��d��o�{�Ld������7�5*�bO��bO��bO���FOrj�'uh�'uh�'�h���:4d��?^��]2h������L�������v1^l������������������bO��bO��bO��
%uh-�G�fRR�d����t���"�P�2���zZR-��=ri�'uh�'uh�'uhE�'9���:���:���z�BDy""�W���5�3)!�+
>����y�����������������������Nu�%�{��t]��h�$�{R�{R�V�(�Cc?���;�^?l���|�c�6:T��,X�����������\:rj�'uh��c��S���1���1�=��c#"[T?q=)#F���;N��S�u��bO��
�vh�������eW>Gk�~QG+�@9w-�Zdl�����dJ���V��+�YN�����k���|s5�9���:�::��Sz��7���6�����Ud-[%�Z�*=�����~�meFit�"�y*�u����r�]��k�x�%	���7���F�}��N����_H�{�~=bp�Fd�c�%�.�������q����1"tE���|�	�b�Z>��\1B-��#���'���kI@�:4�Z~�0|�����������a
=:�VZxR��x�*���h�S+��[�����F.�IT�ZZ��	4���������h�s{��E���U�GQ��s�O����I���C��'���z��Z>T:�\������K
�?���������[h���L3��R�Y�Q�El�ZZ������;���A�zv������S���V�G��(9-�.}�{*j���|=�t[���2{�^���1"T��iq�������	�b��Z~�D�jybD�Y���3N�#D��'��hI@d:4��/��^7�w��V:�����93i�%���_l�3"$�6l�4b������v����l��.c�����%�:����9��w�����:�F���y������"2��B���V��W��O���D-%f_I�o��:l&$���7�(G����A�iI�k�|�r�x��z�����~o>~�������t����jZ�D��E��eV�C��{��^y���z/�s�N�3q��}z�(���o�#3{SZ��������Nd=��v�ym^E�����!�yj���o�=����\K{���3����#B'c�|qB�A$_��-F�'��D2�	b��<�E$ l�
T���������G����r�+�>g��[������������%�7��'������u�$���r{w�P�!��������}[p8�\\0Z�U�M�������0u��H�^�����.#o~=0#FX���K�����D�����Dj&2�[>�"m�Ux������8l��\����9M� �3��~������	�1��O���u�F���9���(�6�k:L���Gc��e�k���h
K��w+�e�������3~{��O@��3���I�7(
��5����O_���Gq�w����	����<��q��xn������o�_��������%�?����Q�{!.9;����oY�bx������"�#Y��\1�/N�#���\1�9NH#�&"�({}{c���4�i�������8{��c���Y�4S��A[�z��������qZxM/�1g������e��1�.{����o�M����������_��}��}k�����,�k����P��S�<�f�[J�__G���M�b<��mA%��9������d������dRb����w7�)���w�s�y��V�P*y�f�����Z?;�2M�}'-k������3��0����������B+�����1��yq��I��x���Co��G�����B�c�GS1-��?���h�]����0*���6�q=
������s�[�D���K���B������0���r��#|�1"X��r�"���3�'��D���i�\R{�jz��t�<�>z��9��m\
}vi���_��k7���;S�9o��Z1_Z���/���������gM��=����^t���z�Q�������� ���'����t��i��+�y=4�"ZP.�7T����cm^�kh�����^��1�Fz����=�g
?���J����m�}�&zd�(zr�������1�=/�sLvP4R�/��`��1�S��
���:���'n��}F�g_L����c�G�C���I#�]�������=(��:;w�z�M����k�z���M�w#B�cDxp���#���r�"����3�'��D��R����C�%���~/}r�XJ�i�������d#������9s���k��?D��
��9�������r�������������
�����t���h�q<��w���=���u9=�S	Y��V�.]����)���%�d*��|�l����5�3.�O�f�C��~�9�&����A����>>.��S�iZ�kC�>u,�������%����4��-��F�P+��V�I����4z�����u3k��tA�
����A��<�#|�H#���o�M���H.�&J���1B a��H#��UI#� Y��-V���1��J�*����`�����Z	;N�1F�D$B���%C��:4~������O�����n		��K�u�H�\Zp����a������������_B�I��.#��+.�	�s��/�����O�|����iJ�>4����u|f#9^A�b.�(��s�rZtM_������������>�n��/�C�%����E��w\Cz���_�����_I���QZ�9�7��h�(qDY����_��B3����?
�����$z�T�D��t��=�#�d���#d6snn��#N��%V��#j���e�:�-N����"r�X����t��=�'�e=F�6��mqB��X���Z��%|j�#�A���lvC%���QMCe��!D�x�6|�*=�������!��*D�V����}��X�C�e#g!9��O��/�9�����q
��b;L�_�A���FC|rXkm��)z�����ue�;A:��|�G��E�!k�U��%�������G%�{"�����+F�2�#�ei�I�����3#�#k5�nbD`;U�#�hU�#��'1b�lY����#�0���`"�#��6N��#F;B��8q����1B����V�E��~�\�����>6����O4(s
=�]�QyriE�'���)w�sT�1�p��4&�7���D������d2�~g
���v?m-��%��S�yR���Z��������z~�zz��	�%1����c���7���$BP�V#���x��#�;~J<O�)r:�i�~���M}�J���S��S��Q�y�&�1lO�i���F'�����x���]��IDAT��uG.�h�$k6����:���J���6&�{bO�I�����FOrk��\I���#�V4z�3�\Z�IZ�I5Z�e�Q�=�C�=�@K�`riE�'��$G����d���VTz�1c�\Z�IZ�I=Z���mL^-��-��t-9��������g4D$���T������}uH�3�����I�������C����� ��Xr[?����SK���U�����~Wz��y�/��nF�[����{�.�����h,����~�{W�O�{@��h�'�����j��W���7�����A/���Z��=�'Q�����0'g-�O��$�$��h:rj�y���Y���H5n6
�:rj��S�T��d,�*W.-������Z"d�N[F-�����HZbd	�I.-1t�������tC��>Y9�d����"�����������
/#ap���bO������B��O+�L��x�K+\9��<~@�
�OV���U���Z�IZ�IZ�IZ�IZ��IN-9=E�:4�>Y�:D�)l��#�{R�{R�{R�{R�V4z�SKNO�#e�3N��|"Na�9���:���:���:���:�����Zrz���6s�d�X�h�;���z=��Z:n�0�����}���'����{bO��=���dZrz�,"vh�U����K
���������^MS���9SH���h��#��(:5�f�(�=����?�����m�{Tdq|���i�n|&%$v��QV�!4o�1q��2��'����{bO��=����Zrz�<"vh,[������D�f��/�z�� J�aZr���%�����tN���{]�>������5_W��'�k`-�t�{bO��=�'�����I-9=)1��5��7_@��_O��>��$f�9�}L�+]�%��DH'�V�y2�|+u���8wk��/��W-����Lc����bO�����#�{
��|9��Sx�'��(�g��-���1�b��� ���F�_�F�zSM���m�i+@�K���K���J����~�x��>��nn�D����C����jj��n97o��I.-���"����S���{��{bO�D������k3T�^C{�|�f�J���7�#���y?�(�����:Of*Y���]C���8���m!"#mre�����=������=)_GN-��I�:rj���`O��Q�g9#"�����FRb���I��K���]�����h����t^�K���Ry�K�=�C�=�C�=�C�=�C�=�C�=�y:4d/�E���I�. ����e�~��������M���\Z�IZ�IZ�IZ�IZ�IZ�I5�����D���O<�&U�V�y���/������"��Q-��-��-��-��-��-�����0Sf���1�K��}����Ot��A��TI>-��-��-��-��-��-��
���C�0�0�0#:�����a�a�aF^�C�0�0�0�j�
�0�0�0��;4�0�0����0�0�0�Z�C�0�0�0�j�
�0�0�0�E��H�a�a�a&V�2���>OIEND�B`�
#21Andres Freund
andres@anarazel.de
In reply to: Robert Haas (#8)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

Hi,

On 2024-04-08 09:26:09 -0400, Robert Haas wrote:

On Sun, Apr 7, 2024 at 6:50 PM Michael Paquier <michael@paquier.xyz> wrote:
And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

I don't think it's very useful to paint a very broad brush here,
unfortunately. Some will just polish commits until the last minute, until the
the dot's on the i's really shine, others will continue picking up more CF
entries until the freeze is reached, others will push half baked stuff. Of
course there will be an increased commit rate, but it does looks like there
was some stuff that looked somewhat rickety.

Greetings,

Andres

#22Matthias van de Meent
boekewurm+postgres@gmail.com
In reply to: Tomas Vondra (#19)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, 8 Apr 2024 at 17:21, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote:

On 4/8/24 16:59, Tom Lane wrote:

Heikki Linnakangas <hlinnaka@iki.fi> writes:

On 08/04/2024 16:43, Tom Lane wrote:

I was just about to pen an angry screed along the same lines.
The commit flux over the past couple days, and even the last
twelve hours, was flat-out ridiculous. These patches weren't
ready a week ago, and I doubt they were ready now.

Can you elaborate, which patches you think were not ready? Let's make
sure to capture any concrete concerns in the Open Items list.

[ shrug... ] There were fifty-some commits on the last day,
some of them quite large, and you want me to finger particular ones?
I can't even have read them all yet.

Yeah, I should have done that sooner, but realistically, there's nothing
like a looming deadline as a motivator. One idea to avoid the mad rush
in the future would be to make the feature freeze deadline more
progressive. For example:
April 1: If you are still working on a feature that you still want to
commit, you must explicitly flag it in the commitfest as "I plan to
commit this very soon".
April 4: You must give a short status update about anything that you
haven't committed yet, with an explanation of how you plan to proceed
with it.
April 5-8: Mandatory daily status updates, explicit approval by the
commitfest manager needed each day to continue working on it.
April 8: Hard feature freeze deadline

This would also give everyone more visibility, so that we're not all
surprised by the last minute flood of commits.

Perhaps something like that could help, but it seems like a lot
of mechanism. I think the real problem is just that committers
need to re-orient their thinking a little. We must get *less*
willing to commit marginal patches, not more so, as the deadline
approaches.

For me the main problem with the pre-freeze crush is that it leaves
pretty much no practical chance to do meaningful review/testing, and
some of the patches likely went through significant changes (at least
judging by the number of messages and patch versions in the associated
threads). That has to have a cost later ...

That being said, I'm not sure the "progressive deadline" proposed by
Heikki would improve that materially, and it seems like a lot of effort
to maintain etc. And even if someone updates the CF app with all the
details, does it even give others sufficient opportunity to review the
new patch versions? I don't think so. (It anything, it does not seem
fair to expect others to do last-minute reviews under pressure.)

Maybe it'd be better to start by expanding the existing rule about not
committing patches introduced for the first time in the last CF.

I don't think adding more hurdles about what to include into the next
release is a good solution. Why the March CF, and not earlier? Or
later? How about unregistered patches? Changes to the docs? Bug fixes?
The March CF already has a submission deadline of "before march", so
that already puts a soft limit on the patches considered for the april
deadline.

What if
we said that patches in the last CF must not go through significant
changes, and if they do it'd mean the patch is moved to the next CF?

I also think there is already a big issue with a lack of interest in
getting existing patches from non-committers committed, reducing the
set of patches that could be considered is just cheating the numbers
and discouraging people from contributing. For one, I know I have
motivation issues keeping up with reviewing other people's patches
when none (well, few, as of this CF) of my patches get reviewed
materially and committed. I don't see how shrinking the window of
opportunity for significant review from 9 to 7 months is going to help
there.

So, I think that'd be counter-productive, as this would get the
perverse incentive to band-aid over (architectural) issues to limit
churn inside the patch, rather than fix those issues in a way that's
appropriate for the project as a whole.

-Matthias

#23Pavel Borisov
pashkin.elfe@gmail.com
In reply to: Matthias van de Meent (#22)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, 8 Apr 2024 at 19:48, Matthias van de Meent <
boekewurm+postgres@gmail.com> wrote:

On Mon, 8 Apr 2024 at 17:21, Tomas Vondra <tomas.vondra@enterprisedb.com>
wrote:

On 4/8/24 16:59, Tom Lane wrote:

Heikki Linnakangas <hlinnaka@iki.fi> writes:

On 08/04/2024 16:43, Tom Lane wrote:

I was just about to pen an angry screed along the same lines.
The commit flux over the past couple days, and even the last
twelve hours, was flat-out ridiculous. These patches weren't
ready a week ago, and I doubt they were ready now.

Can you elaborate, which patches you think were not ready? Let's make
sure to capture any concrete concerns in the Open Items list.

[ shrug... ] There were fifty-some commits on the last day,
some of them quite large, and you want me to finger particular ones?
I can't even have read them all yet.

Yeah, I should have done that sooner, but realistically, there's

nothing

like a looming deadline as a motivator. One idea to avoid the mad rush
in the future would be to make the feature freeze deadline more
progressive. For example:
April 1: If you are still working on a feature that you still want to
commit, you must explicitly flag it in the commitfest as "I plan to
commit this very soon".
April 4: You must give a short status update about anything that you
haven't committed yet, with an explanation of how you plan to proceed
with it.
April 5-8: Mandatory daily status updates, explicit approval by the
commitfest manager needed each day to continue working on it.
April 8: Hard feature freeze deadline

This would also give everyone more visibility, so that we're not all
surprised by the last minute flood of commits.

Perhaps something like that could help, but it seems like a lot
of mechanism. I think the real problem is just that committers
need to re-orient their thinking a little. We must get *less*
willing to commit marginal patches, not more so, as the deadline
approaches.

For me the main problem with the pre-freeze crush is that it leaves
pretty much no practical chance to do meaningful review/testing, and
some of the patches likely went through significant changes (at least
judging by the number of messages and patch versions in the associated
threads). That has to have a cost later ...

That being said, I'm not sure the "progressive deadline" proposed by
Heikki would improve that materially, and it seems like a lot of effort
to maintain etc. And even if someone updates the CF app with all the
details, does it even give others sufficient opportunity to review the
new patch versions? I don't think so. (It anything, it does not seem
fair to expect others to do last-minute reviews under pressure.)

Maybe it'd be better to start by expanding the existing rule about not
committing patches introduced for the first time in the last CF.

I don't think adding more hurdles about what to include into the next
release is a good solution. Why the March CF, and not earlier? Or
later? How about unregistered patches? Changes to the docs? Bug fixes?
The March CF already has a submission deadline of "before march", so
that already puts a soft limit on the patches considered for the april
deadline.

What if
we said that patches in the last CF must not go through significant
changes, and if they do it'd mean the patch is moved to the next CF?

I also think there is already a big issue with a lack of interest in
getting existing patches from non-committers committed, reducing the
set of patches that could be considered is just cheating the numbers
and discouraging people from contributing. For one, I know I have
motivation issues keeping up with reviewing other people's patches
when none (well, few, as of this CF) of my patches get reviewed
materially and committed. I don't see how shrinking the window of
opportunity for significant review from 9 to 7 months is going to help
there.

So, I think that'd be counter-productive, as this would get the
perverse incentive to band-aid over (architectural) issues to limit
churn inside the patch, rather than fix those issues in a way that's
appropriate for the project as a whole.

I second your opinion, Mattias! I also feel that the management of the
review of other contibutor's patches participation is much more important
for a community as a whole. And this could make process of patches
proposals and improvement running, while motivating participation (in all
three roles of contributors, reviewers and committers), not vice versa.

Regards,
Pavel.

#24Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Robert Haas (#8)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 2024-Apr-08, Robert Haas wrote:

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

Another idea is to run a patch triage around mid March 15th, with the
intention of punting patches to the next cycle early enough. But rather
than considering each patch in its own merits, consider the responsible
_committers_ and the load that they are reasonably expected to handle:
determine which patches each committer deems his or her responsibility
for the rest of that March commitfest, and punt all the rest. That way
we have a reasonably vetted amount of effort that each committer is
allowed to spend for the remainder of that commitfest. Excesses should
be obvious enough and discouraged.

--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/

#25Jonathan S. Katz
jkatz@postgresql.org
In reply to: Andres Freund (#21)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 4/8/24 8:29 AM, Andres Freund wrote:

Hi,

On 2024-04-08 09:26:09 -0400, Robert Haas wrote:

On Sun, Apr 7, 2024 at 6:50 PM Michael Paquier <michael@paquier.xyz> wrote:
And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

I don't think it's very useful to paint a very broad brush here,
unfortunately. Some will just polish commits until the last minute, until the
the dot's on the i's really shine, others will continue picking up more CF
entries until the freeze is reached, others will push half baked stuff. Of
course there will be an increased commit rate, but it does looks like there
was some stuff that looked somewhat rickety.

I agree with Andres here (though decline to comment on the rickety-ness
of the patches). I think overcoming human nature to be more proactive at
a deadline is at least a NP-hard problem. This won't change if we adjust
deadlines. I think it's better to ensure we're enforcing best practices
for commits, and maybe that's a separate review to have.

As mentioned in different contexts, we do have several safeguards for a
release:

* We have a (fairly long) beta period; this allows us to remove patches
prior to GA and get in further testing.
* We have a RMT that (as Tom mentioned) can use its powers early and
often to remove patches that are not up to our quality levels.
* We can evaluate the quality of the commits coming in and coach folks
on what to do better.

I understand that a revert is costly, particularly the longer a commit
stays in, and I do 100% agree we should maintain the high commit bar we
have and not rush things in just so "they're in for feature freeze and
we'll clean them up for beta." That's where best practices come in.

I tend to judge the release by the outcome: once we go GA, how buggy is
the release? Did something during the release cycle (e.g. a sloppy
commit during feature freeze, lack of testing) lead to a bug that
warranted an out-of-cycle release? And yes, how we commit things at
feature freeze / through the beta impact that - we should ensure we're
still committing things that we would have committed at a least hectic
time, but understand that the deadline is still a strong motivator co
complete the work.

Thanks,

Jonathan

#26Robert Haas
robertmhaas@gmail.com
In reply to: Matthias van de Meent (#22)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, Apr 8, 2024 at 11:48 AM Matthias van de Meent
<boekewurm+postgres@gmail.com> wrote:

I also think there is already a big issue with a lack of interest in
getting existing patches from non-committers committed, reducing the
set of patches that could be considered is just cheating the numbers
and discouraging people from contributing. For one, I know I have
motivation issues keeping up with reviewing other people's patches
when none (well, few, as of this CF) of my patches get reviewed
materially and committed. I don't see how shrinking the window of
opportunity for significant review from 9 to 7 months is going to help
there.

So, I think that'd be counter-productive, as this would get the
perverse incentive to band-aid over (architectural) issues to limit
churn inside the patch, rather than fix those issues in a way that's
appropriate for the project as a whole.

I don't think you're wrong about any of this, but I don't think Tom
and I are wrong to be upset about the volume of last-minute commits,
either. There's a lot of this stuff that could have been committed a
month ago, or two months ago, or six months ago, and it just wasn't. A
certain amount of that is, as Heikki says, understandable and
expected. People procrastinate. But, if too many people procrastinate
too much, then it becomes a problem, and if you don't do anything
about that problem then, well, you still have one.

I don't want more barriers to getting stuff committed here either, but
I also don't want somebody whose 100-line patch is basically unchanged
since last July to commit it 19 hours before the feature freeze
deadline[1]This is a fictional example, I made up these numbers without checking anything, but I think it's probably not far off some of what actually happened.. That's just making everyone's life more difficult. If
that patch happens to have been submitted by a non-committer, that
non-committer waited an extra 9 months for the commit, not knowing
whether it would actually happen, which like you say is demotivating.
And if it was the committer's own patch then it was probably going in
sooner or later, barring objections, so basically, they just deprived
the project of 9 months of in-tree testing that the patch could have
had basically for free. There's simply no world in which this kind of
behavior is actually helpful to committers, non-committers, reviews,
or the project in general.

--
Robert Haas
EDB: http://www.enterprisedb.com

[1]: This is a fictional example, I made up these numbers without checking anything, but I think it's probably not far off some of what actually happened.
checking anything, but I think it's probably not far off some of what
actually happened.

#27Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Andres Freund (#21)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Tue, Apr 9, 2024 at 12:30 AM Andres Freund <andres@anarazel.de> wrote:

Hi,

On 2024-04-08 09:26:09 -0400, Robert Haas wrote:

On Sun, Apr 7, 2024 at 6:50 PM Michael Paquier <michael@paquier.xyz> wrote:
And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

Some will just polish commits until the last minute, until the
the dot's on the i's really shine, others will continue picking up more CF
entries until the freeze is reached, others will push half baked stuff.

I agree with this part.

Aside from considering how to institute some rules for mitigating the
last-minute rush, it might also be a good idea to consider how to
improve testing the new commits during beta. FWIW in each year, after
feature freeze I personally pick some new features that I didn't get
involved with during the development and do intensive reviews in
April. It might be good if more people did things like that. That
might help finding half baked features earlier and improve the quality
in general. So for example, we list features that could require more
reviews (e.g. because of its volume, complexity, and a span of
influence etc.) and we do intensive reviews for these items. Each item
should be reviewed by other than the author and the committer. We may
want to set aside a specific period for intensive testing.

Regards,

--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com

#28Tomas Vondra
tomas.vondra@enterprisedb.com
In reply to: Matthias van de Meent (#22)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 4/8/24 17:48, Matthias van de Meent wrote:

On Mon, 8 Apr 2024 at 17:21, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote:

...

For me the main problem with the pre-freeze crush is that it leaves
pretty much no practical chance to do meaningful review/testing, and
some of the patches likely went through significant changes (at least
judging by the number of messages and patch versions in the associated
threads). That has to have a cost later ...

That being said, I'm not sure the "progressive deadline" proposed by
Heikki would improve that materially, and it seems like a lot of effort
to maintain etc. And even if someone updates the CF app with all the
details, does it even give others sufficient opportunity to review the
new patch versions? I don't think so. (It anything, it does not seem
fair to expect others to do last-minute reviews under pressure.)

Maybe it'd be better to start by expanding the existing rule about not
committing patches introduced for the first time in the last CF.

I don't think adding more hurdles about what to include into the next
release is a good solution. Why the March CF, and not earlier? Or
later? How about unregistered patches? Changes to the docs? Bug fixes?
The March CF already has a submission deadline of "before march", so
that already puts a soft limit on the patches considered for the april
deadline.

What if
we said that patches in the last CF must not go through significant
changes, and if they do it'd mean the patch is moved to the next CF?

I also think there is already a big issue with a lack of interest in
getting existing patches from non-committers committed, reducing the
set of patches that could be considered is just cheating the numbers
and discouraging people from contributing. For one, I know I have
motivation issues keeping up with reviewing other people's patches
when none (well, few, as of this CF) of my patches get reviewed
materially and committed. I don't see how shrinking the window of
opportunity for significant review from 9 to 7 months is going to help
there.

I 100% understand how frustrating the lack of progress can be, and I
agree we need to do better. I tried to move a number of stuck patches
this CF, and I hope (and plan) to do more of this in the future.

But I don't quite see how would this rule modification change the
situation for non-committers. AFAIK we already have the rule that
(complex) patches should not appear in the last CF for the first time,
and I'd argue that a substantial rework of a complex patch is not that
far from a completely new patch. Sure, the reworks may be based on a
thorough review, so there's a lot of nuance. But still, is it possible
to properly review if it gets reworked at the very end of the CF?

So, I think that'd be counter-productive, as this would get the
perverse incentive to band-aid over (architectural) issues to limit
churn inside the patch, rather than fix those issues in a way that's
appropriate for the project as a whole.

Surely those architectural shortcomings should be identified in a review
- which however requires time to do properly, and thus is an argument
for ensuring there's enough time for such review (which is in direct
conflict with the last-minute crush, IMO).

Once again, I 100% agree we need to do better in handling patches from
non-committers, absolutely no argument there. But does it require this
last-minute crush? I don't think so, it can't be at the expense of
proper review and getting it right. A complex patch needs to be
submitted early in the cycle, not in the last CF. If it's submitted
early, but does not receive enough interest/reviews, I think we need to
fix & improve that - not to rework/push it at the very end.

regards

--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#29Jesper Pedersen
jesper.pedersen@comcast.net
In reply to: Tomas Vondra (#28)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

Hi,

On 4/8/24 14:15, Tomas Vondra wrote:

I think we need to
fix & improve that - not to rework/push it at the very end.

This is going to be very extreme...

Either a patch is ready for merge or it isn't - when 2 or more
Committers agree on it then it can be merged - the policy have to be
discussed of course.

However, development happens all through out the year, so having to wait
for potential feedback during CommitFests windows can stop development
during the other months - I'm talking about non-Committers here...

Having patches on -hackers@ is best, but maybe there is a hybrid model
where they exists in pull requests, tested through CfBot, and merged
when ready - no matter what month it is.

Pull requests could still have labels that ties them to a "CommitFest"
to "high-light" them, but it would make it easier to have a much clearer
cut-off date for feature freeze.

And, pull request labels are easily changed.

March is seeing a lot of last-minute changes...

Just something to think about.

Best regards,
Jesper

#30Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Tomas Vondra (#28)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, 8 Apr 2024 at 20:15, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote:

I 100% understand how frustrating the lack of progress can be, and I
agree we need to do better. I tried to move a number of stuck patches
this CF, and I hope (and plan) to do more of this in the future.

But I don't quite see how would this rule modification change the
situation for non-committers.

The problem that I feel I'm seeing is that committers mostly seem to
materially review large patchsets in the last two commit fests. This
might be not based in reality, but it is definitely how it feels to
me. If someone has stats on this, feel free to share.

I'll sketch a situation: There's a big patch that some non-committer
submitted that has been sitting on the mailinglist for 6 months or
more, only being reviewed by other non-committers, which the submitter
quickly addresses. Then in the final commit fest it is finally
reviewed by a committer, and they say it requires significant changes.
Right now, the submitter can decide to quickly address those changes,
and hope to keep the attention of this committer, to hopefully get it
merged before the deadline after probably a few more back and forths.
But this new rule would mean that those significant changes would be a
reason not to put it in the upcoming release. Which I expect would
first of all really feel like a slap in the face to the submitter,
because it's not their fault that those changes were only requested in
the last commit fest. This would then likely result in the submitter
not following up quickly (why make time right at this moment, if
you're suddenly going to have another full year), which would then
cause the committer to lose context of the patch and thus interest in
the patch. And then finally getting into the exact same situation next
year in the final commit fest, when some other committer didn't agree
with the redesign of the first one and request a new one pushing it
another year.

So yeah, I definitely agree with Matthias. I definitely feel like his
rule would seriously impact contributions made by non-committers.

Maybe a better solution to this problem would be to spread impactful
reviews by committers more evenly throughout the year. Then there
wouldn't be such a rush to address them in the last commit fest.

#31Robert Haas
robertmhaas@gmail.com
In reply to: Jelte Fennema-Nio (#30)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, Apr 8, 2024 at 3:32 PM Jelte Fennema-Nio <postgres@jeltef.nl> wrote:

Maybe a better solution to this problem would be to spread impactful
reviews by committers more evenly throughout the year. Then there
wouldn't be such a rush to address them in the last commit fest.

Spreading activity of all sorts more evenly through the year should
definitely be the goal, I think. It's just not exactly clear how we
can do that.

--
Robert Haas
EDB: http://www.enterprisedb.com

#32Tomas Vondra
tomas.vondra@enterprisedb.com
In reply to: Jelte Fennema-Nio (#30)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 4/8/24 21:32, Jelte Fennema-Nio wrote:

On Mon, 8 Apr 2024 at 20:15, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote:

I 100% understand how frustrating the lack of progress can be, and I
agree we need to do better. I tried to move a number of stuck patches
this CF, and I hope (and plan) to do more of this in the future.

But I don't quite see how would this rule modification change the
situation for non-committers.

The problem that I feel I'm seeing is that committers mostly seem to
materially review large patchsets in the last two commit fests. This
might be not based in reality, but it is definitely how it feels to
me. If someone has stats on this, feel free to share.

I'll sketch a situation: There's a big patch that some non-committer
submitted that has been sitting on the mailinglist for 6 months or
more, only being reviewed by other non-committers, which the submitter
quickly addresses. Then in the final commit fest it is finally
reviewed by a committer, and they say it requires significant changes.
Right now, the submitter can decide to quickly address those changes,
and hope to keep the attention of this committer, to hopefully get it
merged before the deadline after probably a few more back and forths.
But this new rule would mean that those significant changes would be a
reason not to put it in the upcoming release. Which I expect would
first of all really feel like a slap in the face to the submitter,
because it's not their fault that those changes were only requested in
the last commit fest. This would then likely result in the submitter
not following up quickly (why make time right at this moment, if
you're suddenly going to have another full year), which would then
cause the committer to lose context of the patch and thus interest in
the patch. And then finally getting into the exact same situation next
year in the final commit fest, when some other committer didn't agree
with the redesign of the first one and request a new one pushing it
another year.

FWIW I have no doubt this problem is very real. It has never been easy
to get stuff reviewed/committed, and I doubt it improved in last couple
years, considering how the traffic on pgsql-hackers exploded :-(

So yeah, I definitely agree with Matthias. I definitely feel like his
rule would seriously impact contributions made by non-committers.

Maybe a better solution to this problem would be to spread impactful
reviews by committers more evenly throughout the year. Then there
wouldn't be such a rush to address them in the last commit fest.

Right. I think that's mostly what I was aiming for, although I haven't
made it very clear/explicit. But yeah, if the consequence of the "rule"
was that some of the patches are neglected entirely, that'd be pretty
terrible - both for the project and for the contributors.

regards

--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#33Andrew Dunstan
andrew@dunslane.net
In reply to: Alvaro Herrera (#24)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 2024-04-08 Mo 12:07, Alvaro Herrera wrote:

On 2024-Apr-08, Robert Haas wrote:

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

Another idea is to run a patch triage around mid March 15th, with the
intention of punting patches to the next cycle early enough. But rather
than considering each patch in its own merits, consider the responsible
_committers_ and the load that they are reasonably expected to handle:
determine which patches each committer deems his or her responsibility
for the rest of that March commitfest, and punt all the rest. That way
we have a reasonably vetted amount of effort that each committer is
allowed to spend for the remainder of that commitfest. Excesses should
be obvious enough and discouraged.

I quite like the triage idea. But I think there's also a case for being
more a bit more flexible with those patches we don't throw out. A case
close to my heart: I'd have been very sad if the NESTED piece of
JSON_TABLE hadn't made the cut, which it did with a few hours to spare,
and I would not have been alone, far from it. I'd have been happy to
give Amit a few more days or a week if he needed it, for a significant
headline feature.

I know there will be those who say it's the thin end of the wedge and
rulez is rulez, but this is my view.

cheers

andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

#34Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#33)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

Andrew Dunstan <andrew@dunslane.net> writes:

I quite like the triage idea. But I think there's also a case for being
more a bit more flexible with those patches we don't throw out. A case
close to my heart: I'd have been very sad if the NESTED piece of
JSON_TABLE hadn't made the cut, which it did with a few hours to spare,
and I would not have been alone, far from it. I'd have been happy to
give Amit a few more days or a week if he needed it, for a significant
headline feature.

I know there will be those who say it's the thin end of the wedge and
rulez is rulez, but this is my view.

You've certainly been around the project long enough to remember the
times in the past when we let the schedule slip for "one more big
patch". It just about never worked out well, so I'm definitely in
favor of a hard deadline. The trick is to control the tendency to
push in patches that are only almost-ready in order to nominally
meet the deadline. (I don't pretend to be immune from that
temptation myself, but I think I resisted it better than some
this year.)

regards, tom lane

#35Matthias van de Meent
boekewurm+postgres@gmail.com
In reply to: Tomas Vondra (#28)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, 8 Apr 2024 at 20:15, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote:

On 4/8/24 17:48, Matthias van de Meent wrote:

On Mon, 8 Apr 2024 at 17:21, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote:

Maybe it'd be better to start by expanding the existing rule about not
committing patches introduced for the first time in the last CF.

I don't think adding more hurdles about what to include into the next
release is a good solution. Why the March CF, and not earlier? Or
later? How about unregistered patches? Changes to the docs? Bug fixes?
The March CF already has a submission deadline of "before march", so
that already puts a soft limit on the patches considered for the april
deadline.

What if
we said that patches in the last CF must not go through significant
changes, and if they do it'd mean the patch is moved to the next CF?

I also think there is already a big issue with a lack of interest in
getting existing patches from non-committers committed, reducing the
set of patches that could be considered is just cheating the numbers
and discouraging people from contributing. For one, I know I have
motivation issues keeping up with reviewing other people's patches
when none (well, few, as of this CF) of my patches get reviewed
materially and committed. I don't see how shrinking the window of
opportunity for significant review from 9 to 7 months is going to help
there.

I 100% understand how frustrating the lack of progress can be, and I
agree we need to do better. I tried to move a number of stuck patches
this CF, and I hope (and plan) to do more of this in the future.

Thanks in advance.

But I don't quite see how would this rule modification change the
situation for non-committers. AFAIK we already have the rule that
(complex) patches should not appear in the last CF for the first time,
and I'd argue that a substantial rework of a complex patch is not that
far from a completely new patch. Sure, the reworks may be based on a
thorough review, so there's a lot of nuance. But still, is it possible
to properly review if it gets reworked at the very end of the CF?

Possible? Probably, if there is a good shared understanding of why the
previous patch version's approach didn't work well, and if the next
approach is well understood as well. But it's not likely, that I'll
agree with.

But the main issue I have with your suggestion is that the March
commitfest effectively contains all new patches starting from January,
and the leftovers not committed by February. If we start banning all
new patches and those with significant reworks from the March
commitfest, then combined with the lack of CF in May there wouldn't be
any chance for new patches in the first half of the year, and an
effective block on rewrites for 6 months- the next CF is only in July.
Sure, there is a bit of leeway there, as some patches get committed
before the commitfest they're registered in is marked active, but our
development workflow is already quite hostile to incidental
contributor's patches [^0], and increasing the periods in which
authors shouldn't expect their patches to be reviewed due to a major
release that's planned in >5 months is probably not going to help the
case.

So, I think that'd be counter-productive, as this would get the
perverse incentive to band-aid over (architectural) issues to limit
churn inside the patch, rather than fix those issues in a way that's
appropriate for the project as a whole.

Surely those architectural shortcomings should be identified in a review
- which however requires time to do properly, and thus is an argument
for ensuring there's enough time for such review (which is in direct
conflict with the last-minute crush, IMO).

Once again, I 100% agree we need to do better in handling patches from
non-committers, absolutely no argument there. But does it require this
last-minute crush? I don't think so, it can't be at the expense of
proper review and getting it right.

Agreed on this, 100%, but as mentioned above, the March commitfest
contains more than just "last minute crushes" [^1]. I don't think we
should throw out the baby with the bathwater here.

A complex patch needs to be
submitted early in the cycle, not in the last CF. If it's submitted
early, but does not receive enough interest/reviews, I think we need to
fix & improve that - not to rework/push it at the very end.

Agree on all this, too.

-Matthias

[^0] (see e.g. the EXPLAIN SERIALIZE patch thread [0], where the
original author did not have the time capacity to maintain the
patchset over months:
/messages/by-id/ca0adb0e-fa4e-c37e-1cd7-91170b18cae1@gmx.de

[^1] Are there metrics on how many of the committed patches this CF
were new, only registered this CF, and if they're more or less
distributed to the feature freeze when compared to longer-running
patchess? I can probably build these statistics by extracting the data
from the webpages, but that's quite tedious.
A manual count gets me 68 new patches (~50% of all committed
registered patches); distribution comparison isn't in my time budget.

#36Tomas Vondra
tomas.vondra@enterprisedb.com
In reply to: Matthias van de Meent (#35)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 4/9/24 11:25, Matthias van de Meent wrote:

On Mon, 8 Apr 2024 at 20:15, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote:

On 4/8/24 17:48, Matthias van de Meent wrote:

On Mon, 8 Apr 2024 at 17:21, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote:

Maybe it'd be better to start by expanding the existing rule about not
committing patches introduced for the first time in the last CF.

I don't think adding more hurdles about what to include into the next
release is a good solution. Why the March CF, and not earlier? Or
later? How about unregistered patches? Changes to the docs? Bug fixes?
The March CF already has a submission deadline of "before march", so
that already puts a soft limit on the patches considered for the april
deadline.

What if
we said that patches in the last CF must not go through significant
changes, and if they do it'd mean the patch is moved to the next CF?

I also think there is already a big issue with a lack of interest in
getting existing patches from non-committers committed, reducing the
set of patches that could be considered is just cheating the numbers
and discouraging people from contributing. For one, I know I have
motivation issues keeping up with reviewing other people's patches
when none (well, few, as of this CF) of my patches get reviewed
materially and committed. I don't see how shrinking the window of
opportunity for significant review from 9 to 7 months is going to help
there.

I 100% understand how frustrating the lack of progress can be, and I
agree we need to do better. I tried to move a number of stuck patches
this CF, and I hope (and plan) to do more of this in the future.

Thanks in advance.

But I don't quite see how would this rule modification change the
situation for non-committers. AFAIK we already have the rule that
(complex) patches should not appear in the last CF for the first time,
and I'd argue that a substantial rework of a complex patch is not that
far from a completely new patch. Sure, the reworks may be based on a
thorough review, so there's a lot of nuance. But still, is it possible
to properly review if it gets reworked at the very end of the CF?

Possible? Probably, if there is a good shared understanding of why the
previous patch version's approach didn't work well, and if the next
approach is well understood as well. But it's not likely, that I'll
agree with.

But the main issue I have with your suggestion is that the March
commitfest effectively contains all new patches starting from January,
and the leftovers not committed by February. If we start banning all
new patches and those with significant reworks from the March
commitfest, then combined with the lack of CF in May there wouldn't be
any chance for new patches in the first half of the year, and an
effective block on rewrites for 6 months- the next CF is only in July.
Sure, there is a bit of leeway there, as some patches get committed
before the commitfest they're registered in is marked active, but our
development workflow is already quite hostile to incidental
contributor's patches [^0], and increasing the periods in which
authors shouldn't expect their patches to be reviewed due to a major
release that's planned in >5 months is probably not going to help the
case.

But I don't think I suggested to ban such patches from the March CF
entirely. Surely those patches can still be submitted, reviewed, and
even reworked in the last CF. All I said is it might be better to treat
those patches as not committable by default. Sorry if that wasn't clear
enough ...

Would this be an additional restriction? I'm not quite sure. Surely if
the intent is to only commit patches that we agree are in "sufficiently
good" shape, and getting them into such shape requires time & reviews,
this would not be a significant change.

FWIW I'm not a huge fan of hard unbreakable rules, so there should be
some leeway when justified, but the bar would be somewhat higher (clear
consensus, RMT having a chance to say no, ...).

So, I think that'd be counter-productive, as this would get the
perverse incentive to band-aid over (architectural) issues to limit
churn inside the patch, rather than fix those issues in a way that's
appropriate for the project as a whole.

Surely those architectural shortcomings should be identified in a review
- which however requires time to do properly, and thus is an argument
for ensuring there's enough time for such review (which is in direct
conflict with the last-minute crush, IMO).

Once again, I 100% agree we need to do better in handling patches from
non-committers, absolutely no argument there. But does it require this
last-minute crush? I don't think so, it can't be at the expense of
proper review and getting it right.

Agreed on this, 100%, but as mentioned above, the March commitfest
contains more than just "last minute crushes" [^1]. I don't think we
should throw out the baby with the bathwater here.

A complex patch needs to be
submitted early in the cycle, not in the last CF. If it's submitted
early, but does not receive enough interest/reviews, I think we need to
fix & improve that - not to rework/push it at the very end.

Agree on all this, too.

OK

-Matthias

[^0] (see e.g. the EXPLAIN SERIALIZE patch thread [0], where the
original author did not have the time capacity to maintain the
patchset over months:
/messages/by-id/ca0adb0e-fa4e-c37e-1cd7-91170b18cae1@gmx.de

Yeah, this is terrible :-(

[^1] Are there metrics on how many of the committed patches this CF
were new, only registered this CF, and if they're more or less
distributed to the feature freeze when compared to longer-running
patchess? I can probably build these statistics by extracting the data
from the webpages, but that's quite tedious.
A manual count gets me 68 new patches (~50% of all committed
registered patches); distribution comparison isn't in my time budget.

I suppose there are, or would be possible to get from the CF app. And
perhaps it'd be good to look at some of this, I think a lot of the
discussion here is based on very subjective perceptions of how the
process works.

regards

--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#37Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#34)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On 2024-04-08 Mo 19:26, Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

I quite like the triage idea. But I think there's also a case for being
more a bit more flexible with those patches we don't throw out. A case
close to my heart: I'd have been very sad if the NESTED piece of
JSON_TABLE hadn't made the cut, which it did with a few hours to spare,
and I would not have been alone, far from it. I'd have been happy to
give Amit a few more days or a week if he needed it, for a significant
headline feature.
I know there will be those who say it's the thin end of the wedge and
rulez is rulez, but this is my view.

You've certainly been around the project long enough to remember the
times in the past when we let the schedule slip for "one more big
patch". It just about never worked out well, so I'm definitely in
favor of a hard deadline. The trick is to control the tendency to
push in patches that are only almost-ready in order to nominally
meet the deadline. (I don't pretend to be immune from that
temptation myself, but I think I resisted it better than some
this year.)

If we want to change how things are working I suspect we probably need
something a lot more radical than any of the suggestions I've seen
floating around. I don't know what that might be, but ISTM we're not
thinking boldly enough.

cheers

andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

#38Bruce Momjian
bruce@momjian.us
In reply to: Jelte Fennema-Nio (#30)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, Apr 8, 2024 at 09:32:14PM +0200, Jelte Fennema-Nio wrote:

I'll sketch a situation: There's a big patch that some non-committer
submitted that has been sitting on the mailinglist for 6 months or
more, only being reviewed by other non-committers, which the submitter
quickly addresses. Then in the final commit fest it is finally
reviewed by a committer, and they say it requires significant changes.
Right now, the submitter can decide to quickly address those changes,
and hope to keep the attention of this committer, to hopefully get it
merged before the deadline after probably a few more back and forths.
But this new rule would mean that those significant changes would be a
reason not to put it in the upcoming release. Which I expect would
first of all really feel like a slap in the face to the submitter,
because it's not their fault that those changes were only requested in
the last commit fest. This would then likely result in the submitter
not following up quickly (why make time right at this moment, if
you're suddenly going to have another full year), which would then
cause the committer to lose context of the patch and thus interest in
the patch. And then finally getting into the exact same situation next
year in the final commit fest, when some other committer didn't agree
with the redesign of the first one and request a new one pushing it
another year.

Yes, I can see this happening. :-(

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Only you can decide what is important to you.

#39Bruce Momjian
bruce@momjian.us
In reply to: Robert Treat (#11)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, Apr 8, 2024 at 10:41:17AM -0400, Robert Treat wrote:

Unfortunately many humans are hardwired towards procrastination and
last minute heroics (it's one reason why deadline driven development
works even though in the long run it tends to be bad practice), and
historically was one of the driving factors in why we started doing
commitfests in the first place (you should have seen the mad dash of
commits before we had that process), so ISTM that it's not completely
avoidable...

That said, are you suggesting that the feature freeze deadline be
random, and also held in secret by the RMT, only to be announced after
the freeze time has passed? This feels weird, but might apply enough
deadline related pressure while avoiding last minute shenanigans.

Committing code is a hard job, no question. However, committers have to
give up the idea that they should wait for brilliant ideas before
finalizing patches. If you come up with a better idea later, great, but
don't wait to finalize patches.

I used to write college papers much too late because I expected some
brilliant idea to come to me, and it rarely happened. I learned to
write the paper with the ideas I had, and if I come up with a better
idea later, I can add it to the end.

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Only you can decide what is important to you.

#40Robert Haas
robertmhaas@gmail.com
In reply to: Bruce Momjian (#39)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Tue, Apr 9, 2024 at 5:16 PM Bruce Momjian <bruce@momjian.us> wrote:

Committing code is a hard job, no question. However, committers have to
give up the idea that they should wait for brilliant ideas before
finalizing patches. If you come up with a better idea later, great, but
don't wait to finalize patches.

Completely agreed. If your ideas are too bad, you should just give up.
But if they're basically fine and you're just waiting for inspiration
to strike from above, you might as well get on with it. If it turns
out that you've broken something, well, that sucks, but it's still
better to get that out of the way in January ... or November ... or
August ... rather than waiting until March or April.

--
Robert Haas
EDB: http://www.enterprisedb.com

#41Ants Aasma
ants.aasma@cybertec.at
In reply to: Robert Haas (#8)
Re: PostgreSQL 17 Release Management Team & Feature Freeze

On Mon, 8 Apr 2024 at 16:26, Robert Haas <robertmhaas@gmail.com> wrote:

And maybe we need to think of a way to further mitigate this crush of
last minute commits. e.g. In the last week, you can't have more
feature commits, or more lines of insertions in your commits, than you
did in the prior 3 weeks combined. I don't know. I think this mad rush
of last-minute commits is bad for the project.

I think some part of this rush of commits could also be explained as a form
of entrainment[1]Emergent synchronization of interacting oscillators, see: https://en.wikipedia.org/wiki/Injection_locking#Entrainment https://en.wikipedia.org/wiki/Entrainment_(biomusicology). Only patches reasonably close to commit will get picked
up with extra attention to get them ready before the deadline. After the
release hammer drops, the pool of remaining patches will have few patches
close to commit remaining. And to make matters worse the attention of
working on them will be spread thinner. When repeated, this pattern can be
self reinforcing.

If this hypothesis is true, maybe some forces could be introduced to
counteract this natural tendency. I don't have any bright ideas on how
exactly yet.

Ants

[1]: Emergent synchronization of interacting oscillators, see: https://en.wikipedia.org/wiki/Injection_locking#Entrainment https://en.wikipedia.org/wiki/Entrainment_(biomusicology)
https://en.wikipedia.org/wiki/Injection_locking#Entrainment
https://en.wikipedia.org/wiki/Entrainment_(biomusicology)