Thread: Last gasp

Last gasp

From
Simon Riggs
Date:
These patches aren't marked with a committer

FK arrays
ECPG fetch
foreign stats
command triggers
check function
parallel pg_dump

Does that mean myself or others should be claiming them for commit/reject?

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 1:28 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
> These patches aren't marked with a committer
>
> FK arrays
> ECPG fetch
> foreign stats
> command triggers
> check function
> parallel pg_dump
>
> Does that mean myself or others should be claiming them for commit/reject?

I've been right in the middle of the command triggers stuff, so I
suppose I would pick that up for commit if it were ready, but there
hasn't been a new version this week unless I've missed it, and even if
the new version arrived right this minute, I don't think I or anyone
else can do a good job committing a patch of that size in the time
remaining.  So I think it's time to formally put that one out of its
misery.

I think the ECPG fetch patch is about ready to go.  Normally Michael
Meskes handles all ECPG patches, but I'm not sure what his schedule is
like.  I'm not sure what the politics are of someone else touching
that code.

Heikki recently produced a revision of the check function patch, but
I'm not sure whether he's planning to commit that or whether it's a
demonstration of a broader rework he wants Pavel (or someone else) to
do.  At any rate, I think it's up to him whether or not to commit
that.

I think Andrew is working on parallel pg_dump, so I suspect the rest
of us should stay out of the way.  I've also looked at it extensively
and will work on it if Andrew isn't, but I don't think it's ready to
commit.  A few preliminary pieces could go in, perhaps.

I am not sure what the state of the foreign stats patch is, or FK arrays.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Heikki Linnakangas
Date:
On 05.04.2012 21:00, Robert Haas wrote:
> Heikki recently produced a revision of the check function patch, but
> I'm not sure whether he's planning to commit that or whether it's a
> demonstration of a broader rework he wants Pavel (or someone else) to
> do.  At any rate, I think it's up to him whether or not to commit
> that.

Yeah, I guess it's up to me, now that I've touched that code. I don't 
feel ready to commit it yet. It needs some more cleanup, which I could 
do, but frankly even with the refactoring I did I'm still not totally 
happy with the way it works. I feel that there ought to be a less 
duplicative approach, but I don't have any more concrete proposals. 
Unless someone more motivated picks up the patch now, I think it needs 
to be pushed to 9.3.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


Re: Last gasp

From
Tom Lane
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> On Thu, Apr 5, 2012 at 1:28 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
>> These patches aren't marked with a committer

> I think the ECPG fetch patch is about ready to go.  Normally Michael
> Meskes handles all ECPG patches, but I'm not sure what his schedule is
> like.  I'm not sure what the politics are of someone else touching
> that code.

I think we should leave that one for Michael.  Frankly, none of the
rest of us pay enough attention to ecpg to be candidates to take
responsibility for nontrivial patches there.

In fact, for *most* of these patches the fact that they're still here
should give you pause about just committing them.

> I am not sure what the state of the foreign stats patch is, or FK arrays.

I'm taking the foreign stats one; as I mentioned a bit ago, I think we
need to push an FDW ANALYZE hook into 9.2.  I don't like the details of
what's in the current submission but I think it's fixable with not much
effort.

The FK arrays one I'm kind of queasy about.  It's a cool-sounding idea
but I'm not convinced that all the corner-case details have been
adequately thought through, and I'm scared of being unable to fix any
such bugs in later versions because of backwards compatibility worries.
It'd be a lot better to be pushing this in at the start of a devel cycle
than the end.

Most of the rest of this stuff I'm about ready to put off to 9.3.
The risk/reward ratio for committing it on the last day of the last
9.2 fest doesn't look good.
        regards, tom lane


Re: Last gasp

From
Simon Riggs
Date:
On Thu, Apr 5, 2012 at 7:00 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Thu, Apr 5, 2012 at 1:28 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
>> These patches aren't marked with a committer
>>
>> FK arrays
>> ECPG fetch
>> foreign stats
>> command triggers
>> check function
>> parallel pg_dump
>>
>> Does that mean myself or others should be claiming them for commit/reject?
>
> I've been right in the middle of the command triggers stuff, so I
> suppose I would pick that up for commit if it were ready, but there
> hasn't been a new version this week unless I've missed it, and even if
> the new version arrived right this minute, I don't think I or anyone
> else can do a good job committing a patch of that size in the time
> remaining.  So I think it's time to formally put that one out of its
> misery.

I think doing so will cause substantial misery for many users. I find
it hard to believe that such a simple concept hasn't managed to
produce some workable subset after months of work.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 2:17 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
> On Thu, Apr 5, 2012 at 7:00 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>> On Thu, Apr 5, 2012 at 1:28 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
>>> These patches aren't marked with a committer
>>>
>>> FK arrays
>>> ECPG fetch
>>> foreign stats
>>> command triggers
>>> check function
>>> parallel pg_dump
>>>
>>> Does that mean myself or others should be claiming them for commit/reject?
>>
>> I've been right in the middle of the command triggers stuff, so I
>> suppose I would pick that up for commit if it were ready, but there
>> hasn't been a new version this week unless I've missed it, and even if
>> the new version arrived right this minute, I don't think I or anyone
>> else can do a good job committing a patch of that size in the time
>> remaining.  So I think it's time to formally put that one out of its
>> misery.
>
> I think doing so will cause substantial misery for many users. I find
> it hard to believe that such a simple concept hasn't managed to
> produce some workable subset after months of work.

I am not interested in relitigating on this thread what has already
been extensively discussed nearby.  Dimitri and I agreed on numerous
changes to try to make the behavior sane, and those changes were
suggested and agreed to for good reason.  We didn't agree on every
point, of course, but we did agree on most of it, and there is no
patch that implements what was agreed.  Even if there were, there is
not time to review and commit a heavily revised version of a >1000
line patch before tomorrow, and any suggestion to the contrary is just
plain wrong.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Pavel Stehule
Date:
2012/4/5 Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>:
> On 05.04.2012 21:00, Robert Haas wrote:
>>
>> Heikki recently produced a revision of the check function patch, but
>> I'm not sure whether he's planning to commit that or whether it's a
>> demonstration of a broader rework he wants Pavel (or someone else) to
>> do.  At any rate, I think it's up to him whether or not to commit
>> that.
>
>
> Yeah, I guess it's up to me, now that I've touched that code. I don't feel
> ready to commit it yet. It needs some more cleanup, which I could do, but
> frankly even with the refactoring I did I'm still not totally happy with the
> way it works. I feel that there ought to be a less duplicative approach, but
> I don't have any more concrete proposals. Unless someone more motivated
> picks up the patch now, I think it needs to be pushed to 9.3.

I played with more general plpgpsm walker, but I am sure, so it is
wrong way - request for checking and dumping, and releasing plans are
too different. So there are not too much possibilities :(

The main issue is in design of exec nodes. I have no idea how to move
checking to there without increasing complexity in pl_exec.c. Some are
relative simply, but "case", "if", "block" are not.

Other idea is moving plpgsql_check_function to contrib.

Regards

Pavel

>
> --
>  Heikki Linnakangas
>  EnterpriseDB   http://www.enterprisedb.com

t


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 2:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> In fact, for *most* of these patches the fact that they're still here
> should give you pause about just committing them.

Um, yeah.

>> I am not sure what the state of the foreign stats patch is, or FK arrays.
>
> I'm taking the foreign stats one; as I mentioned a bit ago, I think we
> need to push an FDW ANALYZE hook into 9.2.  I don't like the details of
> what's in the current submission but I think it's fixable with not much
> effort.

Cool.

> The FK arrays one I'm kind of queasy about.  It's a cool-sounding idea
> but I'm not convinced that all the corner-case details have been
> adequately thought through, and I'm scared of being unable to fix any
> such bugs in later versions because of backwards compatibility worries.
> It'd be a lot better to be pushing this in at the start of a devel cycle
> than the end.

I've been feeling that that patch has been suffering from a lack of
reviewer attention, which is a real shame, because I think the
functionality is indeed really cool.  But I haven't looked at it
enough to know what kind of shape it's in.

> Most of the rest of this stuff I'm about ready to put off to 9.3.
> The risk/reward ratio for committing it on the last day of the last
> 9.2 fest doesn't look good.

+1.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Alvaro Herrera
Date:
Excerpts from Simon Riggs's message of jue abr 05 14:28:54 -0300 2012:
> These patches aren't marked with a committer
>
> FK arrays
> ECPG fetch
> foreign stats
> command triggers
> check function
> parallel pg_dump
>
> Does that mean myself or others should be claiming them for commit/reject?

The FK locking patch isn't on this list; however, I'm hijacking this
thread to say that some benchmarking runs we tried weren't all that
great, showing 9% performance degradation on stock pgbench -- i.e.  a
large hit that will harm everybody even if they are not using FKs at
all.  I'm thus setting the patch returned with feedback, which is sure
to make several hackers happy and tons of users unhappy.

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


Re: Last gasp

From
Simon Riggs
Date:
On Thu, Apr 5, 2012 at 7:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> The FK arrays one I'm kind of queasy about.  It's a cool-sounding idea
> but I'm not convinced that all the corner-case details have been
> adequately thought through, and I'm scared of being unable to fix any
> such bugs in later versions because of backwards compatibility worries.
> It'd be a lot better to be pushing this in at the start of a devel cycle
> than the end.

OK, that's clear. I would have taken it, but not now.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 2:37 PM, Alvaro Herrera
<alvherre@commandprompt.com> wrote:
> The FK locking patch isn't on this list; however, I'm hijacking this
> thread to say that some benchmarking runs we tried weren't all that
> great, showing 9% performance degradation on stock pgbench -- i.e.  a
> large hit that will harm everybody even if they are not using FKs at
> all.  I'm thus setting the patch returned with feedback, which is sure
> to make several hackers happy and tons of users unhappy.

Ouch!  That's a real bummer.  It makes me glad that you tested it, but
I can't say I'm happy about the outcome.  Did you get in any insight
into where the regression is coming from?

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Simon Riggs
Date:
On Thu, Apr 5, 2012 at 7:37 PM, Alvaro Herrera
<alvherre@commandprompt.com> wrote:

> The FK locking patch isn't on this list;

We'd agreed you were the assigned committer, hence not on list.

> however, I'm hijacking this
> thread to say that some benchmarking runs we tried weren't all that
> great, showing 9% performance degradation on stock pgbench -- i.e.  a
> large hit that will harm everybody even if they are not using FKs at
> all.  I'm thus setting the patch returned with feedback, which is sure
> to make several hackers happy and tons of users unhappy.

I've done what I can to alter that, but I think its the right decision
at this point. I would say its been the largest and most subtle patch
submitted, so please don't be down by that.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Hannu Krosing
Date:
On Thu, 2012-04-05 at 14:27 -0400, Robert Haas wrote:
> On Thu, Apr 5, 2012 at 2:17 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
> > On Thu, Apr 5, 2012 at 7:00 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> >> On Thu, Apr 5, 2012 at 1:28 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
> >>> These patches aren't marked with a committer
> >>>
> >>> FK arrays
> >>> ECPG fetch
> >>> foreign stats
> >>> command triggers
> >>> check function
> >>> parallel pg_dump
> >>>
> >>> Does that mean myself or others should be claiming them for commit/reject?
> >>
> >> I've been right in the middle of the command triggers stuff, so I
> >> suppose I would pick that up for commit if it were ready, but there
> >> hasn't been a new version this week unless I've missed it, and even if
> >> the new version arrived right this minute, I don't think I or anyone
> >> else can do a good job committing a patch of that size in the time
> >> remaining.  So I think it's time to formally put that one out of its
> >> misery.
> >
> > I think doing so will cause substantial misery for many users. I find
> > it hard to believe that such a simple concept hasn't managed to
> > produce some workable subset after months of work.
> 
> I am not interested in relitigating on this thread what has already
> been extensively discussed nearby.  Dimitri and I agreed on numerous
> changes to try to make the behavior sane,

To me it looked like the scope of the patch started to suddenly expand
exponentially a few days ago from a simple COMMAND TRIGGERS, which would
have finally enabled trigger-based or "logical" replication systems to
do full replication to something recursive which would attempt to cover
all weird combinations of commands triggering other commands for which
there is no real use-case in view, except a suggestion "don't do it" :)

The latest patch (v18) seemed quite ok for its original intended
purpose.

>  and those changes were
> suggested and agreed to for good reason.  We didn't agree on every
> point, of course, but we did agree on most of it, and there is no
> patch that implements what was agreed.  Even if there were, there is
> not time to review and commit a heavily revised version of a >1000
> line patch before tomorrow, and any suggestion to the contrary is just
> plain wrong.
> 
> -- 
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
> 




Re: Last gasp

From
Michael Meskes
Date:
On Thu, Apr 05, 2012 at 02:23:03PM -0400, Tom Lane wrote:
> > I think the ECPG fetch patch is about ready to go.  Normally Michael
> > Meskes handles all ECPG patches, but I'm not sure what his schedule is
> > like.  I'm not sure what the politics are of someone else touching
> > that code.
>
> I think we should leave that one for Michael.  Frankly, none of the
> rest of us pay enough attention to ecpg to be candidates to take
> responsibility for nontrivial patches there.

I will take care of this over the next couple days. Is the patch that Zoltan
send last Friday the latest version?

Michael
--
Michael Meskes
Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org
Jabber: michael.meskes at googlemail dot com
VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL


Re: Last gasp

From
Hannu Krosing
Date:
On Thu, 2012-04-05 at 20:46 +0200, Hannu Krosing wrote:
> On Thu, 2012-04-05 at 14:27 -0400, Robert Haas wrote:
> > On Thu, Apr 5, 2012 at 2:17 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

...
> > > I think doing so will cause substantial misery for many users. I find
> > > it hard to believe that such a simple concept hasn't managed to
> > > produce some workable subset after months of work.
> > 
> > I am not interested in relitigating on this thread what has already
> > been extensively discussed nearby.  Dimitri and I agreed on numerous
> > changes to try to make the behavior sane,
> 
> To me it looked like the scope of the patch started to suddenly expand
> exponentially a few days ago from a simple COMMAND TRIGGERS, which would
> have finally enabled trigger-based or "logical" replication systems to
> do full replication to something recursive which would attempt to cover
> all weird combinations of commands triggering other commands for which
> there is no real use-case in view, except a suggestion "don't do it" :)
> 
> The latest patch (v18) seemed quite ok for its original intended
> purpose.

Sorry, i hit "send!" too early.

Would it be possible to put some "command trigger hooks" in a few
strategic places so that some trigger-like functionality could be loaded
at run time, mainly with a view of writing DDL replication
'non-triggers' , mostly based on current v18 code, but of course without
all the nice CREATE TRIGGER syntax ?

perhaps created with a pg_create_command_trigger(...)

that is something in the line of how Full Text Indexing was done for a
long time.

> >  and those changes were
> > suggested and agreed to for good reason.  We didn't agree on every
> > point, of course, but we did agree on most of it, and there is no
> > patch that implements what was agreed.  Even if there were, there is
> > not time to review and commit a heavily revised version of a >1000
> > line patch before tomorrow, and any suggestion to the contrary is just
> > plain wrong.
> > 
> > -- 
> > Robert Haas
> > EnterpriseDB: http://www.enterprisedb.com
> > The Enterprise PostgreSQL Company
> > 
> 
> 
> 




Re: Last gasp

From
Andrew Dunstan
Date:

On 04/05/2012 02:00 PM, Robert Haas wrote:
> I think Andrew is working on parallel pg_dump, so I suspect the rest 
> of us should stay out of the way. I've also looked at it extensively 
> and will work on it if Andrew isn't, but I don't think it's ready to 
> commit. A few preliminary pieces could go in, perhaps.


I am working on it when I get time, but I am slammed. It would probably 
take me a couple of full days to do a thorough code review, and finding 
that is hard.

cheers

andrew


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 2:46 PM, Hannu Krosing <hannu@krosing.net> wrote:
> To me it looked like the scope of the patch started to suddenly expand
> exponentially a few days ago from a simple COMMAND TRIGGERS, which would
> have finally enabled trigger-based or "logical" replication systems to
> do full replication to something recursive which would attempt to cover
> all weird combinations of commands triggering other commands for which
> there is no real use-case in view, except a suggestion "don't do it" :)
>
> The latest patch (v18) seemed quite ok for its original intended
> purpose.

OK, so here we go, rehashing the discussion we already had on thread A
on thread B.  The particular issue you are mentioning there was not
the reason that patch isn't going to end up in 9.2.  If the only thing
the patch had needed was a little renaming and syntax cleanup, I would
have done it myself (or Dimitri would have) and I would have committed
it.  That is not the problem, or at least it's not the only problem.
There are at least two other major issues:

- The patch as posted fires triggers at unpredictable times depending
on which command you're executing.  Some things that are really
sub-commands fire triggers anyway as if they were toplevel commands;
others don't; whether or not it happens in a particular case is
determined by implementation details rather than by any consistent
principle of operation.  In the cases where triggers do fire, they
don't always fire at the same place in the execution sequence.

- The patch isn't safe if the triggers try to execute DDL on the
object being modified.  It's not exactly clear what misbehavior will
result in every case, but it is clear that that it hasn't really been
thought about.

Now, if anyone who was actually following the conversation thought
these things were not problems, they could have written back to the
relevant thread and said, hey, I don't mind if the trigger firing
behavior changes every time someone does any refactoring of our
badly-written DDL code and if the server blows up in random ways when
someone does something unexpected in the trigger that's OK with me
too.  Maybe not surprisingly, no one said that.  Two people wrote into
that thread after my latest round of reviewing and both of them
disagreed with only minor points of my review, and we had a technical
discussion about those issues.  But showing up after the fact and
acting as if there were no serious issues found during that review is
either disingenuous or a sign that you didn't really read the thread.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 2:58 PM, Hannu Krosing <hannu@krosing.net> wrote:
> On Thu, 2012-04-05 at 20:46 +0200, Hannu Krosing wrote:
>> On Thu, 2012-04-05 at 14:27 -0400, Robert Haas wrote:
>> > On Thu, Apr 5, 2012 at 2:17 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
>
> ...
>> > > I think doing so will cause substantial misery for many users. I find
>> > > it hard to believe that such a simple concept hasn't managed to
>> > > produce some workable subset after months of work.
>> >
>> > I am not interested in relitigating on this thread what has already
>> > been extensively discussed nearby.  Dimitri and I agreed on numerous
>> > changes to try to make the behavior sane,
>>
>> To me it looked like the scope of the patch started to suddenly expand
>> exponentially a few days ago from a simple COMMAND TRIGGERS, which would
>> have finally enabled trigger-based or "logical" replication systems to
>> do full replication to something recursive which would attempt to cover
>> all weird combinations of commands triggering other commands for which
>> there is no real use-case in view, except a suggestion "don't do it" :)
>>
>> The latest patch (v18) seemed quite ok for its original intended
>> purpose.
>
> Sorry, i hit "send!" too early.
>
> Would it be possible to put some "command trigger hooks" in a few
> strategic places so that some trigger-like functionality could be loaded
> at run time, mainly with a view of writing DDL replication
> 'non-triggers' , mostly based on current v18 code, but of course without
> all the nice CREATE TRIGGER syntax ?

I certainly think that would be a possible way forward, but I don't
think we should try to engineer that in the next 24 hours.  Had the
original goals of the patch been somewhat more modest, I think we
could have gotten it into 9.2, but there's no time to rethink the
scope of the patch now.  With all respect for Dimitri and his *very*
hard work on this subject, submitting a brand new major feature to the
last CommitFest is not really a great way to get it committed,
especially given that we didn't have consensus on the design before he
started coding.  There is every reason to think that we can get this
feature into 9.3 with some more work, but it's not ready yet, and
wishing won't make it so.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Alvaro Herrera
Date:
Excerpts from Robert Haas's message of jue abr 05 15:40:17 -0300 2012:
>
> On Thu, Apr 5, 2012 at 2:37 PM, Alvaro Herrera
> <alvherre@commandprompt.com> wrote:
> > The FK locking patch isn't on this list; however, I'm hijacking this
> > thread to say that some benchmarking runs we tried weren't all that
> > great, showing 9% performance degradation on stock pgbench -- i.e.  a
> > large hit that will harm everybody even if they are not using FKs at
> > all.  I'm thus setting the patch returned with feedback, which is sure
> > to make several hackers happy and tons of users unhappy.
>
> Ouch!  That's a real bummer.  It makes me glad that you tested it, but
> I can't say I'm happy about the outcome.  Did you get in any insight
> into where the regression is coming from?

Not really -- after reaching that conclusion I dropped immediate work on
the patch to do other stuff (like checking whether there's any other
patch I can help with in commitfest).  I will resume work later, for a
(hopefully early) 9.3 submission.

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


Re: Last gasp

From
Hannu Krosing
Date:
On Thu, 2012-04-05 at 15:02 -0400, Robert Haas wrote:
> On Thu, Apr 5, 2012 at 2:46 PM, Hannu Krosing <hannu@krosing.net> wrote:
> > To me it looked like the scope of the patch started to suddenly expand
> > exponentially a few days ago from a simple COMMAND TRIGGERS, which would
> > have finally enabled trigger-based or "logical" replication systems to
> > do full replication to something recursive which would attempt to cover
> > all weird combinations of commands triggering other commands for which
> > there is no real use-case in view, except a suggestion "don't do it" :)
> >
> > The latest patch (v18) seemed quite ok for its original intended
> > purpose.
> 
> OK, so here we go, rehashing the discussion we already had on thread A
> on thread B.  The particular issue you are mentioning there was not
> the reason that patch isn't going to end up in 9.2.  If the only thing
> the patch had needed was a little renaming and syntax cleanup, I would
> have done it myself (or Dimitri would have) and I would have committed
> it.  That is not the problem, or at least it's not the only problem.
> There are at least two other major issues:
> 
> - The patch as posted fires triggers at unpredictable times depending
> on which command you're executing.  Some things that are really
> sub-commands fire triggers anyway as if they were toplevel commands;
> others don't; whether or not it happens in a particular case is
> determined by implementation details rather than by any consistent
> principle of operation.  In the cases where triggers do fire, they
> don't always fire at the same place in the execution sequence.

For me it would be enough to know if the trigger is fired by top-level
command or not. 

In worst case I could probably detect it myself, just give me something
to hang the detection code to .

> - The patch isn't safe if the triggers try to execute DDL on the
> object being modified.  It's not exactly clear what misbehavior will
> result in every case, but it is clear that that it hasn't really been
> thought about.

It never seemed important for me, as the only thing I was ever expecting
to do in a command trigger was inserting rows in one unrelated table. 

To me DDL-triggered-by-DDL seemed like a very bad idea anyway.

But as you seemed to be envisioning some use-cases for that I did not
object to you working it out. 

> Now, if anyone who was actually following the conversation thought
> these things were not problems, they could have written back to the
> relevant thread and said, hey, I don't mind if the trigger firing
> behavior changes every time someone does any refactoring of our
> badly-written DDL code and if the server blows up in random ways when
> someone does something unexpected in the trigger that's OK with me
> too.  

I don't mind if the trigger firing behavior changes every time someone
does any refactoring of our badly-written DDL code

Here :)

> Maybe not surprisingly, no one said that.  Two people wrote into
> that thread after my latest round of reviewing and both of them
> disagreed with only minor points of my review, and we had a technical
> discussion about those issues.  But showing up after the fact and
> acting as if there were no serious issues found during that review is
> either disingenuous or a sign that you didn't really read the thread.

As there are other ways to blow up the backend, i did not object to you
either working out a better solution or leaving it as it is. 

I am speaking up now as this is the first time I am told I have to wait
another year for this feature to arrive.


> -- 
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
> 




Re: Last gasp

From
Hannu Krosing
Date:
On Thu, 2012-04-05 at 15:07 -0400, Robert Haas wrote:
> On Thu, Apr 5, 2012 at 2:58 PM, Hannu Krosing <hannu@krosing.net> wrote:
>
> > Would it be possible to put some "command trigger hooks" in a few
> > strategic places so that some trigger-like functionality could be loaded
> > at run time, mainly with a view of writing DDL replication
> > 'non-triggers' , mostly based on current v18 code, but of course without
> > all the nice CREATE TRIGGER syntax ?
> 
> I certainly think that would be a possible way forward, but I don't
> think we should try to engineer that in the next 24 hours. 

Why not ? 

If they are in wrong places, they just wont work, when they are in right
places, we ca get (kind of) command triggers.

We have had hooks for DTrace for some time and nobody has complained .

If somebody misuses the command trigger hooks, it is his fault not core
developers

>  Had the
> original goals of the patch been somewhat more modest, I think we
> could have gotten it into 9.2, but there's no time to rethink the
> scope of the patch now.  With all respect for Dimitri and his *very*
> hard work on this subject, submitting a brand new major feature to the
> last CommitFest is not really a great way to get it committed,
> especially given that we didn't have consensus on the design before he
> started coding.  

I guess it grew into a mayor feature because the few earlier attempts at
DDL triggers (or begin/commit/abort triggers etc.) were shot down
because they did not address the "other" issues of the bigger scope ;)

> There is every reason to think that we can get this
> feature into 9.3 with some more work, but it's not ready yet, and
> wishing won't make it so.

Sad but true.

> -- 
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
> 




Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 3:20 PM, Hannu Krosing <hannu@krosing.net> wrote:
> For me it would be enough to know if the trigger is fired by top-level
> command or not.

Well, you would have been out of luck, then.

>> - The patch isn't safe if the triggers try to execute DDL on the
>> object being modified.  It's not exactly clear what misbehavior will
>> result in every case, but it is clear that that it hasn't really been
>> thought about.
>
> It never seemed important for me, as the only thing I was ever expecting
> to do in a command trigger was inserting rows in one unrelated table.
>
> To me DDL-triggered-by-DDL seemed like a very bad idea anyway.
>
> But as you seemed to be envisioning some use-cases for that I did not
> object to you working it out.

Whether or not it works is one thing.  I think it's acceptable for it
to not do anything useful, although actually I think that given a week
to work on it I could make it to completely safe.  I don't think it's
acceptable for it to, say, corrupt the system catalog contents.

>> Now, if anyone who was actually following the conversation thought
>> these things were not problems, they could have written back to the
>> relevant thread and said, hey, I don't mind if the trigger firing
>> behavior changes every time someone does any refactoring of our
>> badly-written DDL code and if the server blows up in random ways when
>> someone does something unexpected in the trigger that's OK with me
>> too.
>
> I don't mind if the trigger firing behavior changes every time someone
> does any refactoring of our badly-written DDL code
>
> Here :)

Duly noted, but color me unconvinced.

>> Maybe not surprisingly, no one said that.  Two people wrote into
>> that thread after my latest round of reviewing and both of them
>> disagreed with only minor points of my review, and we had a technical
>> discussion about those issues.  But showing up after the fact and
>> acting as if there were no serious issues found during that review is
>> either disingenuous or a sign that you didn't really read the thread.
>
> As there are other ways to blow up the backend, i did not object to you
> either working out a better solution or leaving it as it is.
>
> I am speaking up now as this is the first time I am told I have to wait
> another year for this feature to arrive.

Really?  You've never seen a patch punted to the next release before
because it wasn't robust enough?  Considering that I see your  name
mentioned in the 8.2 release notes, I find that a bit hard to believe.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Hannu Krosing
Date:
On Thu, 2012-04-05 at 15:30 -0400, Robert Haas wrote:
> On Thu, Apr 5, 2012 at 3:20 PM, Hannu Krosing <hannu@krosing.net> wrote:
> > For me it would be enough to know if the trigger is fired by top-level
> > command or not.
> 
> Well, you would have been out of luck, then.

It seemed to me you were coming along nicely with fixing that by adding
the "toplevel", except that the disussion drifted away to solving some
bigger problems of DDL triggering DDL.

> >> - The patch isn't safe if the triggers try to execute DDL on the
> >> object being modified.  It's not exactly clear what misbehavior will
> >> result in every case, but it is clear that that it hasn't really been
> >> thought about.
> >
> > It never seemed important for me, as the only thing I was ever expecting
> > to do in a command trigger was inserting rows in one unrelated table.
> >
> > To me DDL-triggered-by-DDL seemed like a very bad idea anyway.
> >
> > But as you seemed to be envisioning some use-cases for that I did not
> > object to you working it out.
> 
> Whether or not it works is one thing.  I think it's acceptable for it
> to not do anything useful, although actually I think that given a week
> to work on it I could make it to completely safe.  

Due to fractal nature of programming problems I doubt the "completely
safe" part  ;) 

You (or someone else) would have found a next obscure set of conditions
where specially crafted function and/or schema could wreak havoc
somewhere.

> I don't think it's
> acceptable for it to, say, corrupt the system catalog contents.

Sure, but any C function can do that already, and we have had C UDF-s
from the start.

> >> Now, if anyone who was actually following the conversation thought
> >> these things were not problems, they could have written back to the
> >> relevant thread and said, hey, I don't mind if the trigger firing
> >> behavior changes every time someone does any refactoring of our
> >> badly-written DDL code and if the server blows up in random ways when
> >> someone does something unexpected in the trigger that's OK with me
> >> too.
> >
> > I don't mind if the trigger firing behavior changes every time someone
> > does any refactoring of our badly-written DDL code
> >
> > Here :)
> 
> Duly noted, but color me unconvinced.

I can say it again :)

> >> Maybe not surprisingly, no one said that.  Two people wrote into
> >> that thread after my latest round of reviewing and both of them
> >> disagreed with only minor points of my review, and we had a technical
> >> discussion about those issues.  But showing up after the fact and
> >> acting as if there were no serious issues found during that review is
> >> either disingenuous or a sign that you didn't really read the thread.
> >
> > As there are other ways to blow up the backend, i did not object to you
> > either working out a better solution or leaving it as it is.
> >
> > I am speaking up now as this is the first time I am told I have to wait
> > another year for this feature to arrive.
> 
> Really?  You've never seen a patch punted to the next release before
> because it wasn't robust enough?  Considering that I see your  name
> mentioned in the 8.2 release notes, I find that a bit hard to believe.

I must admit I did check it only occasionally and to me it seemed to
come along nicely.

I really should have started panicking earlier.

> -- 
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
> 




Re: Last gasp

From
Simon Riggs
Date:
On Thu, Apr 5, 2012 at 8:30 PM, Robert Haas <robertmhaas@gmail.com> wrote:

>> I am speaking up now as this is the first time I am told I have to wait
>> another year for this feature to arrive.
>
> Really?  You've never seen a patch punted to the next release before
> because it wasn't robust enough?  Considering that I see your  name
> mentioned in the 8.2 release notes, I find that a bit hard to believe.

Hannu didn't say he hadn't seen a patch punted. He said this was the
first time he knew he would have to wait another year for the feature
to arrive.

It's shocking since after months of work and an especially extended
edition CF, we expect people to deliver something, not just shunt the
whole thing off as rejected with 1 days's notice to alter that
outcome. Of course nobody can alter the outcome with such short
notice.

I don't care to hear the reasons, cos such excuses aren't good enough,
whoever they come from.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Josh Berkus
Date:
On 4/5/12 12:56 PM, Hannu Krosing wrote:
>> Really?  You've never seen a patch punted to the next release before
>> > because it wasn't robust enough?  Considering that I see your  name
>> > mentioned in the 8.2 release notes, I find that a bit hard to believe.
> I must admit I did check it only occasionally and to me it seemed to
> come along nicely.

I have to agree ... for anyone just following the email thread, the
patch did not seem to be in trouble.  I'm not clear that Dimitri knew
that it was, either.

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 3:56 PM, Hannu Krosing <hannu@krosing.net> wrote:
> On Thu, 2012-04-05 at 15:30 -0400, Robert Haas wrote:
>> On Thu, Apr 5, 2012 at 3:20 PM, Hannu Krosing <hannu@krosing.net> wrote:
>> > For me it would be enough to know if the trigger is fired by top-level
>> > command or not.
>>
>> Well, you would have been out of luck, then.
>
> It seemed to me you were coming along nicely with fixing that by adding
> the "toplevel", except that the disussion drifted away to solving some
> bigger problems of DDL triggering DDL.

Well, here's the basic issue.  If you want to trigger at the very
beginning or very end of a DDL command, that's really not that hard.
It can be done just by modifying ProcessUtility.  And just to be
clear, by "not very hard" what I really mean is "you could get it done
in 2 CommitFests if you are a talented and experienced hacker".

The problem is that what Dimitri really wants, at least in part, is
command triggers that fire in the *middle* of commands - say, just
after locking the object we're performing surgery on.  That turns out
to be a lot harder than it looks for reasons that are NOT Dimitri's
fault.  We tend to assume that PostgreSQL's code is basically good
code, and in general that's true, but some of the code that is at
issue here is actually really bad code.  It uses ugly, nasty hacks to
get the different things that have to happen as part of a DDL
operation to happen in the right order, and it's not very careful
about doing locking, name lookups, and permissions checking in one and
only one place.  This means that if you stick a hook in the right
place to fire triggers for command A, you actually end up firing the
triggers as part of commands B, C, and D when they reach under the
hood and trick the function that runs command A into thinking that
it's executing the toplevel command A is supposed to process when, in
reality, we're doing something completely different and just using
that function as a subroutine.  It is probably not a tremendous amount
of work to refactor ourselves out of this problem, but that work
hasn't been done yet.

There's a second problem, too, which is that not every place in the
backend is a safe place to execute arbitrary user-defined code.  Now,
the approach you are proposing to that problem is to say, hey, if it
crashes the backend, then don't do it that way.  And obviously, with
functions written in C, we have no choice about that; native code can
crash the backend whether we like it or not.  However, I think that we
rightly have a higher standard for features that are exposed at the
SQL level.  It is likely true that if you or I or Dimitri were using
this feature, we could tiptoe our way around doing anything that was
dangerous, and we probably wouldn't be very confused by the strange
trigger-firing behavior either, because we understand how the code is
written.  I don't think our users will be so forgiving.  They right
expect that the behavior will be logical and documented, that it won't
eat their data or crash without a good reason, and that when things do
go wrong they'll get an intelligible error message.  The current
approach doesn't guarantee any of those things.

>> Whether or not it works is one thing.  I think it's acceptable for it
>> to not do anything useful, although actually I think that given a week
>> to work on it I could make it to completely safe.
>
> Due to fractal nature of programming problems I doubt the "completely
> safe" part  ;)
>
> You (or someone else) would have found a next obscure set of conditions
> where specially crafted function and/or schema could wreak havoc
> somewhere.

Well, it's not possible to write completely perfect code for anything
other than a completely trivial program, and I think there is
certainly a time to say, hey, you know, this patch may not be perfect
in every way, but it is good enough that we should start with this as
a base, and then build on it.  But I think that forseeable catalog or
data corruption hazards and anything that might pop out an elog() are
generally accepted as things that we want to avoid even in initial
commits.

> I really should have started panicking earlier.

Yep.  I think Tom and I and others were all pretty clear that there
were not enough people reviewing this CommitFest, and that we were
spread pretty thin trying to make sure every patch got at least some
attention.  There were many patches that I could have done more with
if I hadn't had >30 of them to do something with, and this is one of
them.  I could have looked at it sooner; I could have spent time
revising it.  Your position is apparently that since I noted problems
with the patch, it was my job to fix it.  I don't know how to square
that with the seemingly-universal assumption that every patch is
entitled to get looked at by a committer.  I cannot both look at every
patch and fix every problem I find with each one.  If the lesson we
take from this CommitFest is that the people who put the most time
into making it successful are jerks for not having done even more, I'm
going to find that rather demoralizing.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 4:38 PM, Josh Berkus <josh@agliodbs.com> wrote:
> On 4/5/12 12:56 PM, Hannu Krosing wrote:
>>> Really?  You've never seen a patch punted to the next release before
>>> > because it wasn't robust enough?  Considering that I see your  name
>>> > mentioned in the 8.2 release notes, I find that a bit hard to believe.
>> I must admit I did check it only occasionally and to me it seemed to
>> come along nicely.
>
> I have to agree ... for anyone just following the email thread, the
> patch did not seem to be in trouble.  I'm not clear that Dimitri knew
> that it was, either.

I said repeatedly that there wasn't enough time to get this done for
9.2, starting many weeks ago.  It would have been more clear if I'd
had time to hone in on the specific problems sooner, but see the other
note I just sent for why that didn't happen.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Daniel Farina
Date:
On Thu, Apr 5, 2012 at 1:40 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> Yep.  I think Tom and I and others were all pretty clear that there
> were not enough people reviewing this CommitFest,

Sorry to derail the thread just a little, but I've thought a little
about this and I wonder if part of the problem is just that some of
the patches are really large: doing a really thorough job reviewing is
quite demanding, and the amount and kind of lore everyone has at their
disposal is different.

To get to the point, I wonder if it makes sense for someone who has a
better sense a-priori what they're looking for in a committable patch
(i.e. a committer, or someone with a telepathic link to one or more)
to delegate specific pieces of patches for thorough review, sketching
some thoughts about pitfalls or hazards to look for.  Think of it as a
patch checklist that is informed by the experience of a committer
skimming its contents.

--
fdr


Re: Last gasp

From
Dimitri Fontaine
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> I am not interested in relitigating on this thread what has already
> been extensively discussed nearby.  Dimitri and I agreed on numerous
> changes to try to make the behavior sane, and those changes were
> suggested and agreed to for good reason.  We didn't agree on every

Those changes are about done now.  I didn't have as much time as I would
have wanted to spend on that this week, so if you want to see my command
trigger patch re-painted into an event trigger system, please go see the
github repository:
 https://github.com/dimitri/postgres/tree/event_triggers
https://github.com/dimitri/postgres/compare/command_triggers...event_triggers
https://github.com/dimitri/postgres/compare/master...event_triggers

dim=# create event trigger snitch before command_start execute procedure snitch();
create event trigger snitch before command_start execute procedure snitch();
CREATE EVENT TRIGGER
dim=# create event trigger another_snitch before command_start when tag in (create table, create view) execute
proceduresnitch();
 
create event trigger another_snitch before command_start when tag in (create table, create view) execute procedure
snitch();
CREATE EVENT TRIGGER

> point, of course, but we did agree on most of it, and there is no
> patch that implements what was agreed.  Even if there were, there is
> not time to review and commit a heavily revised version of a >1000
> line patch before tomorrow, and any suggestion to the contrary is just
> plain wrong.

The main problems were, as you say it in another mail, the hook
placement and the ddl-in-ddl.

The hook placement is being solved thanks to naming several "events"
where the trigger are fired. We could have done that in a much simpler
way by deciding on when a BEFORE trigger really ought to be called,
instead of doing that we're generalizing the system so that you can
register your user function before events such as "command_start", or
"create_command" or "security_check". Coming next, calling user
functions *instead of* those steps (not done in the 9.2 version).

The ideas about toplevel commands and calling user functions on CASCADEd
objects drops is now possible to implement but not yet in the patch,
it's simple enough to do.

Calling DDL from a DDL trigger in a way that could change the conditions
in which the main command is expecting to run (drop the object being
altered in the trigger) is certainly a "shoot yourself in the foot" case
and the feature is superuser only: we're talking about a doc patch here.

My conclusion here is very simple: if we *want* that feature, we can
easily enough have it in 9.2 in some form. That will include the
possibility to code a C-extension to implementing command rewriting for
use in our 3 major trigger based replication systems, and custom
applications too.

It's been about a year since we started talking about that topic, and it
only changed from being "command triggers" to being "event triggers"
last week during review, at version 18 of the patch, each previous
version having been both public and reviewed and tested.

So, as a community, do we want the feature and are we able to cook
something up for 9.2?

Regards,
-- 
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 4:27 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
> On Thu, Apr 5, 2012 at 8:30 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>>> I am speaking up now as this is the first time I am told I have to wait
>>> another year for this feature to arrive.
>>
>> Really?  You've never seen a patch punted to the next release before
>> because it wasn't robust enough?  Considering that I see your  name
>> mentioned in the 8.2 release notes, I find that a bit hard to believe.
>
> Hannu didn't say he hadn't seen a patch punted. He said this was the
> first time he knew he would have to wait another year for the feature
> to arrive.

Oh.  I misunderstood what he was saying, then.

When ANY patch is still pending after a month of CommitFest, everyone
should assume it's in trouble.  Triply so if it's a big patch.  We are
almost three months into this one, and the patch in question is very
large.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 5:04 PM, Dimitri Fontaine <dimitri@2ndquadrant.fr> wrote:
> Those changes are about done now.

Huh?  AFAICS, there are vestiges of the old terminology all over the
patch, although some very incomplete renaming has been done.  I'm
pretty sure you haven't made the firing points consistent either,
although I'd have to spend more time reviewing to be sure of that.

I think it's fair to say that there's probably another month of work
here to get this committed.  It is, of course, up to the community as
a whole whether they want to delay 9.2 another month for this and
perhaps other patches that are not yet done.  But the idea that we're
going to pull it together into committable form in the next 24 hours
is not realistic.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Dimitri Fontaine
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> Huh?  AFAICS, there are vestiges of the old terminology all over the
> patch, although some very incomplete renaming has been done.  I'm
> pretty sure you haven't made the firing points consistent either,
> although I'd have to spend more time reviewing to be sure of that.

I've choosen to internally have command triggers built in an event
trigger framework, because clearly the only kind of events we have an
idea how to manage are commands here. Don't generalize an API with only
one use case, etc. So internally it's very much command oriented, while
the usage is all about "events".

The firing point didn't move yet, I finished the mechanism. It's now
about picking the right event name for each of them, I've begin to
explore about that in aggregatecmds.c already. So I think that's only a
policy issue now when it was just impossible some days ago.

> I think it's fair to say that there's probably another month of work
> here to get this committed.  It is, of course, up to the community as
> a whole whether they want to delay 9.2 another month for this and
> perhaps other patches that are not yet done.  But the idea that we're
> going to pull it together into committable form in the next 24 hours
> is not realistic.

All of that depends on what you want to see commit, I'm still under the
illusion that parts of it are going to be salvaged. For example we could
decide to implement "command_start" and "commend_end" in utility.c and
remove all special variables support apart from the parse tree for user
functions written in C. That would already be something.

Of course as I wasn't running for that outcome that's not what you
currently see in the branch.

Regards,
-- 
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support


Re: Last gasp

From
Hannu Krosing
Date:
On Fri, 2012-04-06 at 00:02 +0200, Dimitri Fontaine wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
> > Huh?  AFAICS, there are vestiges of the old terminology all over the
> > patch, although some very incomplete renaming has been done.  I'm
> > pretty sure you haven't made the firing points consistent either,
> > although I'd have to spend more time reviewing to be sure of that.
> 
> I've choosen to internally have command triggers built in an event
> trigger framework, because clearly the only kind of events we have an
> idea how to manage are commands here. Don't generalize an API with only
> one use case, etc. So internally it's very much command oriented, while
> the usage is all about "events".
> 
> The firing point didn't move yet, I finished the mechanism. It's now
> about picking the right event name for each of them, I've begin to
> explore about that in aggregatecmds.c already. So I think that's only a
> policy issue now when it was just impossible some days ago.
> 
> > I think it's fair to say that there's probably another month of work
> > here to get this committed.  It is, of course, up to the community as
> > a whole whether they want to delay 9.2 another month for this and
> > perhaps other patches that are not yet done.  But the idea that we're
> > going to pull it together into committable form in the next 24 hours
> > is not realistic.
> 
> All of that depends on what you want to see commit, I'm still under the
> illusion that parts of it are going to be salvaged. 

I would really like the controversial parts of the recent feature creep
to get un-creeped :)

At least until 9.3 .

> For example we could
> decide to implement "command_start" and "commend_end" in utility.c and
> remove all special variables support apart from the parse tree for user
> functions written in C. That would already be something.

I would need only one of those - just something to record the DDL
command that was done. 

I'd prefer to get "command_end" triggers if "command_start" would mean
it could fail later.

CREATE TRIGGER AFTER ANY DDL EXECUTE record_ddl();

My next wish after the above is available would be triggers on
BEGIN/ROLLBACK/COMMIT to implement "streaming" and possibly also
"synchronous" logical replication - the current logical replication
systems rely on trigger-gathered events only being available after
commit and so don't need to get notified about COMMIT/ROLLBACK.

CREATE TRIGGER AFTER BEGIN EXECUTE remote_transaction_begin_();
CREATE TRIGGER AFTER ROLLBACK EXECUTE remote_transaction_rollback();
CREATE TRIGGER AFTER COMMIT EXECUTE remote_transaction_commit();

> Of course as I wasn't running for that outcome that's not what you
> currently see in the branch.

I would very much like to see the stripped down, after command only
version to get into 9.2

I would not mind at all waiting a week or two for this to happen.

And i promise I will keep a very keen eye on further development and
also will start testing right away for it being sufficient for DDL
replication as soon as the stripping is completed :)

Also, I suspect that the rest of the "event" trigger functionality could
better be served as simple hooks anyway, at least until we have some
good real life use-case to test against before working on a more
involved implementation.

> Regards,
> -- 
> Dimitri Fontaine
> http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support
> 




Re: Last gasp

From
Noah Misch
Date:
On Thu, Apr 05, 2012 at 02:34:30PM -0400, Robert Haas wrote:
> On Thu, Apr 5, 2012 at 2:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > The FK arrays one I'm kind of queasy about. ?It's a cool-sounding idea
> > but I'm not convinced that all the corner-case details have been
> > adequately thought through, and I'm scared of being unable to fix any
> > such bugs in later versions because of backwards compatibility worries.
> > It'd be a lot better to be pushing this in at the start of a devel cycle
> > than the end.
> 
> I've been feeling that that patch has been suffering from a lack of
> reviewer attention, which is a real shame, because I think the
> functionality is indeed really cool.  But I haven't looked at it
> enough to know what kind of shape it's in.

As the reviewer, I'm not aware of any unexplored corner cases or problems that
ought to preclude commit.  That said, it is a large patch; I doubt anyone
could pick it up from scratch and commit it with less than a solid day's
effort, and 2-3 days might be more likely.  In retrospect, I should have
suggested splitting the new ON DELETE/ON UPDATE actions into their own patch.
That would have nicely slimmed the base patch and also isolated it from the ON
DELETE EACH CASCADE judgement call.


Re: Last gasp

From
Greg Smith
Date:
On 04/05/2012 04:27 PM, Simon Riggs wrote:
> It's shocking since after months of work and an especially extended
> edition CF, we expect people to deliver something, not just shunt the
> whole thing off as rejected with 1 days's notice to alter that
> outcome.

I don't think this is being fair to Robert.  You agreed with the hard 
deadline last week.  And the fact that the CF is late isn't a good 
reason to say it's OK for it to be more late.  Every patch that had been 
reviewed but still had problems has been on life support the entire 
month of March.  The surprising part isn't when one of them is finally 
returned, it's that they were still alive at all.

The theory here is supposed to be that large patches show up in the next 
to last CF, and by the time they hit the last one they're close to being 
ready.  Just since the beginning of March, Command Triggers picked up 
useful feedback from all three listed reviewers (plus other commentary 
and related committer work), going through six revisions.  There was 
still rippling impact like the CTAS/SELECT INTO utility command work 
going on six weeks into the CF.

The way Dimitri has been updating something this large so often makes me 
dizzy, and I think everyone is disappointed that we haven't seen any 
great subsets of this separate out to focus on.  But regardless of who's 
right or wrong about what's left to do, any objective look at this one 
would say it's surely not settled down.  And the bar at this point here 
in April isn't "is this an important feature?" anymore.  It should be 
"is this such an important feature that it's worth delaying the release 
and taking a risk on recently churning code for?"  Let's not kill the 
messenger who delivers that reminder just because the news is painful.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Tom Lane
Date:
Greg Smith <greg@2ndQuadrant.com> writes:
> On 04/05/2012 04:27 PM, Simon Riggs wrote:
>> It's shocking since after months of work and an especially extended
>> edition CF, we expect people to deliver something, not just shunt the
>> whole thing off as rejected with 1 days's notice to alter that
>> outcome.

> I don't think this is being fair to Robert.

If we're going to ship a release at all, somebody's got to be willing
to say "no".  Personally, been there, done that, got the t-shirt [1].
Robert's just pointing out what has to be pointed out.
        regards, tom lane

[1] http://imageshack.us/photo/my-images/199/b9w.jpg/


Re: Last gasp

From
Greg Smith
Date:
On 04/05/2012 05:03 PM, Daniel Farina wrote:
> To get to the point, I wonder if it makes sense for someone who has a
> better sense a-priori what they're looking for in a committable patch
> (i.e. a committer, or someone with a telepathic link to one or more)
> to delegate specific pieces of patches for thorough review, sketching
> some thoughts about pitfalls or hazards to look for.  Think of it as a
> patch checklist that is informed by the experience of a committer
> skimming its contents.

It's tricky to add this sort of idea into the current patch workflow in 
all cases.  A decent percentage of submissions bounce off a reviewer who 
doesn't commit, such that no committer spends time on them yet they 
still move forward.  Any idea that tries to involve committers earlier 
in the process risks using more of their time on things that ultimately 
are never going to pass toward commit anyway.  That is after all where 
this whole process started at, before CFs, and we know that didn't scale 
well.

We already have a loose bar in this exact area, one that suggests larger 
patches should first appear earlier in the development cycle.  That 
happened in this case, with a first submission in mid November, but it 
wasn't enough to make things go smoothly.

When I trace back how that played out, I think the gap in this case came 
from not being sure who was going to commit the result at the end.  If 
it's early January, and the community knows there's a large feature 
approaching because it's been around for over a month already, we better 
be asking who is going to commit it eventually already.  Many patch 
submitters agonize over "which committer is going to grill me most?", 
and the bigger the patch the more that impacts them.

Nailing that down and putting together the sort of early committer 
checklist you're describing strikes me as something that might happen in 
the first week of a CF, before there are normally a large pile of "Ready 
for Committer" things around.  Raising these question--who is 
interesting in committing big things and where they consider the bar to 
be--is something submitters who have a stake in seeing their patches go 
on might do.

It's better if people who are already working hard on features don't 
feel like they need to wander around begging for someone to pay 
attention to them though.  Ideally it would be the sort of thing a 
proper CF manager would highlight for them.  Unfortunately we often 
don't quite have one of those, instead just having people who sometimes 
make a bunch of noise at the beginning of a CF and then go AWOL. 
(cough)  No one is happy about that, and it's something that clearly 
needs to be solved better too.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Robert Haas
Date:
On Fri, Apr 6, 2012 at 3:22 AM, Greg Smith <greg@2ndquadrant.com> wrote:
> On 04/05/2012 05:03 PM, Daniel Farina wrote:
>> To get to the point, I wonder if it makes sense for someone who has a
>> better sense a-priori what they're looking for in a committable patch
>> (i.e. a committer, or someone with a telepathic link to one or more)
>> to delegate specific pieces of patches for thorough review, sketching
>> some thoughts about pitfalls or hazards to look for.  Think of it as a
>> patch checklist that is informed by the experience of a committer
>> skimming its contents.
>
> It's tricky to add this sort of idea into the current patch workflow in all
> cases.  A decent percentage of submissions bounce off a reviewer who doesn't
> commit, such that no committer spends time on them yet they still move
> forward.  Any idea that tries to involve committers earlier in the process
> risks using more of their time on things that ultimately are never going to
> pass toward commit anyway.  That is after all where this whole process
> started at, before CFs, and we know that didn't scale well.
>
> We already have a loose bar in this exact area, one that suggests larger
> patches should first appear earlier in the development cycle.  That happened
> in this case, with a first submission in mid November, but it wasn't enough
> to make things go smoothly.
>
> When I trace back how that played out, I think the gap in this case came
> from not being sure who was going to commit the result at the end.  If it's
> early January, and the community knows there's a large feature approaching
> because it's been around for over a month already, we better be asking who
> is going to commit it eventually already.  Many patch submitters agonize
> over "which committer is going to grill me most?", and the bigger the patch
> the more that impacts them.
>
> Nailing that down and putting together the sort of early committer checklist
> you're describing strikes me as something that might happen in the first
> week of a CF, before there are normally a large pile of "Ready for
> Committer" things around.  Raising these question--who is interesting in
> committing big things and where they consider the bar to be--is something
> submitters who have a stake in seeing their patches go on might do.
>
> It's better if people who are already working hard on features don't feel
> like they need to wander around begging for someone to pay attention to them
> though.  Ideally it would be the sort of thing a proper CF manager would
> highlight for them.  Unfortunately we often don't quite have one of those,
> instead just having people who sometimes make a bunch of noise at the
> beginning of a CF and then go AWOL. (cough)  No one is happy about that, and
> it's something that clearly needs to be solved better too.

I think this basically just boils down to too many patches and not
enough people.  I was interested in Command Triggers from the
beginning of this CommitFest, and I would have liked to pick it up
sooner, but there were a LOT of patches to work on for this
CommitFest.  The first three CommitFests of this cycle each had
between 52 and 60 patches, while this one had 106 which included
several very complex and invasive patches, command triggers among
them.  So there was just a lot more to do, and a number of the people
who submitted all of those patches didn't do a whole lot to help
review them, sometimes because they were still furiously rewriting
their submissions.  It's not surprising that more patches + fewer
reviewers = each patch getting less attention, or getting it later.

Even before this CommitFest, it's felt to me like this hasn't been a
great cycle for reviewing.  I think we have generally had fewer people
doing reviews than we did during the 9.0 and 9.1 cycles.  I think we
had a lot of momentum with the CommitFest process when it was new, but
three years on I think there's been some ebbing of the relative
enthusiastic volunteerism that got off the ground.  I don't have a
very good idea what to do about that, but I think it bears some
thought.  On a related note, letting CommitFests go on for three
months because there's insufficient reviewer activity to get them done
in one or two is, in my opinion, not much of a solution.  If there's
even less reviewer activity next time, are we going to let it go on
for four months?  Six months?  Twelve months?  At some point, it boils
down to "we're just going to stop accepting patches for an indefinite
period of time".  Yuck.

I also think we need to be generally more open to negative feedback
than we are.  Most if not all people who give negative feedback are
not doing so because they wish to torpedo a given patch as because
they have legitimate concerns which, since we are a community of smart
and talented people here, are often well-founded.  I've been there
myself, and it's occasionally frustrating, but overall it leads to me
doing better work than I otherwise would, which is a hard outcome to
complain about when you get right down to it.  When it's discovered
and agreed that a patch has serious problems that can't be corrected
in a few days, the response to that should be "crap, OK, see you next
CommitFest".  When people aren't willing to accept that, then we end
up having arguments.  Sure, there will sometimes be times when someone
(often Tom, but sometimes another committer or some other experienced
volunteer) will be able to step in and rewrite it enough to make it
committable.  But it seems to me that trying to minimize problems that
are found by well-intentioned review for purposes of trying to squeeze
something in under a deadline don't work out well.  Either the feature
goes in buggy, and we spend months trying to sort it out, or else we
end up impugning the good will or technical judgement of the people
who volunteer to review, which is not a good way to get the larger
number of reviewers and CommitFest managers that we so desperately
need.  Whoever wins the argument, the community loses.

I think that there are many projects that are more open to "just
committing things" than we are - perhaps no better exemplified than by
Tom's recent experiences with Henry Spencer's regular expression
engine and the Tcl project.  If you're willing to do work, we'll
assume it's good; if you know something and are willing to do work,
here are the keys.  We could decide to take that approach, and just
generally lower our standards for commit across the board.  I am not
in favor of that.  I think the fact that we insist on good design and
high-quality code is a real strength of this project and something
that makes me proud to be associated with it.  Yeah, it's harder that
way.  Yeah, sometimes it means that it takes longer before a given
feature gets committed.  Yeah, some things don't get done at all.  But
on the flip side, it means that when you use a PostgreSQL feature, you
can pretty much count on it working.  And if by some chance it
doesn't, you can count on it being an oversight that will be corrected
in the next maintenance release rather than a design problem that will
never get fixed.  I like that, and I think our users do too.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Tom Lane
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> [ among other good points ]
> ... On a related note, letting CommitFests go on for three
> months because there's insufficient reviewer activity to get them done
> in one or two is, in my opinion, not much of a solution.  If there's
> even less reviewer activity next time, are we going to let it go on
> for four months?  Six months?  Twelve months?  At some point, it boils
> down to "we're just going to stop accepting patches for an indefinite
> period of time".  Yuck.

Yeah, this is something I was thinking about yesterday.  In the first
couple of release cycles with the CommitFest process, we were willing to
let the last fest of a release cycle go on for "as long as it takes",
or at least that was what I felt the policy to be.  This time we
eventually gave up and declared closure, but in hindsight we should
likely have done that a month earlier.  The fact of the matter is that
quite a few of the patches we were dealing with were *not* ready to
commit, or even close to that, at the start of the fest.  If it weren't
the last fest they would have gotten marked Returned With Feedback a
lot sooner.

I wonder whether we ought to have a preset schedule for last fests
just like the others.  I'd be willing to let them run, say, 2 months
instead of 1, but no deadline at all risks turning the whole affair
into a death march, which is no fun for anybody and threatens the
quality of the end result too.  There's too much temptation to commit
patches that are not really ready, just to get them out of the way.

In short, the idea of strongly calendar-driven releases looks more
and more attractive to me the more times we go through this process.
If your patch isn't ready on date X, then it's not getting into this
release; but there'll be another bus coming along before long.
Stretching out release cycles to get in those last few neat features
just increases the pressure for more of the same, because people don't
know how long it will be to the next release.
        regards, tom lane


Re: Last gasp

From
Thom Brown
Date:
On 7 April 2012 22:20, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> In short, the idea of strongly calendar-driven releases looks more
> and more attractive to me the more times we go through this process.
> If your patch isn't ready on date X, then it's not getting into this
> release; but there'll be another bus coming along before long.
> Stretching out release cycles to get in those last few neat features
> just increases the pressure for more of the same, because people don't
> know how long it will be to the next release.

I'd imagine that clear deadlines may provide the impetus necessary to
get patches in earlier, patches updated more promptly, enthuse
patch-writers to lobby for review, and overall make commitfests a bit
more manageable.

And I'd be *strongly* against any relaxing of the current review
process, and I don't think it's realistic for PostgreSQL.  I want cool
new features to get in as much as anyone, but if there are genuine
concerns, those features really aren't yet ready for prime time.  A
perfect example of this is command triggers (now known as event
triggers), where the feature that would have got committed wouldn't
have been as flexible, elegant or sane as the feature that probably
will get committed in 9.3, and I think there's plenty of outstanding
questions around it too.  There wouldn't be enough room for movement
if the design needed anything beyond tweaking, and being painted into
a corner would be depressing for all concerned.

-- 
Thom


Re: Last gasp

From
Peter Geoghegan
Date:
On 7 April 2012 22:20, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> In short, the idea of strongly calendar-driven releases looks more
> and more attractive to me the more times we go through this process.
> If your patch isn't ready on date X, then it's not getting into this
> release; but there'll be another bus coming along before long.
> Stretching out release cycles to get in those last few neat features
> just increases the pressure for more of the same, because people don't
> know how long it will be to the next release.

I hope that that policy will not be applied without some degree of
discrimination.

I understand that this is an open-source project, and on a certain
level it has to be that simple, because we don't have any other way of
making contributors more conscientious about scheduling
considerations, except of course for giving them a nudge.  That said,
all features are not equal, and clearly some are of particular
strategic importance to the project, and as such may be worth holding
up the release for, subject to certain parameters. Which of these
features are worth holding the release up for is highly dependent on
their state at the time of the final commitfest deadline. Which
features are of strategic importance is of course a matter of opinion,
but that's the kind of thing that we have a steering committee for,
right?

Perhaps a good compromise would be to formalise the process through
which patches get a second chances in the final commitfest. I don't
think that it will prove workable to have a final deadline that is
adhered to blindly.

--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services


Re: Last gasp

From
Tom Lane
Date:
Peter Geoghegan <peter@2ndquadrant.com> writes:
> On 7 April 2012 22:20, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> In short, the idea of strongly calendar-driven releases looks more
>> and more attractive to me the more times we go through this process.
>> If your patch isn't ready on date X, then it's not getting into this
>> release; but there'll be another bus coming along before long.

> I hope that that policy will not be applied without some degree of
> discrimination.

Sure, but ...

> I understand that this is an open-source project, and on a certain
> level it has to be that simple, because we don't have any other way of
> making contributors more conscientious about scheduling
> considerations, except of course for giving them a nudge.  That said,
> all features are not equal, and clearly some are of particular
> strategic importance to the project, and as such may be worth holding
> up the release for, subject to certain parameters. Which of these
> features are worth holding the release up for is highly dependent on
> their state at the time of the final commitfest deadline. Which
> features are of strategic importance is of course a matter of opinion,
> but that's the kind of thing that we have a steering committee for,
> right?

... we have tried that approach repeatedly in the past, and it's
basically never worked.  There were multiple release cycles where we
held up a release to get some "super important" feature in, and
invariably either the release was *way* later than anybody expected,
or we gave up waiting and released without it.  Meanwhile, development
of anything else ground to a standstill.  Check the archives and you'll
see this theme played out a number of times.  We've more or less learned
not to do that, but we've never taken the plunge of setting hard feature
freeze deadlines well in advance.  I'm thinking maybe we should.

As for the steering committee, core tries hard not to make technical
decisions for the project; it's better to let those emerge by consensus.
        regards, tom lane


Re: Last gasp

From
Andrew Dunstan
Date:

On 04/07/2012 06:33 PM, Peter Geoghegan wrote:
> On 7 April 2012 22:20, Tom Lane<tgl@sss.pgh.pa.us>  wrote:
>> In short, the idea of strongly calendar-driven releases looks more
>> and more attractive to me the more times we go through this process.
>> If your patch isn't ready on date X, then it's not getting into this
>> release; but there'll be another bus coming along before long.
>> Stretching out release cycles to get in those last few neat features
>> just increases the pressure for more of the same, because people don't
>> know how long it will be to the next release.
> I hope that that policy will not be applied without some degree of
> discrimination.

If we are to have time based releases, then I assume it won't, it will 
be pretty much a hard and fast rule.

I admit I haven't been a fan in the past, but I can see advantages, not 
least being predictability of release times. It would be nice to be able 
to say "In June" when asked when the next release will be, as I often am.

cheers

andrew



Re: Last gasp

From
Peter Geoghegan
Date:
On 7 April 2012 23:51, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> As for the steering committee, core tries hard not to make technical
> decisions for the project; it's better to let those emerge by consensus.

I don't really consider this to be an engineering problem, which is
precisely why I bring up the role of core here. Holding up a release
for a feature has costs (the feature is delayed, which in some way
hurts us, as our users don't have a new release for that much longer,
etc) and benefits (when the release is available, Postgres is that
much better one release sooner). Naturally, the maturity of the
existing code, as judged by the community, would be heavily weighed in
this process, but the wider importance of the feature, and how much of
an advantage having it earlier provides, would also be weighed.

Open source products (as distinct from projects) often have this sort
of cost-benefit analysis made by individuals who are somewhat removed
from the engineering decisions themselves. While I'm certainly not
advocating that we switch to that model - in particular, I am not
advocating anything less than full transparency - surely there is
something to be said for some aspects of it, mostly to break the sorts
of deadlocks that can sometimes occur.

--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services


Re: Last gasp

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
> On 04/07/2012 06:33 PM, Peter Geoghegan wrote:
>> I hope that that policy will not be applied without some degree of
>> discrimination.

> If we are to have time based releases, then I assume it won't, it will 
> be pretty much a hard and fast rule.

> I admit I haven't been a fan in the past, but I can see advantages, not 
> least being predictability of release times. It would be nice to be able 
> to say "In June" when asked when the next release will be, as I often am.

Just to be clear ... I don't believe that we can have hard-and-fast
*release* dates.  I am suggesting that it might be a good idea to have
a hard deadline for committing new features.  But beta test phase will
take however long it takes.  I don't think shaking out bugs is a
predictable process.
        regards, tom lane


Re: Last gasp

From
Robert Haas
Date:
On Sat, Apr 7, 2012 at 5:20 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I wonder whether we ought to have a preset schedule for last fests
> just like the others.

It's always been my feeling that we should have that.

> There's too much temptation to commit
> patches that are not really ready, just to get them out of the way.

This is something I'm really concerned about.  During both the 9.0 and
9.1 cycle, we did some of this, and ended up paying for it with months
of bug fixing - not of *everything* that was committed late in the
cycle, but of certain particular patches.  We ended up producing
quality releases anyway, but I think if we had pushed it much farther
than we did, that might not have happened, or it might have pushed the
release out quite a bit more.  I think we have to be careful not to
set the bar for big patches unreasonably high (or big features will
never get done) but I honestly do not believe we have that problem.
Which recent release did not end up with its share of big features?
People like Jeff Davis, KaiGai Kohei, and myself who submitted their
major work (or the preparatory refactorings) relatively early in this
release cycle had no real trouble getting commits.  It is the patches
that showed up in November, December, and January that ended up on the
skids.  On the flip side, we do have a problem with looming deadlines
causing a lot of pressure to push stuff in that isn't ready.  There
were a number of times this CommitFest when someone said, hey, I'm
going to push X, and I said... uh, let me drop what I'm doing and take
a look at that, because it doesn't sound ready to me.  Some of those
commits happened anyway and others didn't, but all of them seemed like
the outgrowth of time pressure rather than real certainty that we were
in a good place.

> In short, the idea of strongly calendar-driven releases looks more
> and more attractive to me the more times we go through this process.
> If your patch isn't ready on date X, then it's not getting into this
> release; but there'll be another bus coming along before long.
> Stretching out release cycles to get in those last few neat features
> just increases the pressure for more of the same, because people don't
> know how long it will be to the next release.

Well, the other side of the coin is that the next release will
probably be in a little over a year, and that's longer than people
want to wait even if it's a known quantity.  But I'm not sure there's
much we can do about that, unless we want to cut the cycle from four
CommitFests to three, or something like that.  I think I'd actually be
in favor of that, because it seems to me that nearly every feature
anyone wants can be gotten done in two CommitFests.  There are a few
exceptions, like sepgsql and SSI and (now) command triggers, but it's
not like we have tons of developers who start in CF1 and just barely
get their work in by CF4.  What happens more often is that the early
CommitFests are kind of dead, and then there's a huge flood of stuff
for the last one because, hey, there's gonna be a release soon, I
should do something for it!  We might find that if we did 3-CF cycles
rather than 4-CF cycles we got the same number of features about two
months sooner.

Or we might not find that.  But it's not clear that cutting off a
CommitFest would have hurt this release much, or that adding another
one would have helped much.  Adding one *now* might help, because some
of the big patches that were submitted at the beginning might then
make it in, but if we'd had all of this extra time budgeted in from
the beginning (e.g. last CommitFest planned for March 1st instead of
January 15th) I think a decent number of the submissions would have
just come that much later.  Love may be the strongest human emotion,
but procrastination has got to be in the top five.

The only thing I can really see helping us to avoid the crush of last
minute patches is to have strong, clear, and vigorously enforced rules
about rejecting major features that are not submitted early enough, or
that are not in good enough shape when submitted.  As you said in your
reply to Peter, making exceptions because features are "important" is
not helpful.  My features are important, too, but I get them done
early.  Granted, not everyone has as much work time to work on
community PostgreSQL as I do, but it's simply impossible to believe
that everyone's schedule suddenly clears up in the first half of
January every year.  If there's something magic about that half-month
then we've chosen a poor timing for our final CommitFest, but my
theory is that we'd have the same problem no matter when we did it.
If we start aggressively booting things early, then we don't have to
have arguments at the end.  But then again, we'd have to have the
arguments earlier.  I continue to think that there's no real solution
here if people are bound on claiming that the feature they
particularly like ought to be excepted from the deadlines that apply
to everyone else.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Robert Haas
Date:
On Thu, Apr 5, 2012 at 6:33 PM, Hannu Krosing <hannu@krosing.net> wrote:
> I would really like the controversial parts of the recent feature creep
> to get un-creeped :)
>
> At least until 9.3 .

This argument would hold more water if I hadn't been encouraging
Dimitri to pick a less aggressive target for this feature in just
about every review of the feature that I did.  Yes, I want a general
syntax that will accommodate not only our immediate goals, but also
other things that we will certainly want to do in the future.  I think
anything else would be very short-sighted.  That having been said, I
have repeatedly encouraged whittling this feature down to a smaller
initial subset, with only partial success.  I still think that's one
of the things to happen for next CommitFest.  Introducing both a
general framework for command/event triggers and a rather complex and
invasive initial firing point that requires surgery on the guts of
every DDL command in the system basically means we've got two major
features in one patch.  That's a lot to review, and twice as many ways
to fail.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Boszormenyi Zoltan
Date:
2012-04-05 20:55 keltezéssel, Michael Meskes írta:
> On Thu, Apr 05, 2012 at 02:23:03PM -0400, Tom Lane wrote:
>>> I think the ECPG fetch patch is about ready to go.  Normally Michael
>>> Meskes handles all ECPG patches, but I'm not sure what his schedule is
>>> like.  I'm not sure what the politics are of someone else touching
>>> that code.
>> I think we should leave that one for Michael.  Frankly, none of the
>> rest of us pay enough attention to ecpg to be candidates to take
>> responsibility for nontrivial patches there.
> I will take care of this over the next couple days.

Thank you.

>   Is the patch that Zoltan
> send last Friday the latest version?

Yes.

>
> Michael


--
----------------------------------
Zoltán Böszörményi
Cybertec Schönig&  Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de     http://www.postgresql.at/



Re: Last gasp

From
Andrew Dunstan
Date:

On 04/07/2012 11:03 PM, Tom Lane wrote:
> Andrew Dunstan<andrew@dunslane.net>  writes:
>> On 04/07/2012 06:33 PM, Peter Geoghegan wrote:
>>> I hope that that policy will not be applied without some degree of
>>> discrimination.
>> If we are to have time based releases, then I assume it won't, it will
>> be pretty much a hard and fast rule.
>> I admit I haven't been a fan in the past, but I can see advantages, not
>> least being predictability of release times. It would be nice to be able
>> to say "In June" when asked when the next release will be, as I often am.
> Just to be clear ... I don't believe that we can have hard-and-fast
> *release* dates.  I am suggesting that it might be a good idea to have
> a hard deadline for committing new features.  But beta test phase will
> take however long it takes.  I don't think shaking out bugs is a
> predictable process.
>
>             

I agree, but I think the release date will be much closer to being 
predictable if we chop off the last commitfest more rigorously. But time 
will tell.

cheers

andrew


Re: Last gasp

From
Josh Berkus
Date:
> In short, the idea of strongly calendar-driven releases looks more
> and more attractive to me the more times we go through this process.
> If your patch isn't ready on date X, then it's not getting into this
> release; but there'll be another bus coming along before long.
> Stretching out release cycles to get in those last few neat features
> just increases the pressure for more of the same, because people don't
> know how long it will be to the next release.

As you know, I've supported this view for several years.

> Just to be clear ... I don't believe that we can have hard-and-fast
> *release* dates.  I am suggesting that it might be a good idea to have
> a hard deadline for committing new features.  But beta test phase will
> take however long it takes.  I don't think shaking out bugs is a
> predictable process.

It could have more visibility though, which would probably also make it
go faster.  Something to work on.

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


Re: Last gasp

From
Greg Smith
Date:
On 04/07/2012 04:51 PM, Robert Haas wrote:
> On a related note, letting CommitFests go on for three
> months because there's insufficient reviewer activity to get them done
> in one or two is, in my opinion, not much of a solution.  If there's
> even less reviewer activity next time, are we going to let it go on
> for four months?  Six months?  Twelve months?

There should be a feedback loop here, one that makes it increasingly 
obvious to people writing features that such work will screech to a halt 
unless it's paired with review work.  An extreme enforcement might be a 
bias toward outright rejecting things from people we haven't seen a 
review from before.  That sort of message is hard to deliver without 
discouraging new developers though, even though I think there's a lot of 
data to support such a thing.  You learn a lot about how to harden a 
submission against the things any reviewer is likely to do by doing a 
review yourself.

That said, it seems to me that the large patches are the ones that clog 
the review system the most, and those are usually coming from known 
contributors.  Unfortunately, even if you know the situation here, 
making it clear to sponsors that review is just as important as new 
development is a hard sell sometimes.  There's a sales pitch needed 
there, one that makes it clear to people that the review workflow is 
actually an essential part of why the PostgreSQL code is high quality. 
Going through review isn't overhead, it's a key part of the process for 
the benefit of the feature.

> I think that there are many projects that are more open to "just
> committing things" than we are - perhaps no better exemplified than by
> Tom's recent experiences with Henry Spencer's regular expression
> engine and the Tcl project.  If you're willing to do work, we'll
> assume it's good; if you know something and are willing to do work,
> here are the keys.  We could decide to take that approach, and just
> generally lower our standards for commit across the board.

This is a bit of a strawman argument as you constructed it.  There's a 
large middle ground between the current CF process and "just committing 
things".  One problem here is that there just isn't enough unique people 
committing things, and adjusting the commit standards may be necessary 
to improve that.

Right now I think there's a systemic structural problem to how people 
and companies approach the development cycle for each release.  Getting 
things into the last CF just before a release has a better rate of 
return on the work, making it easier for people to justify spending time 
on.  There's less elapsed time before you will see the results of your 
work in production.

But that's completely backwards from the risk/reward curve for 
committers, and it's no wonder clashes here are so common.  The idea of 
committing something that may not be perfect yet is a lot easier to 
stomach if there's plenty of time left in the release cycle for testing 
it.  Even a full reversion is straightforward to handle when something 
is changed early in the release.  In a risk adverse project like this 
one, the last batch of feature commits for a release should be extremely 
picky about what they accept.

On a related note, one reason I'm not quite as concerned about the 9.2 
schedule is that none of the more speculative submissions went in near 
the end this time.  The changes that scare me most have been committed 
for months already.  That was surely not the case for the last month of 
9.0 or 9.1 development, where some pretty big and disruptive things 
didn't land until very late.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Noah Misch
Date:
On Sat, Apr 07, 2012 at 04:51:03PM -0400, Robert Haas wrote:
> I think this basically just boils down to too many patches and not
> enough people.  I was interested in Command Triggers from the
> beginning of this CommitFest, and I would have liked to pick it up
> sooner, but there were a LOT of patches to work on for this
> CommitFest.  The first three CommitFests of this cycle each had
> between 52 and 60 patches, while this one had 106 which included
> several very complex and invasive patches, command triggers among
> them.  So there was just a lot more to do, and a number of the people
> who submitted all of those patches didn't do a whole lot to help
> review them, sometimes because they were still furiously rewriting
> their submissions.  It's not surprising that more patches + fewer
> reviewers = each patch getting less attention, or getting it later.
> 
> Even before this CommitFest, it's felt to me like this hasn't been a
> great cycle for reviewing.  I think we have generally had fewer people
> doing reviews than we did during the 9.0 and 9.1 cycles.  I think we
> had a lot of momentum with the CommitFest process when it was new, but
> three years on I think there's been some ebbing of the relative
> enthusiastic volunteerism that got off the ground.  I don't have a
> very good idea what to do about that, but I think it bears some
> thought.

http://wiki.postgresql.org/wiki/Running_a_CommitFest suggests marking a patch
Returned with Feedback after five consecutive days of Waiting on Author.  That
was a great tool for keeping things moving, and I think we should return to it
or a similar timer.  It's also an objective test approximating the subjective
"large patch needs too much rework" test.  One cure for insufficient review
help is to then ratchet down the permitted Waiting on Author days.  The queue
will clear faster, and patch authors will have clearer schedules to consider
assisting with review of the remaining patches.  Incidentally, I can't feel
too sorry for any patch bounced after one solid review when some other patch
gets an implicit bounce after incomplete review or no review.  No patch in the
latest CF has or will have that fate.  Several patches in CF 2011-11 did end
that way, and it wasn't the first incident thereof.

I liked Simon's idea[1] for increasing the review supply: make a community
policy that patch submitters shall furnish commensurate review effort.  If
review is available-freely-but-we-hope-you'll-help, then the supply relative
to patch submissions is unpredictable.  Feature sponsors should see patch
review as efficient collaborative development.  When patch authorship teams
spend part of their time reviewing other submissions with the expectation of
receiving comparable reviews of their own work, we get a superior final
product compared to allocating all that time to initial patch writing.  (The
details might need work.  For example, do we give breaks for new contributors
or self-sponsored authors?)

[1] http://archives.postgresql.org/pgsql-hackers/2012-03/msg01612.php

> When it's discovered
> and agreed that a patch has serious problems that can't be corrected
> in a few days, the response to that should be "crap, OK, see you next
> CommitFest".  When people aren't willing to accept that, then we end
> up having arguments.

Agreed.  If we can develop consensus on a litmus test for that condition, it
can and should be the author recognizing it and marking his own patch Returned
with Feedback.  When the author fails to do so, the reviewer should do it.
When neither of them take action, only then should it fall on the CF manager.
We have relied on the CF manager to make the bulk of these calls, and that's a
demonstrated recipe for patch-specific policy debates and CF manager burnout.

> I think the fact that we insist on good design and
> high-quality code is a real strength of this project and something
> that makes me proud to be associated with it.  Yeah, it's harder that
> way.  Yeah, sometimes it means that it takes longer before a given
> feature gets committed.  Yeah, some things don't get done at all.  But
> on the flip side, it means that when you use a PostgreSQL feature, you
> can pretty much count on it working.  And if by some chance it
> doesn't, you can count on it being an oversight that will be corrected
> in the next maintenance release rather than a design problem that will
> never get fixed.  I like that, and I think our users do too.

Fully agreed.  We could occasionally benefit from allowing "experimental"
features documented as liable to mutate in any later major release.  They
should exhibit the same high implementation quality, but we can relax somewhat
about perfecting a long-term user interface.  Take pg_autovacuum as a rough
example of this strategy from the past.

Thanks,
nm


Re: Last gasp

From
Robert Haas
Date:
On Mon, Apr 9, 2012 at 1:38 AM, Noah Misch <noah@leadboat.com> wrote:
> http://wiki.postgresql.org/wiki/Running_a_CommitFest suggests marking a patch
> Returned with Feedback after five consecutive days of Waiting on Author.  That
> was a great tool for keeping things moving, and I think we should return to it
> or a similar timer.  It's also an objective test approximating the subjective
> "large patch needs too much rework" test.  One cure for insufficient review
> help is to then ratchet down the permitted Waiting on Author days.

Fully agreed.  However, attempts by me to vigorously enforce that
policy in previous releases met with resistance.  However, not
enforcing it has led to the exact same amount of unhappiness by, well,
more or less the exact same set of people.

> I liked Simon's idea[1] for increasing the review supply: make a community
> policy that patch submitters shall furnish commensurate review effort.  If
> review is available-freely-but-we-hope-you'll-help, then the supply relative
> to patch submissions is unpredictable.  Feature sponsors should see patch
> review as efficient collaborative development.  When patch authorship teams
> spend part of their time reviewing other submissions with the expectation of
> receiving comparable reviews of their own work, we get a superior final
> product compared to allocating all that time to initial patch writing.  (The
> details might need work.  For example, do we give breaks for new contributors
> or self-sponsored authors?)

I guess my problem is that I have always viewed it as the
responsibility of patch submitters to furnish commensurate review
effort.  The original intent of the CommitFest process was that
everyone would stop working on their own patches and review other
people's patches.  That's clearly not happening any more.  Instead,
the CommitFest becomes another month (or three) in which to continue
working on your own patches while expecting other people to review and
commit them.  The reviewing is getting done by people who happen to be
interested in what the patch does, often people who are not code
contributors themselves, or by a small handful of dedicated reviewers
who actually conform to what I see as the original spirit of this
process by reviewing whatever's there because it's there, rather than
because they care about it personally.

Of course, part of the problem here is that it's very hard to enforce
sanctions.  First, people don't like to be sanctioned and tend to
argue about it, which is not only un-fun for the person attempting to
impose the sanction but also chews up even more of the limited review
time in argument.  Second, the standard is inevitably going to be
fuzzy.  If person A submits a large patch and two small patches and
reviews two medium-size patches and misses a serious design flaw in
one of them that Tom spends four days fixing, what's the appropriate
sanction for that?  Especially if their own patches are already
committed?  Does it matter whether they missed the design flaw due to
shoddy reviewing or just because most of us aren't as smart as Tom?  I
mean, we can't go put time clocks on everyone's desk and measure the
amount of time they spend on patch development and patch review and
start imposing sanctions when that falls below some agreed-upon ratio.In the absence of some ability to objectively
measurepeople's 
contributions in this area, we rely on everyone's good faith.

So the we-should-require-people-to-review thing seems like a bit of a
straw man to me.  It's news to me that any such policy has ever been
lacking.  The thing is that, aside from the squishiness of the
criteria, we have no enforcement mechanism.  As a result, some people
choose to take advantage of the system, and the longer we fail to
enforce, the more people go that route, somewhat understandably.
David Fetter has floated the idea, a few times, of appointing a
release manager who, AIUI, would be given dictatorial power to evict
patches from the last CommitFest according to that person's technical
judgement and ultimately at their personal discretion to make sure
that the release happens in a timely fashion.  I remarked at the last
developer meeting that I would be happy to have such a role, as long
as I got to occupy it.  This was actually intended as a joking remark,
but I think several people took it more seriously than I meant it.
The point I was going for is: nobody really likes having a dictator,
unless either (1) they themselves are the dictator or (2) the dictator
is widely perceived as benevolent and impartial.  In reality, there
are probably half a dozen people I would trust in such a role, or
maybe it could be some small group of individuals.  I would in every
way prefer not to have to go this route, because I think that
self-policing is in every way better: less adversarial and, if people
are honest with themselves and each other, more fair.  But the current
system has become dysfunctional, so we're going to have to do
something.

> Fully agreed.  We could occasionally benefit from allowing "experimental"
> features documented as liable to mutate in any later major release.  They
> should exhibit the same high implementation quality, but we can relax somewhat
> about perfecting a long-term user interface.  Take pg_autovacuum as a rough
> example of this strategy from the past.

Right, I agree.  But I think this approach is mostly useful when we
have something that we're sure is better than the status quo ante, but
not very sure that it's actually good.  That wasn't really the problem
this time through.  Most of what fell out of this CommitFest either
broke stuff or had identifiable design problems.  Labeling something
as experimental because you're not sure how to make it better is one
thing; labeling it as experimental because you know how to make it
better and haven't yet done the work is something else entirely.  It
must be deployed judiciously in any event: our code base is littered
with the remnants (and complexity) of previous, failed experiments -
cf. non-SELECT rules, contrib/xml2.  contrib/xml2 isn't doing us much
harm beyond being an ugly wart, but non-SELECT rules are a land mine
for the unwary at best.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Deprecating non-select rules (was Re: Last gasp)

From
Andres Freund
Date:
On Monday, April 09, 2012 03:25:36 PM Robert Haas wrote:
> contrib/xml2 isn't doing us much harm beyond being an ugly wart, but non-
> SELECT rules are a land mine for the unwary at best.
Which we could start deprecating now btw. since INSTEAD triggers landed in 
9.1. There were quite some use-cases for non-select rules that couldn't be 
fullfilled before but I think saying that we won't support those rules for 
more than 3 releases or so might be a good idea. I have seen too many bugs 
being caused by experienced people not realizing the pitfalls of rules.

Andres


Re: Deprecating non-select rules (was Re: Last gasp)

From
Noah Misch
Date:
On Mon, Apr 09, 2012 at 03:35:06PM +0200, Andres Freund wrote:
> On Monday, April 09, 2012 03:25:36 PM Robert Haas wrote:
> > contrib/xml2 isn't doing us much harm beyond being an ugly wart, but non-
> > SELECT rules are a land mine for the unwary at best.
> Which we could start deprecating now btw. since INSTEAD triggers landed in 
> 9.1. There were quite some use-cases for non-select rules that couldn't be 
> fullfilled before but I think saying that we won't support those rules for 
> more than 3 releases or so might be a good idea. I have seen too many bugs 
> being caused by experienced people not realizing the pitfalls of rules.

A new documentation section "Pitfalls of the Rule System" discussing the known
hazards would help users immediately and be far easier to adopt.  In contrast
to the breathless vitriol against rules that periodically appears on these
lists, current documentation barely hints at the trouble.


Re: Deprecating non-select rules (was Re: Last gasp)

From
Robert Haas
Date:
On Mon, Apr 9, 2012 at 11:32 AM, Noah Misch <noah@leadboat.com> wrote:
> On Mon, Apr 09, 2012 at 03:35:06PM +0200, Andres Freund wrote:
>> On Monday, April 09, 2012 03:25:36 PM Robert Haas wrote:
>> > contrib/xml2 isn't doing us much harm beyond being an ugly wart, but non-
>> > SELECT rules are a land mine for the unwary at best.
>> Which we could start deprecating now btw. since INSTEAD triggers landed in
>> 9.1. There were quite some use-cases for non-select rules that couldn't be
>> fullfilled before but I think saying that we won't support those rules for
>> more than 3 releases or so might be a good idea. I have seen too many bugs
>> being caused by experienced people not realizing the pitfalls of rules.
>
> A new documentation section "Pitfalls of the Rule System" discussing the known
> hazards would help users immediately and be far easier to adopt.  In contrast
> to the breathless vitriol against rules that periodically appears on these
> lists, current documentation barely hints at the trouble.

We already have a section on rules-vs-triggers, but it presents them
as being about equal in terms of advantages and disadvantages; in
fact, there are some implications that rules are generally superior.
This is a minority point of view on this list, and a rewrite of that
section seems overdue.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Peter Eisentraut
Date:
On lör, 2012-04-07 at 16:51 -0400, Robert Haas wrote:
> Even before this CommitFest, it's felt to me like this hasn't been a
> great cycle for reviewing.  I think we have generally had fewer people
> doing reviews than we did during the 9.0 and 9.1 cycles.  I think we
> had a lot of momentum with the CommitFest process when it was new, but
> three years on I think there's been some ebbing of the relative
> enthusiastic volunteerism that got off the ground.  I don't have a
> very good idea what to do about that, but I think it bears some
> thought.

But the patches left in the current commit fest all have gotten a decent
amount of reviewing.  The patches are still there because the reviews
have identified problems and there was not enough development time to
fix them.  I don't think more reviewing resources would have changed
this in a significant way.



Re: Last gasp

From
Noah Misch
Date:
On Mon, Apr 09, 2012 at 09:25:36AM -0400, Robert Haas wrote:
> On Mon, Apr 9, 2012 at 1:38 AM, Noah Misch <noah@leadboat.com> wrote:
> > http://wiki.postgresql.org/wiki/Running_a_CommitFest suggests marking a patch
> > Returned with Feedback after five consecutive days of Waiting on Author. ?That
> > was a great tool for keeping things moving, and I think we should return to it
> > or a similar timer. ?It's also an objective test approximating the subjective
> > "large patch needs too much rework" test. ?One cure for insufficient review
> > help is to then ratchet down the permitted Waiting on Author days.
> 
> Fully agreed.  However, attempts by me to vigorously enforce that
> policy in previous releases met with resistance.  However, not
> enforcing it has led to the exact same amount of unhappiness by, well,
> more or less the exact same set of people.

Incidentally, a limit of ~8 total days in Waiting on Author might work better
than a limit of 5 consecutive days in Waiting on Author.  It would bring fewer
perverse incentives at the cost of taking more than a glance to calculate.

> > I liked Simon's idea[1] for increasing the review supply: make a community
> > policy that patch submitters shall furnish commensurate review effort. ?If
> > review is available-freely-but-we-hope-you'll-help, then the supply relative
> > to patch submissions is unpredictable. ?Feature sponsors should see patch
> > review as efficient collaborative development. ?When patch authorship teams
> > spend part of their time reviewing other submissions with the expectation of
> > receiving comparable reviews of their own work, we get a superior final
> > product compared to allocating all that time to initial patch writing. ?(The
> > details might need work. ?For example, do we give breaks for new contributors
> > or self-sponsored authors?)
> 
> I guess my problem is that I have always viewed it as the
> responsibility of patch submitters to furnish commensurate review
> effort.  The original intent of the CommitFest process was that
> everyone would stop working on their own patches and review other
> people's patches.  That's clearly not happening any more.

Maybe we'd just reemphasize/formalize that past understanding, then.

> Of course, part of the problem here is that it's very hard to enforce
> sanctions.  First, people don't like to be sanctioned and tend to
> argue about it, which is not only un-fun for the person attempting to
> impose the sanction but also chews up even more of the limited review
> time in argument.  Second, the standard is inevitably going to be
> fuzzy.  If person A submits a large patch and two small patches and
> reviews two medium-size patches and misses a serious design flaw in
> one of them that Tom spends four days fixing, what's the appropriate
> sanction for that?  Especially if their own patches are already
> committed?  Does it matter whether they missed the design flaw due to
> shoddy reviewing or just because most of us aren't as smart as Tom?  I
> mean, we can't go put time clocks on everyone's desk and measure the
> amount of time they spend on patch development and patch review and
> start imposing sanctions when that falls below some agreed-upon ratio.
>  In the absence of some ability to objectively measure people's
> contributions in this area, we rely on everyone's good faith.
> 
> So the we-should-require-people-to-review thing seems like a bit of a
> straw man to me.  It's news to me that any such policy has ever been
> lacking.  The thing is that, aside from the squishiness of the
> criteria, we have no enforcement mechanism.  As a result, some people
> choose to take advantage of the system, and the longer we fail to
> enforce, the more people go that route, somewhat understandably.

I don't envision need for sanctions based on missing things in reviews.  It
doesn't take much of a review to be better than nothing, so let's keep the
process friendly to new and tentative reviewers.  When an experienced hacker
misses something sufficiently-obvious, the self-recognition will regularly
motivate greater care going forward.  Nonetheless, yes, I don't see any of
this insulating us from bad faith or gaming of the system.  I tentatively
assume that we have people acting in good faith on perverse incentives, not
people acting in bad faith.

> David Fetter has floated the idea, a few times, of appointing a
> release manager who, AIUI, would be given dictatorial power to evict
> patches from the last CommitFest according to that person's technical
> judgement and ultimately at their personal discretion to make sure
> that the release happens in a timely fashion.  I remarked at the last
> developer meeting that I would be happy to have such a role, as long
> as I got to occupy it.  This was actually intended as a joking remark,
> but I think several people took it more seriously than I meant it.
> The point I was going for is: nobody really likes having a dictator,
> unless either (1) they themselves are the dictator or (2) the dictator
> is widely perceived as benevolent and impartial.  In reality, there
> are probably half a dozen people I would trust in such a role, or
> maybe it could be some small group of individuals.  I would in every
> way prefer not to have to go this route, because I think that
> self-policing is in every way better: less adversarial and, if people
> are honest with themselves and each other, more fair.  But the current
> system has become dysfunctional, so we're going to have to do
> something.

Right.  If this hypothetical dictator made all decisions justly, who could
complain?  But objective rules do not require a just judge, and they have a
different advantage: predictability.  If I know that a clock starts ticking
the moment I get my first review, I'll shape my personal plan accordingly.
That works even if I don't favor that timer to govern CFs.  There's no
comparable coping strategy under the administration of an unjust dictator.
Similarly, seeing a technicality kick a cherished patch from a final CF will
hurt, but that will feed back into earlier submissions of future large,
cherished patches from the same author.  When we let 10, 20, 30 days elapse
between patch revisions, authors have no advance idea how much slack is
available and proceed to contend for more of it as needed.  This bears
similarity to the contrast between civil law and common law legal systems.
Civil law systems have greater potential to remedy situation-specific
injustice, but they're less predictable.

Thanks,
nm


Re: Last gasp

From
Robert Haas
Date:
On Mon, Apr 9, 2012 at 6:23 PM, Noah Misch <noah@leadboat.com> wrote:
> But objective rules do not require a just judge, and they have a
> different advantage: predictability.  If I know that a clock starts ticking
> the moment I get my first review, I'll shape my personal plan accordingly.
> That works even if I don't favor that timer to govern CFs.

In theory this is true, but previous attempts at enforcing a
time-based rule were, as I say, not a complete success.  Maybe we just
need greater consensus around the rule, whatever it is.

At any rate, I think your comments are driving at a good point, which
is that CommitFests are a time for patches that are done or very
nearly done to get committed, and a time for other patches to get
reviewed if they haven't been already.  If we make it clear that the
purpose of the CommitFest is to assess whether the patch is
committable, rather than to provide an open-ended window for it to
become committable, we might do better.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Tom Lane
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> At any rate, I think your comments are driving at a good point, which
> is that CommitFests are a time for patches that are done or very
> nearly done to get committed, and a time for other patches to get
> reviewed if they haven't been already.  If we make it clear that the
> purpose of the CommitFest is to assess whether the patch is
> committable, rather than to provide an open-ended window for it to
> become committable, we might do better.

Yeah, earlier today I tried to draft a reply saying more or less that,
though I couldn't arrive at such a succinct formulation.  It's clear
that in this last fest, there was a lot of stuff submitted that was not
ready for commit or close to it.  What we should have done with that was
review it, but *not* hold open the fest while it got rewritten.

We've previously discussed ideas like more and shorter commitfests
--- I seem to recall proposals like a week-long fest once a month,
for instance.  That got shot down on the argument that it presumed
too much about authors and reviewers being able to sync their schedules
to a narrow review window.  But I think that fests lasting more than a
month are definitely not good.
        regards, tom lane


Re: Last gasp

From
Christopher Browne
Date:
On Mon, Apr 9, 2012 at 7:38 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Mon, Apr 9, 2012 at 6:23 PM, Noah Misch <noah@leadboat.com> wrote:
>> But objective rules do not require a just judge, and they have a
>> different advantage: predictability.  If I know that a clock starts ticking
>> the moment I get my first review, I'll shape my personal plan accordingly.
>> That works even if I don't favor that timer to govern CFs.
>
> In theory this is true, but previous attempts at enforcing a
> time-based rule were, as I say, not a complete success.  Maybe we just
> need greater consensus around the rule, whatever it is.
>
> At any rate, I think your comments are driving at a good point, which
> is that CommitFests are a time for patches that are done or very
> nearly done to get committed, and a time for other patches to get
> reviewed if they haven't been already.  If we make it clear that the
> purpose of the CommitFest is to assess whether the patch is
> committable, rather than to provide an open-ended window for it to
> become committable, we might do better.

Yeah, I think there's pretty good room for a "+1" on that.

We have seen a number of patches proposed where things have clearly
stepped backwards into the Design Phase, and when that happens, it
should be pretty self-evident that the would-be change can NOT
possibly be nearly-ready-to-commit.

It seems as though we need to have a "bad guy" that will say, "that
sure isn't ready to COMMIT, so we'd better step back from imagining
that it ought to be completed as part of this COMMITfest."

But there is also a flip side to that, namely that if we do so, there
ought to be some aspect to the process to help guide those items that
*aren't* particularly close to being committable.  That seems
nontrivial, as it shouldn't involve quite the same behaviors, and I'm
not quite certain what the differences ought to be.  Further, the
"HackFest" activities will be somewhat immiscible with CommitFest
activities, as they're of somewhat different kinds.

Or perhaps I'm wrong there.  Perhaps it's just that we need to be
*much* more willing to have the final 'fest bounce things.

I wonder if we're starting to have enough data to establish meaningful
statistics on feedback.  The "Scrum" development methodology tries to
attach estimated costs to tasks and then compare to completion rates
to then refine the estimates on completion rates to therefore improve
future estimates.  We have a fair body of data available from the
CommitFest data; perhaps it is time to try to infer some rules as to
what patterns on patches may indicate troubled features that are
particularly likely to get deferred.
--
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"


Re: Deprecating non-select rules (was Re: Last gasp)

From
Andres Freund
Date:
On Monday, April 09, 2012 05:32:43 PM Noah Misch wrote:
> On Mon, Apr 09, 2012 at 03:35:06PM +0200, Andres Freund wrote:
> > On Monday, April 09, 2012 03:25:36 PM Robert Haas wrote:
> > > contrib/xml2 isn't doing us much harm beyond being an ugly wart, but
> > > non- SELECT rules are a land mine for the unwary at best.
> > 
> > Which we could start deprecating now btw. since INSTEAD triggers landed
> > in 9.1. There were quite some use-cases for non-select rules that
> > couldn't be fullfilled before but I think saying that we won't support
> > those rules for more than 3 releases or so might be a good idea. I have
> > seen too many bugs being caused by experienced people not realizing the
> > pitfalls of rules.
> 
> A new documentation section "Pitfalls of the Rule System" discussing the
> known hazards would help users immediately and be far easier to adopt.
Youre right. The pitfalls should at least be hinted at. Writing a 
comprehensive guide on whats safe and whats not isn't exactly easy without 
going into quite a bit of detail.

Here is what I know and what comes to my mind right now:

1. anything but INSTEAD rules are unsafe
2. the use of volatile functions (like nextval()) directly or indirectly 
(DEFAULT) needs to be vetted very carefully even if 1. is adherred to
3. the snapshots behaviour of an expanded statement is a bit confusing if it 
contains multiple statements which causes problems with the rather frequent 
attempts to build rules with upsert'is behaviour

While documenting it is sensible a hidden note somewhere doesn't help very 
much. I personally think the rule system is too broken to be salvageable for 
anything but internals of views.

A very trivial, seemingly innocuous, but totally broken usage of rules:

CREATE TABLE data(data_id serial primary key, data int);
CREATE TABLE audit(audit_id serial primary key, data_id int NOT NULL, data 
int);

CREATE RULE data_audit AS ON INSERT TO data DO ALSO INSERT INTO audit(data_id, 
data) VALUES(NEW.data_id, NEW.data);

INSERT INTO data(data) VALUES(1);

SELECT * FROM data;
SELECT * FROM audit;

Greetings,

Andres

-- Andres Freund                       http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services


Re: Deprecating non-select rules (was Re: Last gasp)

From
Tom Lane
Date:
Andres Freund <andres@2ndquadrant.com> writes:
> Here is what I know and what comes to my mind right now:

> 1. anything but INSTEAD rules are unsafe

How so?  I agree that volatile functions are problematic, but unless
there's one of those in the picture I think rules work pretty much as
documented.

> 3. the snapshots behaviour of an expanded statement is a bit confusing if it 
> contains multiple statements which causes problems with the rather frequent 
> attempts to build rules with upsert'is behaviour

Again, not sure what you're complaining about here.

> A very trivial, seemingly innocuous, but totally broken usage of rules:

The problem illustrated here is all down to nextval() being volatile,
no?
        regards, tom lane


Re: Last gasp

From
"Kevin Grittner"
Date:
Christopher Browne <cbbrowne@gmail.com> wrote:
> Robert Haas <robertmhaas@gmail.com> wrote:
>> CommitFests are a time for patches that are done or very nearly
>> done to get committed, and a time for other patches to get
>> reviewed if they haven't been already.  If we make it clear that
>> the purpose of the CommitFest is to assess whether the patch is
>> committable, rather than to provide an open-ended window for it
>> to become committable, we might do better.
> 
> Yeah, I think there's pretty good room for a "+1" on that.
Yeah, +1 for sure.
One other sort of mechanical test which I think can and should be
applied to patches submitted to the last CF is that if *at the start
of the CF* the patch doesn't apply, compile, pass regression tests,
and demonstrably provide the functionality claimed for the patch, it
should not be a candidate for inclusion in the release.  A patch on
which the author is continuing to work even in the absence of review
should be considered a WIP "want feedback" submission; it should not
be allowed to constitute a "placeholder" for inclusion in the
release.  It's one thing if review turns up corner case bugs missed
by the author; it's quite another if there is a month or two of
solid development left to be done. The CF period is not the time for
"now I'll get serious about wrapping this up."
<onlyhalfkidding>Perhaps we should have a concept of "feature
months" -- so that when we look at holding up a release with 20
features for two months so that one more feature can make it in, the
cost side of the equation is 40 feature-months, and the benefit is
10 feature-months.  (Remember, you can't count the added feature as
though it's there for a year before the next release if it holds the
release up.)</onlyhalfkidding>
-Kevin


Re: Last gasp

From
Will Crawford
Date:
On 6 April 2012 01:19, Noah Misch <noah@leadboat.com> wrote:
> On Thu, Apr 05, 2012 at 02:34:30PM -0400, Robert Haas wrote:
>> On Thu, Apr 5, 2012 at 2:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> > The FK arrays one I'm kind of queasy about. ?It's a cool-sounding idea
>> > but I'm not convinced that all the corner-case details have been
>> > adequately thought through, and I'm scared of being unable to fix any
>> > such bugs in later versions because of backwards compatibility worries.
>> > It'd be a lot better to be pushing this in at the start of a devel cycle
>> > than the end.
>>
>> I've been feeling that that patch has been suffering from a lack of
>> reviewer attention, which is a real shame, because I think the
>> functionality is indeed really cool.  But I haven't looked at it
>> enough to know what kind of shape it's in.
>
> As the reviewer, I'm not aware of any unexplored corner cases or problems that
> ought to preclude commit.  That said, it is a large patch; I doubt anyone
> could pick it up from scratch and commit it with less than a solid day's
> effort, and 2-3 days might be more likely.  In retrospect, I should have
> suggested splitting the new ON DELETE/ON UPDATE actions into their own patch.
> That would have nicely slimmed the base patch and also isolated it from the ON
> DELETE EACH CASCADE judgement call.

As a likely user of this feature (not sure if this needs a
"disclaimer", but my employer offered a small bounty towards the
development), I'd only need "ON DELETE RESTRICT" behaviour, currently,
and wouldn't ever need "ON UPDATE ..." as the referent column would
always be a SERIAL. In the meantime, I'm pretty sure the restriction
could be handled by a hand-rolled trigger on insert and delete, but
the delete one would be a lot slower without some kind of indexing.


Re: Last gasp

From
Peter Geoghegan
Date:
On 10 April 2012 15:26, Kevin Grittner <Kevin.Grittner@wicourts.gov> wrote:
> A patch on which the author is continuing to work even in the absence of review
> should be considered a WIP "want feedback" submission; it should not
> be allowed to constitute a "placeholder" for inclusion in the
> release.

To be fair, I doubt that anyone actually believes that. If they did,
they wouldn't have to pay attention very long to receive a rude
awakening.

> <onlyhalfkidding>Perhaps we should have a concept of "feature
> months" -- so that when we look at holding up a release with 20
> features for two months so that one more feature can make it in, the
> cost side of the equation is 40 feature-months, and the benefit is
> 10 feature-months.  (Remember, you can't count the added feature as
> though it's there for a year before the next release if it holds the
> release up.)</onlyhalfkidding>

I am broadly in favour of assessing the value of features in the same
way that a commercial organisation might - the more adoption a feature
spurs, the more valuable it is, and the more hesitant we should be to
bump it (though other factors are also very important). I take this
idea seriously, or at the very least share the mentality of the idea -
I'm just not sure that we can formalise it, or that we should.

I also think that we should try and reward good will. I think that we
generally do so, but an automatic cut-off date seems contrary to that.
The law of unintended consequences might see us lower our standards to
commit something to meet the deadline, that would otherwise not be
immediately committed. We're only human, and it would be foolish to
assume that committers don't feel that kind of pressure.
--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services


Re: Last gasp

From
Robert Haas
Date:
On Tue, Apr 10, 2012 at 11:24 AM, Peter Geoghegan <peter@2ndquadrant.com> wrote:
> On 10 April 2012 15:26, Kevin Grittner <Kevin.Grittner@wicourts.gov> wrote:
>> A patch on which the author is continuing to work even in the absence of review
>> should be considered a WIP "want feedback" submission; it should not
>> be allowed to constitute a "placeholder" for inclusion in the
>> release.
>
> To be fair, I doubt that anyone actually believes that. If they did,
> they wouldn't have to pay attention very long to receive a rude
> awakening.

Uhm, this has been done, repeatedly.  It is not an imaginary problem.
I've observed people doing the following anti-social things:

1. Adding patches to the CommitFest after the deadline, sometimes
weeks after.  The system doesn't prohibit this because there can be
legitimate reasons for doing it, such as when a patch submitted on
time gets a minor piece of it split out into a separate entry.

2. Adding "fake" CommitFest" entries that point to a non-existing
email, and then editing them later to point to the real patch.

3. Posting a patch in time for the CommitFest deadline that is not
even code-complete and then continuing to hack on it vigorously
throughout the CommitFest.  Or, a variant: it's code completed, but
not debugged.  Both command triggers and foreign key locks fell into
this category, AFAICT.

When these things are pointed out to the people who are doing them,
the response is often either (a) this feature is so important we're
all going to die if it's not in the release how can you even think
about bouncing it or (b) I'm not really still hacking on it these are
all just minor changes.  It's surprisingly easy to hoodwink even
experienced contributors into thinking that your patch is really,
really almost done, honest, it just needs a couple more tweaks when in
fact it's nowhere close.  I try not to attribute to bad faith what can
be explained by incurable optimism, so maybe we just have a lot of
incurable optimism.  But it's doing nobody any good.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Peter Geoghegan
Date:
On 10 April 2012 16:51, Robert Haas <robertmhaas@gmail.com> wrote:
> When these things are pointed out to the people who are doing them,
> the response is often either (a) this feature is so important we're
> all going to die if it's not in the release how can you even think
> about bouncing it or (b) I'm not really still hacking on it these are
> all just minor changes.  It's surprisingly easy to hoodwink even
> experienced contributors into thinking that your patch is really,
> really almost done, honest, it just needs a couple more tweaks when in
> fact it's nowhere close.  I try not to attribute to bad faith what can
> be explained by incurable optimism, so maybe we just have a lot of
> incurable optimism.  But it's doing nobody any good.

I think that you may be missing the greater point here. The people
that do this are kind of like the defectors in prisoner's dilemma - at
a certain point, some people cannot resist the temptation to push
their own patch forward at the expense of others by asserting
dubiously that it's ready-for-committer, or maybe they really do
incorrectly believe it to be so, or maybe, unlike you, they understand
that term to mean "I've done as much as I can, as has my reviewer", or
whatever. To play devil's advocate, that might be an anti-social act,
but at a certain point, who wants to be the last honest sap? Besides,
isn't everyone's crime no crime at all?

ISTM that this is symptomatic of the wider problem of a dire shortage
of committer resources. 100% of my non-doc patches so far have been
committed by 3 people. I would really like to see us figure out a way
of making more hackers committers, perhaps subject to certain
conditions that don't currently exist for committers. You might find
that given commit bits, some people will take their responsibilities
as a reviewer far more seriously. Maybe you don't think that any of
the likely candidates are quite ready for that responsibility, but you
must admit that it's a serious problem.

--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services


Re: Last gasp

From
Tom Lane
Date:
"Kevin Grittner" <Kevin.Grittner@wicourts.gov> writes:
> One other sort of mechanical test which I think can and should be
> applied to patches submitted to the last CF is that if *at the start
> of the CF* the patch doesn't apply, compile, pass regression tests,
> and demonstrably provide the functionality claimed for the patch, it
> should not be a candidate for inclusion in the release.

I would not be in favor of inflexible application of such a rule.
For instance, if a patch had gotten broken by a conflict with some
other patch applied the day before the CF starts, it would be unfair
to not give the patch author a reasonable amount of time to rebase.
And such conflicts occurring after the CF starts are hardly unusual
either.

> A patch on
> which the author is continuing to work even in the absence of review
> should be considered a WIP "want feedback" submission; it should not
> be allowed to constitute a "placeholder" for inclusion in the
> release.  It's one thing if review turns up corner case bugs missed
> by the author; it's quite another if there is a month or two of
> solid development left to be done. The CF period is not the time for
> "now I'll get serious about wrapping this up."

Agreed here, though.  Chris Browne mentioned upthread that we really
need a somewhat different process for WIP patches as opposed to those
that are thought to be committable or nearly so.  I don't know if we
should institute his idea of a separate series of "HackFest" events,
but at the very least we should try harder to draw a distinction between
WIP and finished patches.  They need different sorts of reviewing.
        regards, tom lane


Re: Last gasp

From
Tom Lane
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> ...  It's surprisingly easy to hoodwink even
> experienced contributors into thinking that your patch is really,
> really almost done, honest, it just needs a couple more tweaks when in
> fact it's nowhere close.  I try not to attribute to bad faith what can
> be explained by incurable optimism, so maybe we just have a lot of
> incurable optimism.  But it's doing nobody any good.

The first, and possibly most significant, observation in Brooks' classic
_The Mythical Man-Month_ is: "All programmers are optimists."  I don't
think you're going to get rid of the incurable-optimism problem.
Rather, we'd better design around it.
        regards, tom lane


Re: Last gasp

From
"Kevin Grittner"
Date:
Tom Lane <tgl@sss.pgh.pa.us> wrote:
> "Kevin Grittner" <Kevin.Grittner@wicourts.gov> writes:
>> One other sort of mechanical test which I think can and should be
>> applied to patches submitted to the last CF is that if *at the
>> start of the CF* the patch doesn't apply, compile, pass
>> regression tests, and demonstrably provide the functionality
>> claimed for the patch, it should not be a candidate for inclusion
>> in the release.
> 
> I would not be in favor of inflexible application of such a rule.
> For instance, if a patch had gotten broken by a conflict with some
> other patch applied the day before the CF starts, it would be
> unfair to not give the patch author a reasonable amount of time to
> rebase.  And such conflicts occurring after the CF starts are
> hardly unusual either.
I didn't mean to exclude rebasing because of conflicts with recent
commits, so perhaps "mechanical" was overstating it.  But maybe not
-- perhaps each patch submission should state which commit it was
last confirmed to compile and work with, and if there are problems
against HEAD that could be confirmed before asking for the rebase. 
That wouldn't be too much extra work for the initial reviewer, and
it would help establish objective criteria for categorizing whether
a patch should be treated as WIP.
-Kevin


Re: Last gasp

From
Greg Smith
Date:
On 04/09/2012 11:12 PM, Christopher Browne wrote:

> It seems as though we need to have a "bad guy" that will say, "that
> sure isn't ready to COMMIT, so we'd better step back from imagining
> that it ought to be completed as part of this COMMITfest."

There's no reward for anyone in the PostgreSQL community to be a bad 
guy.  If you're too aggressive about it, submitters get mad; too loose, 
and you get both committers and people worried about the release 
schedule mad.  And the community is tight enough that the person you 
tick off today might be someone you have to work with next week.

Having sat in this particular seat several times now, I'd say the role 
needed here is more mediator than pointy-haired boss.  When I write bad 
news e-mail to submitters, I try to make the tone more about clarifying 
what was learned and what is needed to improve things for a next round 
of submissions.  It's not easy to adopt a writing tone for that sort of 
message while not coming off as insulting to someone.

Getting a feature punted forward is easier to take if a submitter leaves 
with a better roadmap and idea what standards they have to meet.  On 
bigger features in particular, that sometimes requires feedback from a 
committer earlier in the process, even if they haven't reached "Ready 
for Committer" via a reviewer yet.  My comment upthread about nailing 
down the committer for big features earlier than smaller ones was along 
these same lines.

> I wonder if we're starting to have enough data to establish meaningful
> statistics on feedback.

I had Robert send me a dump of the data that's in the CF app the other 
day.  I'm hoping to do some useful data mining on it before PGCon.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Robert Haas
Date:
On Tue, Apr 10, 2012 at 12:28 PM, Peter Geoghegan <peter@2ndquadrant.com> wrote:
> I think that you may be missing the greater point here. The people
> that do this are kind of like the defectors in prisoner's dilemma - at
> a certain point, some people cannot resist the temptation to push
> their own patch forward at the expense of others ...

The question is - what exactly are we supposed to do about that?  I
think that when prisoner A rats out prisoner B and prisoner B spends
10 years in Leavenworth, prisoner B is unlikely to be very happy with
the situation, even though he's surely not confused about *why*
prisoner A did it.  So here.  If we accept your argument that some
people simply cannot help themselves, then the only solution is to
make it cease to be a prisoner's dilemma, and that can only be done by
changing the incentives, which presumably means handing down
punishments to people who push their own patches forward at the
expense of others.  Unless we care to choose a benevolent dictator, I
don't see any way to accomplish that.

It's feasible to think that we might be able to streamline the process
of booting patches that are not close to committable at the start of a
CommitFest, and especially at the start of the final CommitFest.  For
example, limiting patches to a small number of days in the "Waiting on
Author" state would help a great deal.  But the more general problem
of people arguing that *their* patch is the special one without which
the earth will cease to revolve about its axis is more difficult to
solve, or that it's ready when it's really not, is more difficult to
solve.  How would you propose we deal with that problem?

> ISTM that this is symptomatic of the wider problem of a dire shortage
> of committer resources. 100% of my non-doc patches so far have been
> committed by 3 people. I would really like to see us figure out a way
> of making more hackers committers, perhaps subject to certain
> conditions that don't currently exist for committers. You might find
> that given commit bits, some people will take their responsibilities
> as a reviewer far more seriously. Maybe you don't think that any of
> the likely candidates are quite ready for that responsibility, but you
> must admit that it's a serious problem.

I don't agree with that.  I think that there are a few people who
don't now have commit bits who should be given them - in particular,
Fujii Masao and Kevin Grittner, both of whom have been doing
consistently excellent work for several years.   But giving people a
commit bit in the hopes that they will do better reviews seems
completely backwards to me: we should instead give commit bits to
people who have *already* demonstrated that they can be trusted to do
good reviews and exercise good judgement, and no one else.

The fact is that we have no shortage of committers - there are 19
people who have access to push code into our master git repository.  A
handful of those people have basically completely left the project and
their commit rights should probably be revoked on that basis; most of
them are still involved in one way or another but just not able to
devote a lot of time to reviewing other people's code.  The problem is
even more acute for large patches, which only a handful of people are
qualified to review, and which also take a lot of wall clock time to
review thoroughly.  But that's not a problem that's going to go away
because we make more committers.  Giving more people the ability to
commit stuff will neither force them to devote time to it nor make
them qualified to do it if they aren't already.

Every time someone's favorite patch gets rejected, there is an outcry
of - the standards for commit are too high!  But this overlooks the
fact that there are some people who regularly meet them.  A patch from
Fujii Masao, Kevin, or Noah is about ten times more likely to be
applied without comment than one from the average submitter.  That's
not because I like them (although I have to admit to liking Kevin
quite a lot; I have met Fujii Masao at most briefly and Noah not at
all), or because I necessarily care about their patches more than
anyone else's; it's because they do really good work.  Over time, such
people tend to become committers, and then everyone complains that the
committers have high standards.  Well, yes.  They are committers
*because* they have high standards, and that is exactly as it should
be.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Robert Haas
Date:
On Tue, Apr 10, 2012 at 1:27 PM, Greg Smith <greg@2ndquadrant.com> wrote:
> There's no reward for anyone in the PostgreSQL community to be a bad guy.
>  If you're too aggressive about it, submitters get mad; too loose, and you
> get both committers and people worried about the release schedule mad.  And
> the community is tight enough that the person you tick off today might be
> someone you have to work with next week.

Yep.

> Having sat in this particular seat several times now, I'd say the role
> needed here is more mediator than pointy-haired boss.  When I write bad news
> e-mail to submitters, I try to make the tone more about clarifying what was
> learned and what is needed to improve things for a next round of
> submissions.  It's not easy to adopt a writing tone for that sort of message
> while not coming off as insulting to someone.

Agreed.  I used to be better at this, but the increasing volume of
patches that get reviewed by no one else has forced me to curtail the
amount of time I spend on each one, and that is causing my natural
bluntness to come to the fore.  Unfortunately.

I also think that people were more receptive to my reviews before I
got a commit bit.  Back then, I was the guy who was telling you what
you were going to have to fix so Tom didn't boot your patch.  Now, I'm
the guy who is threatening to boot your patch if you don't fix what I
want fixed.  It comes off differently, even if the content is
identical.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Peter Geoghegan
Date:
On 10 April 2012 18:28, Robert Haas <robertmhaas@gmail.com> wrote:
> If we accept your argument that some
> people simply cannot help themselves, then the only solution is to
> make it cease to be a prisoner's dilemma, and that can only be done by
> changing the incentives, which presumably means handing down
> punishments to people who push their own patches forward at the
> expense of others.  Unless we care to choose a benevolent dictator, I
> don't see any way to accomplish that.

Well, I was really pointing out that people are somewhat forced into a
corner by the current state of affairs, because committers are not
typically able to look at anything in sufficient detail that isn't
"ready for committer", particularly as we approach crunch-time - their
time is simply too precious. By not marking the patch ready for
committer, they are basically asking for their patch to be passed
over, and they may be incapable of bridging the chasm between what
really is their best effort, and what'd you'd consider to be the
ready-for-committer gold standard. Some people cannot exclusively
dedicate their time to their patch, or lack sufficient experience to
meet that standard.

> It's feasible to think that we might be able to streamline the process
> of booting patches that are not close to committable at the start of a
> CommitFest, and especially at the start of the final CommitFest.  For
> example, limiting patches to a small number of days in the "Waiting on
> Author" state would help a great deal.  But the more general problem
> of people arguing that *their* patch is the special one without which
> the earth will cease to revolve about its axis is more difficult to
> solve, or that it's ready when it's really not, is more difficult to
> solve.  How would you propose we deal with that problem?

As I've already said, I think that needs to be decided impartially,
ideally by people who are removed from the engineering process. I
don't mean that we'd get a marketing person to make those decisions -
far from it. I just mean that some separation of powers can be a good
thing in some circumstances.

> I don't agree with that.  I think that there are a few people who
> don't now have commit bits who should be given them - in particular,
> Fujii Masao and Kevin Grittner, both of whom have been doing
> consistently excellent work for several years.

I agree with you about both individuals. I hope that this happens
sooner rather than later.

> Giving more people the ability to
> commit stuff will neither force them to devote time to it nor make
> them qualified to do it if they aren't already.

One major component of being qualified, is, of course, knowing what
you don't know, and the risk of being left with egg on your face turns
out to be a pretty effective way of preventing new committers from
being too eager. Giving more people bits has a cost: in general, I'd
expect it to result in a higher bug-to-line ratio when code is
committed. However, not doing so has an opportunity cost: less code is
committed, which may, on balance, result in an inferior release than
what we could have had. Maybe you think that we have the balance
perfectly right, and you are of course perfectly entitled to that
view, as well as being perfectly entitled to having your opinion more
heavily weighed than mine, but I'd like to see a dialogue about it at
some point.

--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services


Re: Last gasp

From
Tom Lane
Date:
Peter Geoghegan <peter@2ndquadrant.com> writes:
> On 10 April 2012 18:28, Robert Haas <robertmhaas@gmail.com> wrote:
>> I don't agree with that. �I think that there are a few people who
>> don't now have commit bits who should be given them - in particular,
>> Fujii Masao and Kevin Grittner, both of whom have been doing
>> consistently excellent work for several years.

> I agree with you about both individuals. I hope that this happens
> sooner rather than later.

FYI, the core committee traditionally has a discussion about whom
to appoint as new committers at the end of each release cycle.
I'm sure we'll be thinking about these names this time.

>> Giving more people the ability to
>> commit stuff will neither force them to devote time to it nor make
>> them qualified to do it if they aren't already.

> One major component of being qualified, is, of course, knowing what
> you don't know, and the risk of being left with egg on your face turns
> out to be a pretty effective way of preventing new committers from
> being too eager. Giving more people bits has a cost: in general, I'd
> expect it to result in a higher bug-to-line ratio when code is
> committed. However, not doing so has an opportunity cost: less code is
> committed, which may, on balance, result in an inferior release than
> what we could have had. Maybe you think that we have the balance
> perfectly right, and you are of course perfectly entitled to that
> view, as well as being perfectly entitled to having your opinion more
> heavily weighed than mine, but I'd like to see a dialogue about it at
> some point.

We've done pretty well over the past fifteen years by being chary in
handing out commit bits.  I don't particularly want to change that
policy.  Obviously we do need a steady supply of new blood, since
people do leave the project, but relaxing our standards doesn't seem
like the way to get it.  The impression I have is that we have a pretty
good and even increasing supply of new interested people, so letting
them acquire experience with the code base and eventually mature into
qualified committers doesn't look like a dead-end strategy from here.
        regards, tom lane


Re: Last gasp

From
Robert Haas
Date:
On Tue, Apr 10, 2012 at 2:49 PM, Peter Geoghegan <peter@2ndquadrant.com> wrote:
> Well, I was really pointing out that people are somewhat forced into a
> corner by the current state of affairs, because committers are not
> typically able to look at anything in sufficient detail that isn't
> "ready for committer", particularly as we approach crunch-time - their
> time is simply too precious. By not marking the patch ready for
> committer, they are basically asking for their patch to be passed
> over, and they may be incapable of bridging the chasm between what
> really is their best effort, and what'd you'd consider to be the
> ready-for-committer gold standard. Some people cannot exclusively
> dedicate their time to their patch, or lack sufficient experience to
> meet that standard.

I think that's partly true and partly false.  I actually spend a lot
of time looking at patches that are not marked Ready for Committer, on
the theory that I'd like to move things along that haven't been
formally tagged with that designation if they are nevertheless ready
to go, whereas Tom I think actively avoids it, on the theory that no
one else will volunteer to review if the committers just do
everything.  These positions are in tension but neither seems to me to
be without merit.

I do understand that not everyone is going to write code that meets
our standards for commit, and I have rewritten my share of patches -
sometimes, even quite large patches - to try to bring them up to that
level.  I had more time to do that last year than I have this year,
because this year I've been focused on performance stuff.  But, on the
flip side, I think we still did a pretty good job handling pretty much
everything submitted before November.  The stuff that ran into trouble
was the stuff that came in at the end, which in many cases was not
only late to the table but overly ambitious in its scope.  I think the
question should be not so much "why didn't those big patches get
committed?" as "why does anyone think that they have a right to be
upset that they didn't?".  They were given, basically, two to three
extra months to become committable, and still fell short.  And I'm
still very willing to devote more time to them to make them
committable *even though they are not my projects*, but I am *not*
willing to do it while the features I worked hard on to get ready
early sit there and don't get released.  That might be a reasonable
expectation if the original patches were submitted in May and I had
blithely ignored them in favor of my own work all year, but that ain't
what happened.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Jeff Davis
Date:
On Mon, 2012-04-09 at 23:12 -0400, Christopher Browne wrote:
> But there is also a flip side to that, namely that if we do so, there
> ought to be some aspect to the process to help guide those items that
> *aren't* particularly close to being committable.

I have benefited immensely from review of my WIP patches, and a lot of
the serious review tends to happen during commitfests. This is most
important for features with a significant user interface, where it's
harder to guess what people will want.

My current strategy is to submit WIP-marked patches during a commitfest.

I agree that we should continue to have a mechanism to review patches
that aren't ready for commit, though I'm fine if we change it.

Regards,Jeff Davis



Re: Last gasp

From
Greg Smith
Date:
On 04/10/2012 01:33 PM, Robert Haas wrote:

> I also think that people were more receptive to my reviews before I
> got a commit bit.

That's not true; many people were just as annoyed at you back then.


(Robert knows I'm kidding.  I hope.)

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Noah Misch
Date:
On Tue, Apr 10, 2012 at 11:53:23AM -0500, Kevin Grittner wrote:
> Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > "Kevin Grittner" <Kevin.Grittner@wicourts.gov> writes:
> >> One other sort of mechanical test which I think can and should be
> >> applied to patches submitted to the last CF is that if *at the
> >> start of the CF* the patch doesn't apply, compile, pass
> >> regression tests, and demonstrably provide the functionality
> >> claimed for the patch, it should not be a candidate for inclusion
> >> in the release.
> > 
> > I would not be in favor of inflexible application of such a rule.
> > For instance, if a patch had gotten broken by a conflict with some
> > other patch applied the day before the CF starts, it would be
> > unfair to not give the patch author a reasonable amount of time to
> > rebase.  And such conflicts occurring after the CF starts are
> > hardly unusual either.
>  
> I didn't mean to exclude rebasing because of conflicts with recent
> commits, so perhaps "mechanical" was overstating it.  But maybe not
> -- perhaps each patch submission should state which commit it was
> last confirmed to compile and work with, and if there are problems
> against HEAD that could be confirmed before asking for the rebase. 
> That wouldn't be too much extra work for the initial reviewer, and
> it would help establish objective criteria for categorizing whether
> a patch should be treated as WIP.

Of the patches I've reviewed that fall into one the problem categories Robert
outlined, all applied cleanly and passed regression tests.  On the flip side,
I have submitted at least two patches that failed regression tests for the
reviewer due to isolated, easily-fixed blunders.  Consequently, I'm not
hopeful about these checks as coarse indicators of patch readiness.  I would
certainly like an objective test for assigning patches to those categories,
but I don't have a better idea for such a test.

nm


Re: Last gasp

From
Greg Smith
Date:
On 04/10/2012 01:28 PM, Robert Haas wrote:
> The fact is that we have no shortage of committers - there are 19
> people who have access to push code into our master git repository.  A
> handful of those people have basically completely left the project and
> their commit rights should probably be revoked on that basis; most of
> them are still involved in one way or another but just not able to
> devote a lot of time to reviewing other people's code.

Let's use realistic numbers here:  I count 7 people who regularly review 
and commit other people's code in a variety of areas.  There are also 
several subject matter experts who commit things in a relatively narrow 
area.  But most bigger patches are going to hit a bottleneck whose 
capacity could be measured in 3 bits.

I would actually be happy to have more of the people whose commits were 
expected to be in targeted areas.  It's not like anyone who commits 
outside of their scope of expertise is going to survive doing that for 
long before getting publicly shamed and/or booted.  The pressure to not 
screw up is so high in this project, I suspect concerns over making a 
mistake is behind some people's reticence to commit other people's work.  Committing sketchy code that blows up later
isstill going to haunt 
 
its committer, regardless of the original author.

> Giving more people the ability to
> commit stuff will neither force them to devote time to it nor make
> them qualified to do it if they aren't already.

There are a couple of directions from which I don't completely agree 
with this.

To use a personal example I don't think is unique, I would set aside 
more time to hack on the documentation if I didn't have to bug one of 
the existing committers each time I wanted to work on something there. 
It really feels like I'm wasting the time of someone who could be doing 
more difficult things every time I submit a doc patch.  I'd merrily 
write more of those and consume things like the never ending stream of 
corrections from Thom Browne if I could turn that into a larger part of 
my job.  I don't do more of that now because it's very unsatisfying work 
unless you can do the whole thing yourself.  Knowing everything is going 
to pass through another person regardless removes some of the incentive 
to polish something until it's perfect for submitters.

As for broader concerns about whether people will alter their quality of 
work based on being able to commit, I'd suggest turning a look at 
yourself.  Your quality of work was high before it was a primary job 
goal, but it's surely gotten better now that it is, right?  Seems that 
way to me at least.  But it's really hard to get funding to work 
full-time on this project unless someone can commit their work.  There 
are plenty of people contributing here who rummage up enough part-time 
hours to develop the occasional feature, but not quite enough to make 
things perfect even by their own standards.  And not being recognized 
for your work on the project can be a self-fulfilling prophecy.

The main reason I worry about this is because of a very real chicken/egg 
problem here that I keep banging into.  Since the commit standards for 
so many other open-source projects are low, there are a non trivial 
number of business people who assume "!committer == 
![trusted|competent]".  That makes having such a limited number of 
people who can commit both a PR issue ("this project must not be very 
important if there are only 19 committers") and one limiting sponsorship 
("I'm not going to pay someone to work on this feature who's been 
working on it for years but isn't even a committer").

There are a significant number of companies who are willing to sponsor 
committers to open-source projects; there are almost none who will 
sponsor reviewers or "contributors" of any stature unless they're 
already deep into the PostgreSQL community.  That's one of the many 
reasons it's easier for a committer to attract funding for core 
PostgreSQL work, be it in the form of a full-time job or 
project-oriented funding.  The corresponding flip side to that is that 
the small number of committers is limiting the scope of funding the 
project can accumulate.

I'm somewhat oddly pleased at how the overflow of incoming submissions 
for 9.2 has raised questions around not having enough active committers.  I hope decisions about adding more recognizes
thatdistributing that 
 
power really does influence the ability of people to contribute, on 
average in a positive way.  All I see coming for next year is a dramatic 
increase in this class of problem.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Robert Haas
Date:
On Tue, Apr 10, 2012 at 8:43 PM, Greg Smith <greg@2ndquadrant.com> wrote:
> To use a personal example I don't think is unique, I would set aside more
> time to hack on the documentation if I didn't have to bug one of the
> existing committers each time I wanted to work on something there. It really
> feels like I'm wasting the time of someone who could be doing more difficult
> things every time I submit a doc patch.  I'd merrily write more of those and
> consume things like the never ending stream of corrections from Thom Browne
> if I could turn that into a larger part of my job.  I don't do more of that
> now because it's very unsatisfying work unless you can do the whole thing
> yourself.  Knowing everything is going to pass through another person
> regardless removes some of the incentive to polish something until it's
> perfect for submitters.

I wouldn't object to creating some doc-only committers.  OTOH, I would
object to anyone making non-trivial documentation enhancements without
posting their patches first and having a second person look it over,
so how much difference is there, really?

> As for broader concerns about whether people will alter their quality of
> work based on being able to commit, I'd suggest turning a look at yourself.
>  Your quality of work was high before it was a primary job goal, but it's
> surely gotten better now that it is, right?  Seems that way to me at least.

I think my quantity of work has gone up.  I'm not sure the quality is
much different, although perhaps I've gotten a bit sharper with
practice.

> I'm somewhat oddly pleased at how the overflow of incoming submissions for
> 9.2 has raised questions around not having enough active committers.  I hope
> decisions about adding more recognizes that distributing that power really
> does influence the ability of people to contribute, on average in a positive
> way.  All I see coming for next year is a dramatic increase in this class of
> problem.

My perception of what's going on here is dramatically different from
yours.  I don't think there was any overflow of submissions for 9.2.
For the most part I would describe it as a slow and boring release
cycle, with the usual spike in half-baked submissions right near the
end, except this release they were less baked than usual, which is why
most of them didn't go in.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Jeff Janes
Date:
On Tue, Apr 10, 2012 at 10:28 AM, Robert Haas <robertmhaas@gmail.com> wrote:
>
> It's feasible to think that we might be able to streamline the process
> of booting patches that are not close to committable at the start of a
> CommitFest, and especially at the start of the final CommitFest.

I'd usually consider "booting" a patch to be the domain of committers
(or the commit fest manager), not non-committing reviewers.  Could
enough patches get enough attention from committers early enough in
the process to make early booting happen?



> For
> example, limiting patches to a small number of days in the "Waiting on
> Author" state would help a great deal.

Could it be something like a limit on "waiting on author" days, but
only days that are after 2 weeks after the submission deadline count
(and days later than 3 weeks after the submission deadline count
twice).  That would encourage people to submit before the deadline,
rather than on the deadline.

Cheers,

Jeff


Re: Last gasp

From
Andres Freund
Date:
On Wednesday, April 11, 2012 03:14:41 AM Robert Haas wrote:
> > I'm somewhat oddly pleased at how the overflow of incoming submissions
> > for 9.2 has raised questions around not having enough active committers.
> >  I hope decisions about adding more recognizes that distributing that
> > power really does influence the ability of people to contribute, on
> > average in a positive way.  All I see coming for next year is a dramatic
> > increase in this class of problem.
> 
> My perception of what's going on here is dramatically different from
> yours.  I don't think there was any overflow of submissions for 9.2.
> For the most part I would describe it as a slow and boring release
> cycle, with the usual spike in half-baked submissions right near the
> end, except this release they were less baked than usual, which is why
> most of them didn't go in.
They might have been half-baked. But several of those didn't get design-level 
review for several weeks which makes it rather hard to fully bake them in 
time...

Andres


Re: Last gasp

From
Tom Lane
Date:
Andres Freund <andres@anarazel.de> writes:
> On Wednesday, April 11, 2012 03:14:41 AM Robert Haas wrote:
>> My perception of what's going on here is dramatically different from
>> yours.  I don't think there was any overflow of submissions for 9.2.
>> For the most part I would describe it as a slow and boring release
>> cycle, with the usual spike in half-baked submissions right near the
>> end, except this release they were less baked than usual, which is why
>> most of them didn't go in.

> They might have been half-baked. But several of those didn't get design-level
> review for several weeks which makes it rather hard to fully bake them in 
> time...

But if they didn't already have design-level review, that means they
were not seen in any previous CF, which means they were not following
the expectation that nontrivial patches should be submitted earlier than
the last CF.

I think the key point here is that people have to expect that it's going
to take more than one round of review to land most nontrivial patches.
And we have to discourage the expectation that that can happen within
the last CF of a release cycle.  If anything, the last CF has to be
tighter not looser than others on what we will accept, because there is
no time to recover if something proves wrong with a patch after a
month or three.

I keep coming back to the thought that we need more and shorter CFs,
and/or ReviewFests that are meant to help push WIP patches further
down the track.  We need to make it easier to get those early reviews
done while there's still development time left.
        regards, tom lane


Re: Last gasp

From
Peter Geoghegan
Date:
On 11 April 2012 02:14, Robert Haas <robertmhaas@gmail.com> wrote:
> My perception of what's going on here is dramatically different from
> yours.  I don't think there was any overflow of submissions for 9.2.

That is just not true. See the attached graph (couldn't produce one
with better resolution at short notice) - I've just eyeballed the
graph, but it looks like an upward trend to me. I think I submitted my
first patch in late April 2011. Now that Andres has joined
2ndQuadrant, it seems likely that his output will increase by a large
amount too. I think that Noah began contributing less than 2 years
ago. It certainly seems to me like we're getting more submissions that
are more complex...this image was generated by the tool gitstat, and
as such does not include figures for the patches that we were unable
to commit, though there also appears to be an upward trend there.

> For the most part I would describe it as a slow and boring release
> cycle, with the usual spike in half-baked submissions right near the
> end, except this release they were less baked than usual, which is why
> most of them didn't go in.

That is uncalled for.

--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services

Attachment

Re: Last gasp

From
Tom Lane
Date:
Peter Geoghegan <peter@2ndquadrant.com> writes:
> That is just not true. See the attached graph (couldn't produce one
> with better resolution at short notice) - I've just eyeballed the
> graph, but it looks like an upward trend to me.

[ scratches head... ]  That's supposed to be total lines of code in our
source tree?  What's the big drop in late 2009, then?

Other than that one-time whatever-it-was, it looks to me like the growth
rate has been roughly constant since about 2003.  There might be some
acceleration lately but then again there might not.  In any case, total
SLOC doesn't have that much to do with volume or complexity of patches.

What I'd be interested to see is number of lines changed per unit time;
that would be a much better measure of patch rate IMHO.
        regards, tom lane


Re: Last gasp

From
Robert Haas
Date:
On Tue, Apr 10, 2012 at 9:32 PM, Andres Freund <andres@anarazel.de> wrote:
> They might have been half-baked. But several of those didn't get design-level
> review for several weeks which makes it rather hard to fully bake them in
> time...

Yeah, I noticed.  People other than committers can do design reviews,
of course, and historically have, just not so much this time (though
Noah, for example, did excellent reviews of everything he looked at).
And people can post a design and ask for feedback before starting to
code.  In fact, once upon a time, it was understood to be recommended
practice.

I think that Alvaro got a little bit of a bum steer in this area: his
patch was big and complicated, he posted design stuff well in advance,
including both many emails to hackers and multiple blog articles, and
he got very little review from anyone.  I personally would have liked
to spend more time on that, but I simply did not have time.  More
people reviewing would have helped with that.  Making Alvaro a
committer wouldn't, because he already is.

I also think that the array foreign key thing didn't get reviewed
until awfully late.  But on the flip side, when it did get reviewed,
it was Noah who did it, not a committer, and all signs suggest he did
quite a good job pushing the patch toward a sensible design, as well
as cleaning up implementation problems.  Admittedly, if Noah were a
committer, the patch would likely be committed now, but I am not
entirely prepared to second-guess Tom's decision about whether it
should go into 9.2.

The real problem with the command triggers patch is that we got a
blizzard of code.  It's unrealistic to expect anyone to devote serious
review time to a patch that's under constant development.  It also
strikes me that a tremendous amount of pain could have been avoided by
posting a clear and detailed design sketch for that patch before
beginning to code.  Dimitri contended that without code, no one will
read design sketches, but that doesn't for the most part jive with my
experience, and I think that the strategy he actually chose backfired,
because it was clear that any review would be hitting a moving target.

Page checksums didn't really follow the design-before-code rule
either, but in spite of that it got no shortage of attention: Heikki,
Noah, and I all spent significant time on it.

pgsql_fdw provoked a lot of discussion involving many people.  I am
not sure we really know what the right design is there, but it's not
because nobody offered an opinion.  Had I the time I would have thrown
my opinion on the pile, but I'm not sure that would have saved it.  I
have a feeling this might be a big patch with a small patch struggling
to get out of it.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Robert Haas
Date:
On Tue, Apr 10, 2012 at 10:05 PM, Peter Geoghegan <peter@2ndquadrant.com> wrote:
> On 11 April 2012 02:14, Robert Haas <robertmhaas@gmail.com> wrote:
>> My perception of what's going on here is dramatically different from
>> yours.  I don't think there was any overflow of submissions for 9.2.
>
> That is just not true. See the attached graph (couldn't produce one
> with better resolution at short notice) - I've just eyeballed the
> graph, but it looks like an upward trend to me.

I don't know what this is a graph of, but if you look at the number of
patches in each of the CommitFests for the last couple of releases,
you see this:

9.0: 66, 40, 38, 60
9.1: 53, 52, 43, 96
9.2: 60, 52, 53, 104

There might be an upward trend there, but it isn't a very steep one.
It also seems pretty clear to me (although you are welcome to
disagree) that even if the *number* of patches in 9.2 was higher than
9.1, the average complexity was less, at least for the first three
CommitFests.

By the way, let's take a look at the major features list for 9.0 and
9.1, as well as who wrote them.

From the 9.0 release notes:

- Streaming Replication (Fujii Masao - not a committer)
- Hot Standby (Simon Riggs - committer - though he wasn't when he
wrote the first version of this patch)
- GRANT/REVOKE IN SCHEMA (Petr Jelinek - not a committer)
- ALTER DEFAULT PRIVILEGES (Petr Jelinek - not a committer)
- DO (Peter Jelinek - not a committer)
- 64-bit Windows (Tsutomu Yamada, Magnus Hagander - not a committer
and a committer, respectively)
- Better window functions (Hitoshi Harada - not a committer)
- ORDER BY for aggregates (Andrew Gierth - not a committer)
- Deferrable unique constraints (Dean Rasheed - not a committer)
- Exclusion constraints (Jeff Davis - not a committer)
- RADIUS (Magnus Hagander - a committer)
- LDAP improvements (Robert Fleming, Magnus Hagander - not a committer
and a committer, respectively)
- Better LISTEN/NOTIFY (Joachim Wieland - not a committer)
- Better VACUUM FULL (Itagaki Takahiro, Tom Lane - both now
committers, but Itagaki Takahiro became one only later)
- pg_upgrade (Bruce Momjian - a committer)
- join removal (Robert Haas - now a committer, but not then)
- EXPLAIN enhancements (Robert Haas - now a committer, but not then)
- hstore enhancments (Andrew Gierth - now a committer, but not then)

And for 9.1:

- synchronous replication (Simon Riggs - committer)
- foreign tables (Shigeru Hanada, Robert Haas, Jan Urbanski, Heikki
Linnakangas - two committers and two non-committers)
- per-column collation (Peter Eisentraut, Tom Lane - both committers)
- extensions (Dimitri Fontaine, Tom Lane - one non-committer, one committer)
- SSI (Kevin Grittner, Dan Ports - not committers)
- unlogged tables (Robert Haas - committer)
- DML WITH (Marko Tiikkaja, Hitoshi Harada - not committers)
- KNN-GIST (Teodor Sigaev, Tom Lane - both committers)
- SECURITY LABEL and sepgsql (KaiGai Kohei - not a committer)
- Update the PL/Python server-side language (Jan Urbanski - not a committer)

We don't have the release notes for 9.2 yet, and I don't want to
speculate too much about exactly what things will get labelled as
major features, but....  we might have shifted slightly in the
direction of major features coming from committers, because I worked
on three things that could arguably be placed in that category and
Tom's query planner stuff might qualify as well.  OTOH, Fujii Masao
wrote cascading replication, which I am positive will be listed, and
you did the pg_stat_statements rework, which is certainly awfully
nifty whether it makes the major features cut or not, and Jeff Davis
did range types, which I think may be the most innovative thing in 9.2
even though it doesn't have quite as broad an appeal.  However exactly
the list turns out, there is no question that non-committers have been
quite successful in getting significant feature enhancements committed
in each of the last three releases, and I'm pretty confident it goes
back a lot further than that.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Magnus Hagander
Date:
On Wednesday, April 11, 2012, Robert Haas wrote:
On Tue, Apr 10, 2012 at 10:05 PM, Peter Geoghegan <peter@2ndquadrant.com> wrote:
> On 11 April 2012 02:14, Robert Haas <robertmhaas@gmail.com> wrote:
>> My perception of what's going on here is dramatically different from
>> yours.  I don't think there was any overflow of submissions for 9.2.
>
> That is just not true. See the attached graph (couldn't produce one
> with better resolution at short notice) - I've just eyeballed the
> graph, but it looks like an upward trend to me.

I don't know what this is a graph of, but if you look at the number of
patches in each of the CommitFests for the last couple of releases,
you see this:

9.0: 66, 40, 38, 60
9.1: 53, 52, 43, 96
9.2: 60, 52, 53, 104

There might be an upward trend there, but it isn't a very steep one.
It also seems pretty clear to me (although you are welcome to
disagree) that even if the *number* of patches in 9.2 was higher than
9.1, the average complexity was less, at least for the first three
CommitFests.

By the way, let's take a look at the major features list for 9.0 and
9.1, as well as who wrote them.

>From the 9.0 release notes:

- Streaming Replication (Fujii Masao - not a committer)
- Hot Standby (Simon Riggs - committer - though he wasn't when he
wrote the first version of this patch)
- GRANT/REVOKE IN SCHEMA (Petr Jelinek - not a committer)
- ALTER DEFAULT PRIVILEGES (Petr Jelinek - not a committer)
- DO (Peter Jelinek - not a committer)
- 64-bit Windows (Tsutomu Yamada, Magnus Hagander - not a committer
and a committer, respectively)
- Better window functions (Hitoshi Harada - not a committer)
- ORDER BY for aggregates (Andrew Gierth - not a committer)
- Deferrable unique constraints (Dean Rasheed - not a committer)
- Exclusion constraints (Jeff Davis - not a committer)
- RADIUS (Magnus Hagander - a committer)
- LDAP improvements (Robert Fleming, Magnus Hagander - not a committer
and a committer, respectively)
- Better LISTEN/NOTIFY (Joachim Wieland - not a committer)
- Better VACUUM FULL (Itagaki Takahiro, Tom Lane - both now
committers, but Itagaki Takahiro became one only later)
- pg_upgrade (Bruce Momjian - a committer)
- join removal (Robert Haas - now a committer, but not then)
- EXPLAIN enhancements (Robert Haas - now a committer, but not then)
- hstore enhancments (Andrew Gierth - now a committer, but not then)

For the sake of the archives - Andrew Gierth is not a committer now either.

//Magnus



--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

Re: Last gasp

From
Daniel Farina
Date:
On Tue, Apr 10, 2012 at 8:12 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> However exactly
> the list turns out, there is no question that non-committers have been
> quite successful in getting significant feature enhancements committed
> in each of the last three releases, and I'm pretty confident it goes
> back a lot further than that.

I agree that in practice non-committers do get a lot of great stuff
done, but the question is if *more* stuff would get done if things
were slightly different. To that end, I'd like to share my own
anecdote on why I don't attempt large projects to Postgres at this
time:

I used to work on a proprietary postgres offspring and ship quite a
bit of internals code.  A couple of people I worked with are
frequenters of this list, even. I spent nearly two years doing it,
full time, without having to (or being able to) go through a
full-blown community process from design to ship: I got a lot of
nuts-and-bolts practice, and I really enjoyed it.  Yet I don't take on
large projects in the project now, and I'm even employed in a place
where I could start doing that on-the-job. Why don't I?

One reason I don't do that is because there is an unavoidable
information asymmetry problem between myself and the committers.  When
I think of a committer and what makes me different than them, this is
what I come up with:

* More experience and expertise, both in general and with the project

* Proven intent to maintain the work submitted by others for a long
time.  In a word, "stewardship" or "ownership"

I'm grateful for both, but the latter point is one where some
mind-reading is required: what's strategically important enough that's
it is important enough to compromise on something?  What compromises
are acceptable?  That is tantamount to guessing "what compromises is a
committer willing to maintain?"  And that can be a pretty personal
thing and is hard to guess, and I don't think that's solvable as long
as there seems to be this handoff from "the contributor" to "the
project."

It's hard to feel a sense of ownership -- and thus commitment -- if
one cannot simply change one's own code, especially for trivia or
churning around a future intent or purpose.  If there is a bottleneck
with the development process that is having a chilling effect on my
ability to justify larger projects, it is this.

I don't know what the most apparent way to optimize that bottleneck
is, but there's my thoughts.  I think part of the answer is more
hooks, even if they come with reduced contracts in terms of
maintenance (here this release, gone the next release), and less
required justification to commit those; consider
https://github.com/dimitri/pgextwlist, which relies on such a hook and
is the only thing that makes 9.1's extension support viable for
Heroku, yet is cohesive feeling with the rest of the system to the
point that it pretty much goes unnoticed.  That's a great property I
wish I could see more of.

Also, I am not able to spend as much time on large Postgres-projects
because some of the tooling outside the database is still the weakest
link in my chain for now, so the good news is that I've shifted my
attention to projects that are very much related but not part
postgres-proper.  The point of having more hooks is to open up more
opportunities for such tools without making the result feel incohesive
and terrible for reasons not intrinsic to the idea it is trying to add
(consider: using the statement hook in pgextwlist rather than
preloaded security-definer UDFs that would run CREATE EXTENSION for
you.  Yuck.)

-- 
fdr


Re: Last gasp

From
Greg Smith
Date:
On 04/10/2012 09:14 PM, Robert Haas wrote:
> I wouldn't object to creating some doc-only committers.  OTOH, I would
> object to anyone making non-trivial documentation enhancements without
> posting their patches first and having a second person look it over,
> so how much difference is there, really?

This workflow is the easy one:

-Committer suggests doc change
-No one has an opinion against it strong enough to comment, or minor 
review comments are made
-Commit change with feedback when received

That's a predictable, short process unless the change is controversial, 
in which case good feedback normally comes out of that discussion.  And 
if I feel review is needed but don't catch any volunteers, there is a 
much broader pool of people who can be hired to help with review work, 
relative to the size of the committer one.

Compare with:

-Submitter suggests doc change
-No one has a strong opinion on it, may not be picked up at all
-Submitter adds to the next CF
-Wait for review
-[Possible repost update with reviewer changes]
-Ready for committer
-Committer takes time away from code review to look at it
-Possibly another feedback/review resubmission
-Commit final versions

It's usually not this bad, but in every case it's pulling resources off 
of more valuable jobs.

I'd like to dump around 50 pages of new material into the docs as a 
start, but I don't want to take so much time away from the code oriented 
committers to chew on that much.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Tom Lane
Date:
Greg Smith <greg@2ndQuadrant.com> writes:
> On 04/10/2012 09:14 PM, Robert Haas wrote:
>> I wouldn't object to creating some doc-only committers.  OTOH, I would
>> object to anyone making non-trivial documentation enhancements without
>> posting their patches first and having a second person look it over,
>> so how much difference is there, really?

> ...
> I'd like to dump around 50 pages of new material into the docs as a 
> start, but I don't want to take so much time away from the code oriented 
> committers to chew on that much.

Well, with all due respect, that does not sound like a change that
doesn't need review.

I have not noticed people adding docs-only changes to the CFs; usually
it's more like "post a patch, somebody looks it over and commits it".
I agree that this is still too much overhead for simple fixes, such
as the editorial glitches that Thom Brown is so good at finding
(and I'm about ready to vote to give him a commit bit for that work).
But a fifty-page chunk is not that, indeed it sounds like it would have
enough technical content that it might actually merit a full-scale
review.
        regards, tom lane


Re: Last gasp

From
Peter Geoghegan
Date:
On 11 April 2012 03:26, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> [ scratches head... ]  That's supposed to be total lines of code in our
> source tree?  What's the big drop in late 2009, then?

I had wondered about that myself - all I can tell you is that I used
the tool as advertised, without any adornments. This particular tool
is a bit misleading, because it counts lines of code as lines of
checked-in text, which can include things that are very verbose
without necessarily being what we really think of as code - it doesn't
make any effort to discriminate against non-code, nor does it expose
the option of doing so. I chose it at short notice simply because it
produces graphs. I do intend to take a look at this problem in more
detail, and get better statistics on changes to our codebase - it's a
tricky proposition, though.

--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services


Re: Last gasp

From
Magnus Hagander
Date:
On Wed, Apr 11, 2012 at 16:24, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Greg Smith <greg@2ndQuadrant.com> writes:
>> On 04/10/2012 09:14 PM, Robert Haas wrote:
>>> I wouldn't object to creating some doc-only committers.  OTOH, I would
>>> object to anyone making non-trivial documentation enhancements without
>>> posting their patches first and having a second person look it over,
>>> so how much difference is there, really?
>
>> ...
>> I'd like to dump around 50 pages of new material into the docs as a
>> start, but I don't want to take so much time away from the code oriented
>> committers to chew on that much.
>
> Well, with all due respect, that does not sound like a change that
> doesn't need review.
>
> I have not noticed people adding docs-only changes to the CFs; usually
> it's more like "post a patch, somebody looks it over and commits it".
> I agree that this is still too much overhead for simple fixes, such
> as the editorial glitches that Thom Brown is so good at finding
> (and I'm about ready to vote to give him a commit bit for that work).
> But a fifty-page chunk is not that, indeed it sounds like it would have
> enough technical content that it might actually merit a full-scale
> review.

Since the topic is somewhat drifting here anyway.. :-)

Might it be worthwhile to allow some sort of "staging repository" and
actually start using the git stuff a bit more around this? E.g. we
could have a "docs repo" somewhere where more people have commit bits,
and then they are just regularly merged back into the main tree? Sort
of the way different people can own different subsystems in other
projects, but someone does the "trusted merge"?

For example, Thom (and others) could collect a number of typo fixes in
their own repo and then just ask for a merge.The advantage over just
staging multiple commits and then submitting a patch would be that
multiple people could work on it...

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Last gasp

From
Andrew Dunstan
Date:

On 04/10/2012 08:43 PM, Greg Smith wrote:
> On 04/10/2012 01:28 PM, Robert Haas wrote:
>> The fact is that we have no shortage of committers - there are 19
>> people who have access to push code into our master git repository.  A
>> handful of those people have basically completely left the project and
>> their commit rights should probably be revoked on that basis; most of
>> them are still involved in one way or another but just not able to
>> devote a lot of time to reviewing other people's code.
>
> Let's use realistic numbers here:  I count 7 people who regularly 
> review and commit other people's code in a variety of areas.  There 
> are also several subject matter experts who commit things in a 
> relatively narrow area.  But most bigger patches are going to hit a 
> bottleneck whose capacity could be measured in 3 bits.


Robert's point is fairly important. A few years ago one of the Postgres 
companies hired me for a few weeks to push along some of the stuff that 
was holding up a release at a critical time. (This was in the pre CF 
days.) Several important features made it into that release that almost 
certainly would not have otherwise. But generally that hasn't happened, 
and the time I've devoted has been my own, and thus subject to competing 
demands of business and the mythical "life AFK". Sometimes that makes it 
quite hard to arrange time to spend on reviewing and committing large 
patches.


>
>
> There are a significant number of companies who are willing to sponsor 
> committers to open-source projects; there are almost none who will 
> sponsor reviewers or "contributors" of any stature unless they're 
> already deep into the PostgreSQL community.  That's one of the many 
> reasons it's easier for a committer to attract funding for core 
> PostgreSQL work, be it in the form of a full-time job or 
> project-oriented funding.  The corresponding flip side to that is that 
> the small number of committers is limiting the scope of funding the 
> project can accumulate.
>
>


Yep. The plus side is that Postgres business seems to be growing quite 
rapidly (if our experience at PostgreSQL Experts Inc is anything to go 
by), so maybe there will be more sources of funding available. More work 
needs to be done to generate funds to support getting features reviewed 
and committed. Patches seems to be getting ever larger and more complex, 
and that makes reviewing them harder and much more time consuming.


cheers

andrew




Re: Last gasp

From
Alvaro Herrera
Date:
Excerpts from Magnus Hagander's message of mié abr 11 11:35:10 -0300 2012:

> For example, Thom (and others) could collect a number of typo fixes in
> their own repo and then just ask for a merge.The advantage over just
> staging multiple commits and then submitting a patch would be that
> multiple people could work on it...

The other advantage is that committers could have that tree as another
remote in their main PG tree, and so changesets could be pulled into the
same clone and cherry-picked into the master branch.

(I'd also set up a clone for Alex Hunsaker to commit to pl/perl).

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


Re: Last gasp

From
Robert Haas
Date:
On Wed, Apr 11, 2012 at 10:35 AM, Magnus Hagander <magnus@hagander.net> wrote:
> Since the topic is somewhat drifting here anyway.. :-)
>
> Might it be worthwhile to allow some sort of "staging repository" and
> actually start using the git stuff a bit more around this? E.g. we
> could have a "docs repo" somewhere where more people have commit bits,
> and then they are just regularly merged back into the main tree? Sort
> of the way different people can own different subsystems in other
> projects, but someone does the "trusted merge"?
>
> For example, Thom (and others) could collect a number of typo fixes in
> their own repo and then just ask for a merge.The advantage over just
> staging multiple commits and then submitting a patch would be that
> multiple people could work on it...

If our goal is to give people more or less unfettered access to
certain areas of the tree, but not the whole thing, we should perhaps
consider just doing that directly.  There's no particular reason why
Thom Brown can't be made a committer just for docs, or why Alex
Hunsaker can't be made a committer just for PL/perl (and presumably
docs, since he'd need to update the docs if he updates the code), if
that's actually what we want to do.

Now, the advantage of a staging tree is that it gives the people who
have commit rights to the main repository the ability to decline to
merge.  The question is - what happens then, especially given that we
have so many committers already?  In Linux-land, it becomes the
subsystem maintainer's responsibility to put the tree into a state
where Linus will again become willing to merge it, or he can fire the
subsystem maintainer and pick a new one that'll do what he wants.  But
we don't work that way.  Instead, the committers as a group have the
responsibility for not breaking stuff.  So who would decide whether to
do the merge, and who would be responsible for fixing things if the
merge were refused?  As far as I can see, this basically amounts to
bundling lots of unrelated changes into one big pile and then asking
to have them all committed at once instead of one at a time, which
sounds like more work not less, unless we're just going to blindly
merge without reviewing, in which case we may as well just let people
commit to the main repository themselves.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Tom Lane
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> On Wed, Apr 11, 2012 at 10:35 AM, Magnus Hagander <magnus@hagander.net> wrote:
>> Might it be worthwhile to allow some sort of "staging repository" and
>> actually start using the git stuff a bit more around this?

> ... As far as I can see, this basically amounts to
> bundling lots of unrelated changes into one big pile and then asking
> to have them all committed at once instead of one at a time, which
> sounds like more work not less, unless we're just going to blindly
> merge without reviewing, in which case we may as well just let people
> commit to the main repository themselves.

Yeah.  I'm also worried that we would either lose linear history, or
(if we squash the merge commits) lose change log history for the
individual fixes.  Neither of those sounds terribly attractive.

We've frequently had, and still have today, committers who are
understood to have limited areas of expertise and are given commit
bits on the honor system to not break what they don't know well.
I don't have any problem with continuing in that line.
        regards, tom lane


Re: Last gasp

From
Robert Haas
Date:
On Wed, Apr 11, 2012 at 11:38 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Wed, Apr 11, 2012 at 10:35 AM, Magnus Hagander <magnus@hagander.net> wrote:
>>> Might it be worthwhile to allow some sort of "staging repository" and
>>> actually start using the git stuff a bit more around this?
>
>> ... As far as I can see, this basically amounts to
>> bundling lots of unrelated changes into one big pile and then asking
>> to have them all committed at once instead of one at a time, which
>> sounds like more work not less, unless we're just going to blindly
>> merge without reviewing, in which case we may as well just let people
>> commit to the main repository themselves.
>
> Yeah.  I'm also worried that we would either lose linear history, or
> (if we squash the merge commits) lose change log history for the
> individual fixes.  Neither of those sounds terribly attractive.
>
> We've frequently had, and still have today, committers who are
> understood to have limited areas of expertise and are given commit
> bits on the honor system to not break what they don't know well.
> I don't have any problem with continuing in that line.

Me neither, but I don't know how far it scales.  Having certain people
who are defined as, say, doc-only committers will not only make it
clear to those people what they're expected to commit, but also clear
to everyone else who the people are who might commit any given patch
they might write.  If we just end up with 50 committers and you have
to follow pgsql-hackers to understand who knows what and which people
are even still around, it's not going to make anything easier for
anyone.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Alvaro Herrera
Date:
Excerpts from Robert Haas's message of mié abr 11 12:44:02 -0300 2012:

> Me neither, but I don't know how far it scales.  Having certain people
> who are defined as, say, doc-only committers will not only make it
> clear to those people what they're expected to commit, but also clear
> to everyone else who the people are who might commit any given patch
> they might write.  If we just end up with 50 committers and you have
> to follow pgsql-hackers to understand who knows what and which people
> are even still around, it's not going to make anything easier for
> anyone.

Since we're so keen on copying what Linux does, we could just have a
MAINTAINERS file.

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


Re: Last gasp

From
Joshua Berkus
Date:
All,

From my observation, the CF process ... in fact, all development processes we've had in Postgres ... have suffered from
onlyone problem: lack of consensus on how the process should work.  For example, we've *never* had consensus around the
criteriafor kicking a patch out of a commitfest.  This lack of consensus has resulted in disorganization, ennui towards
theprocess, deadline overruns, and a lot of general unhappiness.   People have stopped believing in the CF system
becausewe've stopped running it.
 

I'm encouraged at this point that we've seen where this lack of consensus can lead us, maybe at this point we're
willingto set aside individual differences of opinion on what the criteria should be (especially when it comes to the
patcheswe each individually care about) in service of a smoother-running process.  Some suggestions:
 

- for the first 2 weeks of each CF, there should be a *total* moritorium on discussing any features not in the current
CFon -hackers.
 
- the CF manager should have unquestioned authority to kick patches.  As in, no arguing.
- we should have simple rules for the CF manager for kicking patches, as in:  * no response from author in 5 days  *
judgedas needing substantial work by reviewer  * feature needs spec discussion
 

However, the real criteria don't matter as much as coming up with a set of criteria we're all willing to obey, whatever
theyare.
 

We also need better tools for the CF, but frankly better tools is a minor issue and easily solved if we have a
consensuswhich people are willing to obey.  For that matter, if we have a smooth and impartial process, we can do other
things,including: training new reviewers, promoting new committers, changing the length of the CF cycle, or changing
thePostgreSQL release cycle (yes, really).  While our review and commit process is completely subjective and
inconsistent,though, we can't do any of these things.
 

--Josh Berkus



Re: Last gasp

From
Peter Geoghegan
Date:
On 11 April 2012 15:35, Magnus Hagander <magnus@hagander.net> wrote:
> Might it be worthwhile to allow some sort of "staging repository" and
> actually start using the git stuff a bit more around this? E.g. we
> could have a "docs repo" somewhere where more people have commit bits,
> and then they are just regularly merged back into the main tree? Sort
> of the way different people can own different subsystems in other
> projects, but someone does the "trusted merge"?
>
> For example, Thom (and others) could collect a number of typo fixes in
> their own repo and then just ask for a merge.The advantage over just
> staging multiple commits and then submitting a patch would be that
> multiple people could work on it...

This is hardly a radical idea at all - it's basically how git was
really intended to be used at scale. Of course, unless some committer
is going to make it their responsibility to merge those commits say
every 3 months, there's no point in bothering. This could consolidate
the number of typo commits to boot, as they could be rebased. TBH, I
find it slightly embarrassing to have to ask a committer to fix a
minor typo, and it's hardly reasonable to expect me to save my typos
up.

Big +1 from me.

It might be the case that over time, we become comfortable with this
approach and upgrade the tree to a "linux-next" style tree (much like
the  -mm tree was repurposed into the progenitor of linux-next), with
a lesser (though still substantial) standard for committers to meet.
There could be an understanding that by committing to the tree, the
developer makes a representation that they are confident that the
feature is ready for prime-time, in just the same way that a commit
currently represents - don't underestimate the power of that ceremony.
Less senior contributors could have their work scrutinised by a wider
body of people that haven't necessarily taken enough of an interest in
the contributor's work to want to follow them on github or whatever -
enthusiast power users who wouldn't really consider themselves
hackers.

This partially solves the "you want us to fund feature development but
you're not even a committer?" problem that Greg referred to. It's also
how big projects scale - technically, there are relatively few
committers to the linux-stable tree.

This approach formalises Tom's view that "I think the key point here
is that people have to expect that it's going to take more than one
round of review to land most nontrivial patches".

On 11 April 2012 16:27, Robert Haas <robertmhaas@gmail.com> wrote:
> Now, the advantage of a staging tree is that it gives the people who
> have commit rights to the main repository the ability to decline to
> merge.  The question is - what happens then, especially given that we
> have so many committers already?  In Linux-land, it becomes the
> subsystem maintainer's responsibility to put the tree into a state
> where Linus will again become willing to merge it, or he can fire the
> subsystem maintainer and pick a new one that'll do what he wants.  But
> we don't work that way.  Instead, the committers as a group have the
> responsibility for not breaking stuff.  So who would decide whether to
> do the merge, and who would be responsible for fixing things if the
> merge were refused?

This seems like a non-issue to me. We just try and match the Linux
model. In practice I'd imagine that the roles would not really be
perfectly delineated like that, and I find it really doubtful that
they are in Linux land either. There was a time when some people were
somewhat skeptical of the git migration (at least privately), and that
was, as far as I can tell, a roaring success.
--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services


Re: Last gasp

From
"Kevin Grittner"
Date:
Tom Lane <tgl@sss.pgh.pa.us> wrote:
> What I'd be interested to see is number of lines changed per unit
> time; that would be a much better measure of patch rate IMHO.
Based on `git diff --shortstat` between tags, for the whole tree,
this is what shows up:              files
git tag      changed  insertions  deletions
===========  =======  ==========  =========
PG95-1_01
Release_1_0_2    133       10373       1046
REL2_0          1079       65115      41987
REL6_1           770       70656      42995
REL6_2           919      195720     141153
REL6_3          1140      104845      34326
REL6_4_2        1583      171053      69832
REL6_5          1366      136665      85013
REL7_0          1991      272086     142201
REL7_1          2164      441090     212481
REL7_2          1826      314583     139238
REL7_3          2258      631434     245295
REL7_4          2018      436323     283074
REL8_0_0        2398      446392     258825
REL8_1_0        1796      235680     181193
REL8_2_0        2343      288467     168438
REL8_3_0        2355      405974     174798
REL8_4_0        2464      339085     462065
REL9_0_0        2270      292187     191852
REL9_1_0        3225      443037     186042
HEAD            2014      189648     111194
-Kevin


Re: Last gasp

From
Tom Lane
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> On Wed, Apr 11, 2012 at 11:38 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> We've frequently had, and still have today, committers who are
>> understood to have limited areas of expertise and are given commit
>> bits on the honor system to not break what they don't know well.
>> I don't have any problem with continuing in that line.

> Me neither, but I don't know how far it scales.  Having certain people
> who are defined as, say, doc-only committers will not only make it
> clear to those people what they're expected to commit, but also clear
> to everyone else who the people are who might commit any given patch
> they might write.  If we just end up with 50 committers and you have
> to follow pgsql-hackers to understand who knows what and which people
> are even still around, it's not going to make anything easier for
> anyone.

When and if we have 50 committers, we can worry about that problem ;-).
But in practice people have different areas of expertise already.
There was some mumbling upthread about trying to identify early who
would be the responsible committer for any given CF submission ---
doesn't seem to me like that is much different.
        regards, tom lane


Re: Last gasp

From
Josh Kupershmidt
Date:
On Wed, Apr 11, 2012 at 8:59 AM, Peter Geoghegan <peter@2ndquadrant.com> wrote:
> On 11 April 2012 15:35, Magnus Hagander <magnus@hagander.net> wrote:

>> For example, Thom (and others) could collect a number of typo fixes in
>> their own repo and then just ask for a merge.The advantage over just
>> staging multiple commits and then submitting a patch would be that
>> multiple people could work on it...
>
> This is hardly a radical idea at all - it's basically how git was
> really intended to be used at scale. Of course, unless some committer
> is going to make it their responsibility to merge those commits say
> every 3 months, there's no point in bothering. This could consolidate
> the number of typo commits to boot, as they could be rebased. TBH, I
> find it slightly embarrassing to have to ask a committer to fix a
> minor typo, and it's hardly reasonable to expect me to save my typos
> up.
>
> Big +1 from me.

Particularly for the docs, it'd be nice to have more committer
bandwidth available, if there's a reasonable way to do so without
causing needless merge work for existing committers. Like Peter, I
hate to bother busy committers with trivial typofixes, and sometimes I
just don't bother sending such changes in, and they get lost :-(

Maybe keeping doc/ as a 'git submodule' could work? Or, as Tom
suggests, adding a global committer who could focus on docs changes
would effectively solve the problem as well.

Josh


Re: Last gasp

From
Magnus Hagander
Date:
On Wed, Apr 11, 2012 at 18:29, Josh Kupershmidt <schmiddy@gmail.com> wrote:
> On Wed, Apr 11, 2012 at 8:59 AM, Peter Geoghegan <peter@2ndquadrant.com> wrote:
>> On 11 April 2012 15:35, Magnus Hagander <magnus@hagander.net> wrote:
>
>>> For example, Thom (and others) could collect a number of typo fixes in
>>> their own repo and then just ask for a merge.The advantage over just
>>> staging multiple commits and then submitting a patch would be that
>>> multiple people could work on it...
>>
>> This is hardly a radical idea at all - it's basically how git was
>> really intended to be used at scale. Of course, unless some committer
>> is going to make it their responsibility to merge those commits say
>> every 3 months, there's no point in bothering. This could consolidate
>> the number of typo commits to boot, as they could be rebased. TBH, I
>> find it slightly embarrassing to have to ask a committer to fix a
>> minor typo, and it's hardly reasonable to expect me to save my typos
>> up.
>>
>> Big +1 from me.
>
> Particularly for the docs, it'd be nice to have more committer
> bandwidth available, if there's a reasonable way to do so without
> causing needless merge work for existing committers. Like Peter, I
> hate to bother busy committers with trivial typofixes, and sometimes I
> just don't bother sending such changes in, and they get lost :-(
>
> Maybe keeping doc/ as a 'git submodule' could work? Or, as Tom
> suggests, adding a global committer who could focus on docs changes
> would effectively solve the problem as well.

git submodule would be a really bad idea imho. Then you couldn't make
a single commit that deals with both code and docs.

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Last gasp

From
Tom Lane
Date:
Joshua Berkus <josh@agliodbs.com> writes:
> From my observation, the CF process ... in fact, all development
> processes we've had in Postgres ... have suffered from only one
> problem: lack of consensus on how the process should work.  For
> example, we've *never* had consensus around the criteria for kicking
> a patch out of a commitfest.

True, but "put that decision entirely in the hands of the CF manager"
doesn't seem to me to be a workable solution.  Half the time we
don't even have a CF manager, AFAICT.  Now admittedly the opportunity
to wield absolute power might attract more interest in the position ;-)
but I don't think we want people who are attracted by that.

> Some suggestions:

> - for the first 2 weeks of each CF, there should be a *total* moritorium on discussing any features not in the
currentCF on -hackers.
 

We've tried that in the past, and it's never been adhered to very well,
and I think it's folly to assume that we'll get much better at it.
The nature of a mailing list is that there's a lot of noise.  Even if
95% of the membership knows about and agrees with the restriction, the
other 5% will still post about non-CF stuff.

> - we should have simple rules for the CF manager for kicking patches, as in:
>    * no response from author in 5 days
>    * judged as needing substantial work by reviewer
>    * feature needs spec discussion

These rules still seem to me to require a lot of judgment, hence
opportunity for argument.  What's "substantial work"?  How big a quibble
about the spec is big enough to get a patch booted?

> However, the real criteria don't matter as much as coming up with a set of criteria we're all willing to obey,
whateverthey are.
 

Ultimately, we're herding cats here.  I don't think you're going to get
the community to suddenly be willing to march in lockstep instead.
        regards, tom lane


Re: Last gasp

From
Robert Haas
Date:
On Wed, Apr 11, 2012 at 11:49 AM, Alvaro Herrera
<alvherre@commandprompt.com> wrote:
> Excerpts from Robert Haas's message of mié abr 11 12:44:02 -0300 2012:
>> Me neither, but I don't know how far it scales.  Having certain people
>> who are defined as, say, doc-only committers will not only make it
>> clear to those people what they're expected to commit, but also clear
>> to everyone else who the people are who might commit any given patch
>> they might write.  If we just end up with 50 committers and you have
>> to follow pgsql-hackers to understand who knows what and which people
>> are even still around, it's not going to make anything easier for
>> anyone.
>
> Since we're so keen on copying what Linux does, we could just have a
> MAINTAINERS file.

I'm actually not particularly keen on copying what Linux does.  It
seems that they have a lot of the same problems that we have, only
worse.  Unless you can get the proper person to take notice of your
patch and merge it into his tree, from where it will get merged into
somebody else's tree, from where it will eventually get merged into
Linus's tree (maybe with one more tree in the path just for good
measure), your patch is just going to fall on the floor and die.  The
lseek contention stuff in Linux 3.2 was submitted in substantially
identical form years ago and didn't get merged - mostly, AFAICT, just
because nobody cared about it enough.

Our process is not perfect, but in recent years we have at least done
a fairly good job preventing things from dying of apathy, even if not
everybody agrees on which things ultimately should or should not have
gotten committed.  Small doc changes might be an exception.  I used to
apply those regularly, but I've had to fall back to making occasional
sweeps of my pgsql-docs email box and looking for unresolved issues.
Having a few more committers, and specifically people focused on
documentation, would, I think, be a a step forward.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Peter Eisentraut
Date:
On ons, 2012-04-11 at 06:04 -0400, Greg Smith wrote:
> Compare with:
> 
> -Submitter suggests doc change
> -No one has a strong opinion on it, may not be picked up at all
> -Submitter adds to the next CF
> -Wait for review
> -[Possible repost update with reviewer changes]
> -Ready for committer
> -Committer takes time away from code review to look at it
> -Possibly another feedback/review resubmission
> -Commit final versions

I totally get that.

Just as a personal view, if people were to send me doc or "trivial"
patches in git-am format, with proper commit message, and Acked or
Signed-off etc. lines from recognized contributors, and proper
References: mail header linked to the discussion or "suggestion"
message, I could probably commit 20 of those in an hour.

Instead, I have to review the entire email thread for discussion, any
possible reviews or test runs, extract the patch from the email, mangle
it into proper form, apply it, think of a commit message, make sure I
register all the right people in the message, re-review the commit,
push, reply to email, optionally, log into commit fest, find the patch,
click a bunch of times, close it, done -- I think.  That takes 15
minutes per patch, and after two patches like that I'm tired.




Re: Last gasp

From
Joshua Berkus
Date:
> Ultimately, we're herding cats here.  I don't think you're going to
> get
> the community to suddenly be willing to march in lockstep instead.

If you, Peter, Simon, Robert, Heikki, Magnus, Peter G., Greg, Bruce and Andrew agreed on a calendar-driven, mostly
unambiguousprocess and adhered to that process, then the one or two people who didn't follow along wouldn't matter.
Everyoneelse would follow you.  The reason things are chaotic now is that our lead committers do not have consensus and
areeven inconsistent from CF to CF individually.
 

In other words: the problem is only unsolvable because *you* think it's unsolvable.   If you decide the problem is
solvable,you already have the means to solve it.
 

--Josh Berkus


Re: Last gasp

From
Peter Eisentraut
Date:
On ons, 2012-04-11 at 12:48 -0400, Tom Lane wrote:
> > However, the real criteria don't matter as much as coming up with a
> set of criteria we're all willing to obey, whatever they are.
> 
> Ultimately, we're herding cats here.  I don't think you're going to
> get the community to suddenly be willing to march in lockstep
> instead. 

Yeah, I think what's forgotten in this discussion is that we're all
volunteers.  (Even those who have jobs related to this are still
volunteers with respect to the project.)  So people will do whatever
they want.  If you don't let them do what they want, they will do it
elsewhere.  Now it's fine to encourage a little bit of team spirit and
community values here and there, but you can't build your process on
making people do what they don't want to do.




Re: Last gasp

From
Robert Haas
Date:
On Wed, Apr 11, 2012 at 1:39 PM, Joshua Berkus <josh@agliodbs.com> wrote:
>> Ultimately, we're herding cats here.  I don't think you're going to
>> get
>> the community to suddenly be willing to march in lockstep instead.
>
> If you, Peter, Simon, Robert, Heikki, Magnus, Peter G., Greg, Bruce and Andrew agreed on a calendar-driven, mostly
unambiguousprocess and adhered to that process, then the one or two people who didn't follow along wouldn't matter.
 Everyoneelse would follow you.  The reason things are chaotic now is that our lead committers do not have consensus
andare even inconsistent from CF to CF individually. 
>
> In other words: the problem is only unsolvable because *you* think it's unsolvable.   If you decide the problem is
solvable,you already have the means to solve it. 

That's a somewhat bizarre list of people.  It both includes people who
haven't expressed many concerns about our process one way or the other
and excludes some who have.  At any rate, clearly the problem is
exactly that there isn't consensus on this.  I would generally say
that Tom, Greg Smith, and I are pretty close together on this issue,
and Peter G., Simon, and Dimitri are pretty close together on this
issue, but with a big gap in between those two groups.  I am less
clear on how everyone else feels, but I think that saying that "all we
need" is to get consensus among those people is to define the problem,
not the solution.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> Just as a personal view, if people were to send me doc or "trivial"
> patches in git-am format, with proper commit message, and Acked or
> Signed-off etc. lines from recognized contributors, and proper
> References: mail header linked to the discussion or "suggestion"
> message, I could probably commit 20 of those in an hour.

> Instead, I have to review the entire email thread for discussion, any
> possible reviews or test runs, extract the patch from the email, mangle
> it into proper form, apply it, think of a commit message, make sure I
> register all the right people in the message, re-review the commit,
> push, reply to email, optionally, log into commit fest, find the patch,
> click a bunch of times, close it, done -- I think.  That takes 15
> minutes per patch, and after two patches like that I'm tired.

I hear you ... but, given that the source material is a mailing-list
thread, *somebody* has to do all that work to produce an acceptable
commit.  And if you're just going to commit what that somebody sends you
without further review, then you might as well give that person a commit
bit, because you're trusting them to get all this right.  So I'm not
sure how this moves us forward, other than to the obvious observation
that it'd be great if we had more qualified committers.
        regards, tom lane


Re: Last gasp

From
Peter Eisentraut
Date:
On ons, 2012-04-11 at 14:29 -0400, Tom Lane wrote:
> I hear you ... but, given that the source material is a mailing-list
> thread, *somebody* has to do all that work to produce an acceptable
> commit.  And if you're just going to commit what that somebody sends
> you without further review, then you might as well give that person a
> commit bit, because you're trusting them to get all this right.

I'd still review it, but I'd be able to spend say 3 minutes on review
and 30 seconds on committing it, versus 3 minutes on review, 3 minutes
on research, and 8 minutes on bookkeeping.




Re: Last gasp

From
Robert Haas
Date:
On Wed, Apr 11, 2012 at 5:36 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
> On ons, 2012-04-11 at 14:29 -0400, Tom Lane wrote:
>> I hear you ... but, given that the source material is a mailing-list
>> thread, *somebody* has to do all that work to produce an acceptable
>> commit.  And if you're just going to commit what that somebody sends
>> you without further review, then you might as well give that person a
>> commit bit, because you're trusting them to get all this right.
>
> I'd still review it, but I'd be able to spend say 3 minutes on review
> and 30 seconds on committing it, versus 3 minutes on review, 3 minutes
> on research, and 8 minutes on bookkeeping.

Well, I am not averse to figuring out a better workflow, or some
better tools.   In practice, I think it's going to be hard to reduce
the time to review a trivial patch much below 5-10 minutes, which is
what it takes me now, because you've got to read the email, download
the patch, check that it doesn't break the build, review, commit, and
push, and I can't really see any of those steps going away.  But that
doesn't mean we shouldn't make the attempt, because I've got to admit
that the current workflow seems a little cumbersome to me, too.  I'm
not sure I have a better idea, though.  git remotes seem useful for
collaborating on topic branches, but I don't think they can really be
expected to save much of anything during the final commit process -
which is basically all the process there is, when the patch is
trivial.

Now what would be sort of neat is if we had a way to keep all the
versions of patch X plus author and reviewer information, links to
reviews and discussion, etc. in some sort of centralized place.  The
CommitFest app was actually designed to track a lot of this
information, but it's obviously not completely succeeding in tracking
everything that people care about - it only contains links to patches
and not patches themselves; it doesn't have any place to store
proposed commit messages; etc.  There might be room for improvement
there, although getting consensus on what improvement looks like may
not be totally straightforward, since I think Tom's ideal process for
submitting a patch starts with attaching a file to an email and many
other people I think would like to see it start with a pull request.
This is not entirely a tools issue, of course, but it's in there
somewhere.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Tom Lane
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> On Wed, Apr 11, 2012 at 5:36 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
>> I'd still review it, but I'd be able to spend say 3 minutes on review
>> and 30 seconds on committing it, versus 3 minutes on review, 3 minutes
>> on research, and 8 minutes on bookkeeping.

> Well, I am not averse to figuring out a better workflow, or some
> better tools.   In practice, I think it's going to be hard to reduce
> the time to review a trivial patch much below 5-10 minutes, which is
> what it takes me now, because you've got to read the email, download
> the patch, check that it doesn't break the build, review, commit, and
> push, and I can't really see any of those steps going away.  But that
> doesn't mean we shouldn't make the attempt, because I've got to admit
> that the current workflow seems a little cumbersome to me, too.  I'm
> not sure I have a better idea, though.  git remotes seem useful for
> collaborating on topic branches, but I don't think they can really be
> expected to save much of anything during the final commit process -
> which is basically all the process there is, when the patch is
> trivial.

> Now what would be sort of neat is if we had a way to keep all the
> versions of patch X plus author and reviewer information, links to
> reviews and discussion, etc. in some sort of centralized place.  The
> CommitFest app was actually designed to track a lot of this
> information, but it's obviously not completely succeeding in tracking
> everything that people care about - it only contains links to patches
> and not patches themselves; it doesn't have any place to store
> proposed commit messages; etc.  There might be room for improvement
> there, although getting consensus on what improvement looks like may
> not be totally straightforward, since I think Tom's ideal process for
> submitting a patch starts with attaching a file to an email and many
> other people I think would like to see it start with a pull request.
> This is not entirely a tools issue, of course, but it's in there
> somewhere.

It strikes me that there are two different scenarios being discussed
here, and we'd better be sure we keep them straight: small-to-trivial
patches, and complex patches.

I think that for the trivial case, what we need is less tooling not more.
Entering a patch in the CF app, updating and closing it will add a
not-small percentage to the total effort required to deal with a small
patch (as Peter already noted, and he wasn't even counting the time to
put the patch into CF initially).  The only reason to even consider
doing that is to make sure the patch doesn't get forgotten.  Perhaps
we could have some lighter-weight method of tracking such things?

At the other end of the scale, I think it's true that the CF app could
be more helpful than it is for tracking the state of complex patches.
I don't really have any concrete suggestions, other than that I've
seen far too many cases where the latest version of a patch was not
linked into the CF entry.  Somehow we've got to make that more robust.
Maybe the answer is to tie things more directly into git workflows,
though I'm not sure about details.  I am concerned about losing
traceability of submissions if all that ever shows up in the list
archives is a URL.
        regards, tom lane


Re: Last gasp

From
Magnus Hagander
Date:
On Thu, Apr 12, 2012 at 05:49, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Wed, Apr 11, 2012 at 5:36 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
>>> I'd still review it, but I'd be able to spend say 3 minutes on review
>>> and 30 seconds on committing it, versus 3 minutes on review, 3 minutes
>>> on research, and 8 minutes on bookkeeping.
>
>> Well, I am not averse to figuring out a better workflow, or some
>> better tools.   In practice, I think it's going to be hard to reduce
>> the time to review a trivial patch much below 5-10 minutes, which is
>> what it takes me now, because you've got to read the email, download
>> the patch, check that it doesn't break the build, review, commit, and
>> push, and I can't really see any of those steps going away.  But that
>> doesn't mean we shouldn't make the attempt, because I've got to admit
>> that the current workflow seems a little cumbersome to me, too.  I'm
>> not sure I have a better idea, though.  git remotes seem useful for
>> collaborating on topic branches, but I don't think they can really be
>> expected to save much of anything during the final commit process -
>> which is basically all the process there is, when the patch is
>> trivial.
>
>> Now what would be sort of neat is if we had a way to keep all the
>> versions of patch X plus author and reviewer information, links to
>> reviews and discussion, etc. in some sort of centralized place.  The
>> CommitFest app was actually designed to track a lot of this
>> information, but it's obviously not completely succeeding in tracking
>> everything that people care about - it only contains links to patches
>> and not patches themselves; it doesn't have any place to store
>> proposed commit messages; etc.  There might be room for improvement
>> there, although getting consensus on what improvement looks like may
>> not be totally straightforward, since I think Tom's ideal process for
>> submitting a patch starts with attaching a file to an email and many
>> other people I think would like to see it start with a pull request.
>> This is not entirely a tools issue, of course, but it's in there
>> somewhere.
>
> It strikes me that there are two different scenarios being discussed
> here, and we'd better be sure we keep them straight: small-to-trivial
> patches, and complex patches.
>
> I think that for the trivial case, what we need is less tooling not more.
> Entering a patch in the CF app, updating and closing it will add a
> not-small percentage to the total effort required to deal with a small
> patch (as Peter already noted, and he wasn't even counting the time to
> put the patch into CF initially).  The only reason to even consider
> doing that is to make sure the patch doesn't get forgotten.  Perhaps
> we could have some lighter-weight method of tracking such things?

If we were actually using git branches for it, the CF app could
automatically close entries when they were committed. But that
requires them to be committed *unmodified*, and I'm not sure that's
reasonable. I also think requiring a git branch for the *simple*
changes is adding more tooling and not less, and thus fails on that
suggestion.

It might be helpful (if the CF app had a trivial API) with a small
tool that could run from a git hook (or manual script or alias) that
would prompt for "which cf entry, if any, did this commit close"?


> At the other end of the scale, I think it's true that the CF app could
> be more helpful than it is for tracking the state of complex patches.
> I don't really have any concrete suggestions, other than that I've
> seen far too many cases where the latest version of a patch was not
> linked into the CF entry.  Somehow we've got to make that more robust.
> Maybe the answer is to tie things more directly into git workflows,
> though I'm not sure about details.  I am concerned about losing
> traceability of submissions if all that ever shows up in the list
> archives is a URL.

I've suggested before that it would be a good idea to be able to
register a git repo + branch name in the commitfest app, and be able
to track that. If it was smart enough to figure out that for something
like github or bitbucket it could also add a web link (but keep the
git link for whoever wants to pull it remotely) with the full
differences to master, that would make *some* of those issues go away.
(Certainly not all, it's not a magic solution, but I believe it would
be a tool that could help). I've pretty much given up on that
happening though...

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Last gasp

From
Bruce Momjian
Date:
On Tue, Apr 10, 2012 at 08:43:12PM -0400, Greg Smith wrote:
> The main reason I worry about this is because of a very real
> chicken/egg problem here that I keep banging into.  Since the commit
> standards for so many other open-source projects are low, there are
> a non trivial number of business people who assume "!committer ==
> ![trusted|competent]".  That makes having such a limited number of
> people who can commit both a PR issue ("this project must not be
> very important if there are only 19 committers") and one limiting
> sponsorship ("I'm not going to pay someone to work on this feature
> who's been working on it for years but isn't even a committer").
> 
> There are a significant number of companies who are willing to
> sponsor committers to open-source projects; there are almost none
> who will sponsor reviewers or "contributors" of any stature unless
> they're already deep into the PostgreSQL community.  That's one of
> the many reasons it's easier for a committer to attract funding for
> core PostgreSQL work, be it in the form of a full-time job or
> project-oriented funding.  The corresponding flip side to that is
> that the small number of committers is limiting the scope of funding
> the project can accumulate.

I want to caution against adjusting things to improve funding
possibilities.  There is nothing wrong with increasing funding
possibilities, per say, but such changes often distort behavior in
unforeseen ways that adversely affect our community process.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


Re: Last gasp

From
Alvaro Herrera
Date:
Excerpts from Tom Lane's message of jue abr 12 00:49:38 -0300 2012:

> At the other end of the scale, I think it's true that the CF app could
> be more helpful than it is for tracking the state of complex patches.
> I don't really have any concrete suggestions, other than that I've
> seen far too many cases where the latest version of a patch was not
> linked into the CF entry.  Somehow we've got to make that more robust.
> Maybe the answer is to tie things more directly into git workflows,
> though I'm not sure about details.  I am concerned about losing
> traceability of submissions if all that ever shows up in the list
> archives is a URL.

Two suggestions:

1. it might be convenient to have the patch author attach a suggested
commit message to the patch entry in the commifest site.  Would save
some jiffies for the trivial patch case, I hope.

2. instead of just sending a URL to the list, maybe it'd be better if
the patch is uploaded to the CF site, and the CF site sends it to
pgsql-hackers for archival and reference, with appropriate In-Reply-To
headers so that it is appropriately linked to the thread.  But since
the patch has been registered into the CF, the site can additionally
present a link to download the patch directly instead of sending you to
the archives.  So redundant storage, for convenience.

(Alternatively, the CF app could reach into archives to grab the patch
file.  With some appropriate ajaxy stuff this shouldn't be particularly
hard.)

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


Re: Last gasp

From
Peter Geoghegan
Date:
On 12 April 2012 13:45, Bruce Momjian <bruce@momjian.us> wrote:
> I want to caution against adjusting things to improve funding
> possibilities.  There is nothing wrong with increasing funding
> possibilities, per say, but such changes often distort behavior in
> unforeseen ways that adversely affect our community process.

Funding is a necessary component of what we do. So, for example, while
I'm very glad that EnterpriseDB afford various people the opportunity
to work on community stuff for a significant proportion of their time
- I do, after all, indirectly benefit from it - it is rather obviously
the case that the particular things that those people work on is
influenced to some degree by management. That is an assessment that
isn't based on any particular observation about the things that EDB
people work on. It's just common sense. This generally isn't a bad
thing, since I think that the goals of the Postgres companies are
broadly aligned with those of the community. When you get right down
to it though, as Tom said, we are a herd of cats, and it isn't
particularly obvious that we've zeroed in on some specific vision that
we all agree on that must be pursued without diversion. Given the
extensibility of Postgres, it isn't usually necessary for anyone to
pursue development of a feature that is clearly of niche interest,
that we don't really want to have to support. I cannot think of any
example of a proposed patch that mostly just scratched some particular
organisation's itch. No one is able to hoodwink the community like
that.

People have always wanted to get their patches accepted, and we've
always had high standards. The fact that there might be an additional
financial incentive to do so doesn't seem to fundamentally alter that
dynamic.

It is not a coincidence that I did not send any code to -hackers prior
to joining 2ndQuadrant. I certainly had the enthusiasm for it, but I
could not afford to dedicate sufficient time. With the kind of
dedication required to make a noticeable contribution, this is hardly
surprising. There are some good counter-examples of this of course -
one in particular that comes to mind is Greg Smith's work on the
background writer that made it into 8.3 . However, the general trend
is that somebody has to pay for this work for it to be maintainable
over months and years, even with the level of dedication that we all
have.

Something that I would suggest is that those that are receiving
funding be transparent about it. It isn't essential of course, but to
do any less might lead to the perception of there being a conflict of
interests in some people's minds, which is best avoided.

I am conscious of the fact that I've expressed lots of opinions on
this thread on our processes and so on, some of which, if followed
through on, would be quite large departures. I hope that they were
received as modest suggestions.

--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services


Re: Last gasp

From
Greg Smith
Date:
On 04/11/2012 10:24 AM, Tom Lane wrote:
> Greg Smith<greg@2ndQuadrant.com>  writes:
>> I'd like to dump around 50 pages of new material into the docs as a
>> start, but I don't want to take so much time away from the code oriented
>> committers to chew on that much.
>
> Well, with all due respect, that does not sound like a change that
> doesn't need review.

I wasn't trying to suggest large changes should be made without review.  I'd just like some new paths for work to
progresswithout one of the 
 
more coding oriented committers being compelled to join and keep up with 
everything.  The quality level I aimed for in my book wouldn't have been 
possible without Kevin Grittner, Scott Marlowe, and Jim Mlodgenski as 
reviewers; it didn't require anyone with commit bits though.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Joshua Berkus
Date:

> If we were actually using git branches for it, the CF app could
> automatically close entries when they were committed. But that
> requires them to be committed *unmodified*, and I'm not sure that's
> reasonable. I also think requiring a git branch for the *simple*
> changes is adding more tooling and not less, and thus fails on that
> suggestion.

Well actually, the other advantage of using branches is that it would encourage committers to bounce a patch back to
thesubmitter for modification *instead of* doing it themselves.  This would both have the advantage of saving time for
thecommitter, and doing a better job of teaching submitters how to craft patches which don't need to be modified.
Ultimately,we need to train new major contributors in order to get past the current bottleneck.
 

Of course, this doesn't work as well for contributors who *can't* improve their patches, such as folks who have a
languagebarrier with the comments.  But it's something to think about.
 

--Josh 


Re: Last gasp

From
"Greg Sabino Mullane"
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160


> I want to caution against adjusting things to improve funding
> possibilities.  There is nothing wrong with increasing funding
> possibilities, per say, but such changes often distort behavior in
> unforeseen ways that adversely affect our community process.

I don't see this as much of a problem. If somewhat arbitrary labels 
and powers allow the project to succeed, we should think long and 
hard before rejecting the idea. It's not like we are going to make 
anyone who asks a committer, like MediaWiki does. Indeed, we have 
been super cautious about handing out both commit bits, and labels 
(e.g. "Major Developer").

One wrinkle is the subsystems: there are some people who only work on 
certain parts, yet have a commit bit (with the understanding that 
they won't start editing core or other parts). From an outside 
perspective however, a "Postgres committer [of certain subsystems]" 
is a "Postgres committer".

One thing I think would help potential and current developers, and 
act as a further code review and safety valve, is to have a mailing 
list that actually shows the committed diffs. Links to a webpage 
showing the diff is just not the same.

pgsql-commit-diffs@postgresql.org, anyone?

- -- 
Greg Sabino Mullane greg@turnstep.com
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201204121121
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8

-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAk+G8/sACgkQvJuQZxSWSsh7HACgn7Wf/AQyUJwtvxgjYSHSIHkJ
hq4AnjMgPlDakupg4mo204+N1p4C0mMZ
=z+cR
-----END PGP SIGNATURE-----




Re: Last gasp

From
Bruce Momjian
Date:
On Thu, Apr 12, 2012 at 03:34:31PM +0100, Peter Geoghegan wrote:
> Something that I would suggest is that those that are receiving
> funding be transparent about it. It isn't essential of course, but to
> do any less might lead to the perception of there being a conflict of
> interests in some people's minds, which is best avoided.
> 
> I am conscious of the fact that I've expressed lots of opinions on
> this thread on our processes and so on, some of which, if followed
> through on, would be quite large departures. I hope that they were
> received as modest suggestions.

I appreciate everything everyone said in this thread, and I can't think
of an example off the top of my head where vendors adversely affected
our process.  I think the _big_ reason for that is that our community
members have always acted with a "community first" attitude that has
insulated us from many of the pressures vendors can place on the
development process.  I am sure that protection will continue --- I just
wanted to point out that it is a necessary protection so we can all be
proud of our released code and feature set, and continue working as a
well-coordinated team.

The specific suggestion that vendors are not taking contributors
seriously unless they have commit-bits is perhaps something that
requires education of vendors, or perhaps my blogging about this will
help.  Greg Smith's analysis really hit home with me:

> a non trivial number of business people who assume "!committer ==
> ![trusted|competent]".  That makes having such a limited number of
> people who can commit both a PR issue ("this project must not be
> very important if there are only 19 committers") and one limiting
> sponsorship ("I'm not going to pay someone to work on this feature
> who's been working on it for years but isn't even a committer").

I think the big take-away, education-wise, is that for our project,
committer == grunt work.  Remember, I used to be the big committer of
non-committer patches --- need I say more.  ;-)  LOL

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


Re: Last gasp

From
Joshua Berkus
Date:
> I think the big take-away, education-wise, is that for our project,
> committer == grunt work.  Remember, I used to be the big committer of
> non-committer patches --- need I say more.  ;-)  LOL

Well, promoting several people to committer specifically and publically because of their review work would send that
messagea lot more strongly than your blog would.   It would also provide an incentive for a few of our major
contributorsto do more review work, if it got them to committer.
 

--Josh Berkus


Re: Last gasp

From
Bruce Momjian
Date:
On Thu, Apr 12, 2012 at 11:34:48AM -0400, Bruce Momjian wrote:
> On Thu, Apr 12, 2012 at 03:34:31PM +0100, Peter Geoghegan wrote:
> > Something that I would suggest is that those that are receiving
> > funding be transparent about it. It isn't essential of course, but to
> > do any less might lead to the perception of there being a conflict of
> > interests in some people's minds, which is best avoided.
> > 
> > I am conscious of the fact that I've expressed lots of opinions on
> > this thread on our processes and so on, some of which, if followed
> > through on, would be quite large departures. I hope that they were
> > received as modest suggestions.
> 
> I appreciate everything everyone said in this thread, and I can't think
> of an example off the top of my head where vendors adversely affected
> our process.  I think the _big_ reason for that is that our community
> members have always acted with a "community first" attitude that has
> insulated us from many of the pressures vendors can place on the
> development process.  I am sure that protection will continue --- I just
> wanted to point out that it is a necessary protection so we can all be
> proud of our released code and feature set, and continue working as a
> well-coordinated team.

Let me add one more thing.  As someone who has been funded for Postgres
work since 2000, I am certainly "pro-funding"!

Since our community members have a "community first" attitude, it is the
community's responsibility to help them get funding.  We have thrown
around a few ideas in this thread, but perhaps someone should start a
new email thread with first-hand suggestions of how we can help people
get funding.  I am certainly ready to help however I can.

My reason for replying to this thread was to highlight our valuable
"community first" attitude.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


Re: Last gasp

From
Greg Smith
Date:
On 04/12/2012 11:34 AM, Bruce Momjian wrote:
> The specific suggestion that vendors are not taking contributors
> seriously unless they have commit-bits is perhaps something that
> requires education of vendors, or perhaps my blogging about this will
> help.

I'm glad I managed to vent my frustration in this area in a way that was 
helpful.  Just recognize that any experienced person at pitching 
software solutions will tell you to never wander down this path at all.  If you have to tell someone a story and make
themadmit they're wrong 
 
about something as an early step toward adoption, you've just dumped a 
home-made FUD bomb on them.  It's not a high percentage path toward 
credibility.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Martijn van Oosterhout
Date:
On Wed, Apr 11, 2012 at 12:00:39PM -0300, Alvaro Herrera wrote:
> remote in their main PG tree, and so changesets could be pulled into the
> same clone and cherry-picked into the master branch.

If you're talking about a way of using git to support reviewing, the
Gerrit tool has an interesting workflow.  Essentially anything you want
reviewed you push to a fake tag refs/for/master which always creates a
new branch.  As such you have a repository which contains every patch
ever submitted, but it simultaneously tracks the parents so you know
which version of the tree a patch was against.

In the case of Postgres each entry in the CF app would have its own tag
(say refs/cf/234) which would create a new patch for that entry.  In
the end accepted patches are cherry-picked onto the real tree.  But
because all patches are now in the same place you can build tooling
around it easier, like testing: does this patch cherry-pick cleanly or
is there a conflict.

No merge commits, just using git purely as patch storage.

(Note to make this work it has a git server emulation which may or may
not be easy to do, but it's just a thought about workflow.)

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> He who writes carelessly confesses thereby at the very outset that he does
> not attach much importance to his own thoughts.  -- Arthur Schopenhauer

Re: Last gasp

From
Jay Levitt
Date:
Alvaro Herrera wrote:
> Now what would be sort of neat is if we had a way to keep all the
> versions of patch X plus author and reviewer information, links to
> reviews and discussion, etc. in some sort of centralized place.

FWIW: y'all might have discussed to death during the git migration, so 
*please* do not let me derail you if so...

github does a great job of exactly this.  You open an issue, you reference 
it from commits, all the related commits are listed in (and browseable from) 
the issue, you can comment on specific lines of the commit, it integrates 
w/email, it has an API to write tools (both workflow and archival) against, 
etc.

Rather than extend the CF app into a trivial-patch workflow app, it might be 
worth looking at integrating it with github.

Jay Levitt


Re: Last gasp

From
Christopher Browne
Date:
On Thu, Apr 12, 2012 at 6:11 PM, Jay Levitt <jay.levitt@gmail.com> wrote:
> Rather than extend the CF app into a trivial-patch workflow app, it might be
> worth looking at integrating it with github.

There's a reluctance to require a proprietary component that could
disappear on us without notice.

The existence of git itself is a result of *exactly* that
circumstance, as Linux kernel developers had gotten dependent on
BitKeeper, whereupon the owner decided to take his toys home, at which
point they were left bereft of "their" SCM tool.
<http://kerneltrap.org/node/4966>

I expect that it would be more worthwhile to look into enhancements to
git workflow such as <http://code.google.com/p/gerrit/> Gerrit.  I
don't know that Gerrit is THE answer, but there are certainly projects
that have found it of value, and it doesn't have the "oops, it's
proprietary" problem.
-- 
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"


Re: Last gasp

From
Dimitri Fontaine
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> Even before this CommitFest, it's felt to me like this hasn't been a
> great cycle for reviewing.  I think we have generally had fewer people
> doing reviews than we did during the 9.0 and 9.1 cycles.  I think we
> had a lot of momentum with the CommitFest process when it was new, but
> three years on I think there's been some ebbing of the relative
> enthusiastic volunteerism that got off the ground.  I don't have a

I have another analysis here. Tom once said that commiters won't grow on
tree, and that is true for submitters too, obviously. I think the CF
process has been good into growing more submitters and growing existing
ones abilities too.

So you don't have that fewer reviewers available, it may be that they're
just heavily involved into being submitters too.

Tom Lane <tgl@sss.pgh.pa.us> writes:
> Yeah, this is something I was thinking about yesterday.  In the first
> couple of release cycles with the CommitFest process, we were willing to
> let the last fest of a release cycle go on for "as long as it takes",
> or at least that was what I felt the policy to be.  This time we
> eventually gave up and declared closure, but in hindsight we should
> likely have done that a month earlier.  The fact of the matter is that
> quite a few of the patches we were dealing with were *not* ready to
> commit, or even close to that, at the start of the fest.  If it weren't
> the last fest they would have gotten marked Returned With Feedback a
> lot sooner.

This and other posts in this threads are all hinting the same thing to
me: the last commit fest is *not* about feedback at all. If you still
need reviewers rather than commiters, you're out of luck for this
release, see you next time.

Regards,
-- 
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support


Re: Last gasp

From
Dimitri Fontaine
Date:
Tom Lane <tgl@sss.pgh.pa.us> writes:
> Andres Freund <andres@anarazel.de> writes:
>> They might have been half-baked. But several of those didn't get design-level
>> review for several weeks which makes it rather hard to fully bake them in 
>> time...
>
> But if they didn't already have design-level review, that means they
> were not seen in any previous CF, which means they were not following
> the expectation that nontrivial patches should be submitted earlier than
> the last CF.

That's not true, unfortunately.

I had several rounds of design review in the previous CF, then some more
in the last CF, then another one that basically meant baking another
patch: same feature but spelled out differently (renaming catalog, files
and APIs is no fun in a big patch) to be able to have a new way to
organize the code and docs. It's for the best, and it's better to do
that before commit, no question. I appreciate having had that review,
really.

The problem with the command trigger has been another one. First, if we
want the last CF to be only about commits and not about feedback, we
should simply bite the bullet and spell it out loud. Second, we should
have been talking about the hard decision rather than pretending we
could still do something in this release. That's mainly on me and I know
it, but not being a commiter I have no other power than influence, and
I've been optimistic (and playing by the rules).

> I think the key point here is that people have to expect that it's going
> to take more than one round of review to land most nontrivial patches.
> And we have to discourage the expectation that that can happen within
> the last CF of a release cycle.  If anything, the last CF has to be
> tighter not looser than others on what we will accept, because there is
> no time to recover if something proves wrong with a patch after a
> month or three.

The more I think about that, the more I think we should declare the last
CF to be about preparing a release, not providing another round of
feedback. That could well be all we need here.

> I keep coming back to the thought that we need more and shorter CFs,
> and/or ReviewFests that are meant to help push WIP patches further
> down the track.  We need to make it easier to get those early reviews
> done while there's still development time left.

Separating away commit fest made for commits and those meant for
feedback is a good idea too. I'm not sure how much benefit we would get
there for non-last CFs, though.

Regards,
-- 
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support


Re: Last gasp

From
Dimitri Fontaine
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> The real problem with the command triggers patch is that we got a
> blizzard of code.  It's unrealistic to expect anyone to devote serious
> review time to a patch that's under constant development.  It also
> strikes me that a tremendous amount of pain could have been avoided by
> posting a clear and detailed design sketch for that patch before
> beginning to code.  Dimitri contended that without code, no one will
> read design sketches, but that doesn't for the most part jive with my
> experience, and I think that the strategy he actually chose backfired,
> because it was clear that any review would be hitting a moving target.

In my mind at least it's been more subtle. I had an agreed-on design
months before I started to code anything, at the Cluster Hackers Meeting
in Ottawa, where several commiters and long term contributors have been
participating in the discussion.

The big mistake seems to be starting to code with that rather than
spending another couple of months (or easily way more than that) of
rehashing it on-list.

About the design sketches, IME, what you can agree on on-list is a very
high level view about how to implement a feature, anything detailed
enough to have practical impact on the code you're writing happens while
reviewing code. Again, as I though the high level view was ok as of the
Cluster Hackers Meeting, I skipped that part and went directly to the
code level review.

Greg Smith will certainly stamp that email with a big red “Lesson
Learned” stamp here: nothing happened if you don't have a link to a
pgsql-hackers thread on the archives.

Regards,
--
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support


Re: Last gasp

From
Peter Eisentraut
Date:
On tor, 2012-04-12 at 10:12 -0500, Joshua Berkus wrote:
> Well actually, the other advantage of using branches is that it would
> encourage committers to bounce a patch back to the submitter for
> modification *instead of* doing it themselves.  This would both have
> the advantage of saving time for the committer, and doing a better job
> of teaching submitters how to craft patches which don't need to be
> modified.

I don't see how using branches changes that.  You could (or should) be
doing that already anyway.



Re: Last gasp

From
Peter Eisentraut
Date:
On ons, 2012-04-11 at 23:30 -0400, Robert Haas wrote:
> Now what would be sort of neat is if we had a way to keep all the
> versions of patch X plus author and reviewer information, links to
> reviews and discussion, etc. in some sort of centralized place.

Well, a properly linked email thread contains all this.  I have seen a
couple of anti-patterns evolving, though, including patch authors
starting a new email thread for each patch version, and reviewers
starting a new email thread for each review.  When that happens, the
existence of the commitfest app makes things worse, in a way.  (Of
course, any discussion here about bug trackers emphasizes the need for
email to be the primary communications method for this very reason.)



Re: Last gasp

From
Peter Eisentraut
Date:
On tor, 2012-04-12 at 07:59 +0200, Magnus Hagander wrote:
> It might be helpful (if the CF app had a trivial API) with a small
> tool that could run from a git hook (or manual script or alias) that
> would prompt for "which cf entry, if any, did this commit close"?

An API for the CF app would actually be nice in general, because then I
could write an small command-line tool and just type 'cf close 123' or
something instead of having to click around a bunch of times.



Re: Last gasp

From
Peter Eisentraut
Date:
On tor, 2012-04-12 at 18:19 -0400, Christopher Browne wrote:
> On Thu, Apr 12, 2012 at 6:11 PM, Jay Levitt <jay.levitt@gmail.com> wrote:
> > Rather than extend the CF app into a trivial-patch workflow app, it might be
> > worth looking at integrating it with github.
> 
> There's a reluctance to require a proprietary component that could
> disappear on us without notice.

Yeah, I think initially this was more of a matter-of-principle decision,
but seeing the current spam problem on github.com, I'm glad we didn't do
it.  For me it has disqualified itself as a platform for intense
collaborative development.




Re: Last gasp

From
Alex
Date:
Peter Eisentraut <peter_e@gmx.net> writes:

> On ons, 2012-04-11 at 23:30 -0400, Robert Haas wrote:
>> Now what would be sort of neat is if we had a way to keep all the
>> versions of patch X plus author and reviewer information, links to
>> reviews and discussion, etc. in some sort of centralized place.
>
> Well, a properly linked email thread contains all this.  I have seen a
> couple of anti-patterns evolving, though, including patch authors
> starting a new email thread for each patch version, and reviewers
> starting a new email thread for each review.  When that happens, the
> existence of the commitfest app makes things worse, in a way.  (Of
> course, any discussion here about bug trackers emphasizes the need for
> email to be the primary communications method for this very reason.)

I didn't follow this whole thread, but have we considered Redmine[1]?

We at CMD rely on it as the primary means of customer communication, via
email.  New email to a mailing list backed by Redmine triggers new
ticket creation and any followups result into an update to the ticket.
The ticket history is searchable, browsable (and updateable) on the web.

It's GPL-ed, uses Ruby on Rails, and comes with a broad range of
plugins[2].  Also it is quite hackable (for a RoR guy, of course.)

We could integrate Redmine with the CommitFest or even replace it
completely with a custom-written plugin.  A command line interface[3]
exists, so 'cf close ###' suggested further in this thread should be
also possible.

--
Regards,
Alex

[1] http://www.redmine.org/
[2] http://www.redmine.org/plugins
[3] https://github.com/diasjorge/redmine-cli


Re: Last gasp

From
Greg Smith
Date:
On 04/14/2012 03:02 AM, Alex wrote:
> I didn't follow this whole thread, but have we considered Redmine[1]?

It comes up every couple of years in contexts near this one, such as 
http://wiki.postgresql.org/wiki/TrackerDiscussion

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Alex
Date:
Greg Smith <greg@2ndQuadrant.com> writes:

> On 04/14/2012 03:02 AM, Alex wrote:
>> I didn't follow this whole thread, but have we considered Redmine[1]?
>
> It comes up every couple of years in contexts near this one, such as
> http://wiki.postgresql.org/wiki/TrackerDiscussion

Oh, I see.  I wonder maybe it is time to actually take some action?
Given that the list of disadvantages on that wiki page looks really bad
(to me.)

--
Alex


Re: Last gasp

From
Alex
Date:
Alex <ash@commandprompt.com> writes:

> Greg Smith <greg@2ndQuadrant.com> writes:
>
>> On 04/14/2012 03:02 AM, Alex wrote:
>>> I didn't follow this whole thread, but have we considered Redmine[1]?
>>
>> It comes up every couple of years in contexts near this one, such as
>> http://wiki.postgresql.org/wiki/TrackerDiscussion
>
> Oh, I see.  I wonder maybe it is time to actually take some action?
> Given that the list of disadvantages on that wiki page looks really bad
> (to me.)

Err, the list of Disadvantages of Current Situation I mean.


Re: Last gasp

From
Jay Levitt
Date:
Christopher Browne wrote:
> On Thu, Apr 12, 2012 at 6:11 PM, Jay Levitt<jay.levitt@gmail.com>  wrote:
>> Rather than extend the CF app into a trivial-patch workflow app, it might be
>> worth looking at integrating it with github.
>
> There's a reluctance to require a proprietary component that could
> disappear on us without notice.

Excellent point. I was thinking that GitHub's API would allow archival 
exporting to counter that, along the lines of "let's take advantage of it 
for the next five years until it goes south, and THEN we could write our 
own". But I can see how that might not be the best choice for a project that 
expects to preserve history for a few decades.

GitHub does offer an "enterprise version" that you can self-host, but it 
seems to be priced per-user and intended for solely intranet use.

If the feature set is desirable, though, I wonder if Postgres is big/high 
profile enough for them to figure out some sort of better arrangement. They 
*love* it when big open-source projects use GitHub as their public repo - 
they'll email and blog announcements about it - and if there's interest I'd 
be happy to open a conversation with them.

> The existence of git itself is a result of *exactly* that
> circumstance, as Linux kernel developers had gotten dependent on
> BitKeeper, whereupon the owner decided to take his toys home, at which
> point they were left bereft of "their" SCM tool.
> <http://kerneltrap.org/node/4966>

Good history lesson there, with a great outcome.

> I expect that it would be more worthwhile to look into enhancements to
> git workflow such as<http://code.google.com/p/gerrit/>  Gerrit.  I
> don't know that Gerrit is THE answer, but there are certainly projects
> that have found it of value, and it doesn't have the "oops, it's
> proprietary" problem.

I've looked at it in conjunction with Jenkins CI; it looked nice but was way 
too heavy-weight for a four-person startup (what's code review?). It's 
probably much more suitable for this sized project.

Gerrit's a full-featured code review app with a tolerable UI; I was thinking 
of GitHub more as a great lightweight UI for doc patches and other trivial 
patches where you might have lots of casual review and comments but no need 
for, say, recording regression tests against each patch version.  e.g.:

https://github.com/rails/rails/pull/5730

Also, for doc patches, GitHub has the great advantage of in-place editing 
right from the web UI.

Peter mentioned the desire to bring more eyes and hands onto these type of 
patches - I think the phrase was "enthusiast power users who wouldn't really 
consider themselves hackers." The advantage of GitHub here would be its 
(current) widespread adoption; the perceived barrier to entry is far lower 
and the workflow is far more obvious than a mailing list, formatting patches 
by email, not quite knowing what the process is.

I mention all this not to try to push GitHub specifically, but to say "these 
are the types of features that modern, open-source collaborative systems 
offer, and could improve community involvement".
From a human- rather than technology-oriented perspective: I was shocked to 
find that you folks *WANT* reviews from non-contributors. It was my 
assumption as a newcomer that if I don't feel well-versed enough to submit 
patches yet, the last thing you'd want me to do was to look over someone 
else's patch and say "Yeah, that looks good", any more than I care if my mom 
thinks my latest web app is "very nice".

I see now that the "Reviewing a Patch" wiki page explains this, but maybe 
this info should be pushed higher into the docs and web site; a "How can I 
contribute" page, open calls for reviewers on the non-hackers mailing lists, 
things like that.  Or maybe just make the wiki page bright red and blink a lot.

Jay


Re: Last gasp

From
Jay Levitt
Date:
Alex wrote:
> I didn't follow this whole thread, but have we considered Redmine[1]?

As the resident "Ruby is shiny, let's do everything in Rails on my MacBook" 
guy, I'd like to make a statement against interest: I've tried Redmine a few 
times and it's been painful.  Much of the codebase is deprecated, it's slow, 
it has no meaningful search (in 2012?!), I've seen wiki edits disappear, and 
at the moment pulling up its own FAQ page at redmine.org times out.

Maybe you've had better luck with it, but whenever I've Googled for Redmine 
questions, the collective Internet has sighed and said "Yeah, it was a 
really good idea, though."

Jay Levitt


Re: Last gasp

From
Robert Haas
Date:
On Tue, Apr 10, 2012 at 8:43 PM, Greg Smith <greg@2ndquadrant.com> wrote:
> The main reason I worry about this is because of a very real chicken/egg
> problem here that I keep banging into.  Since the commit standards for so
> many other open-source projects are low, there are a non trivial number of
> business people who assume "!committer == ![trusted|competent]".  That makes
> having such a limited number of people who can commit both a PR issue ("this
> project must not be very important if there are only 19 committers") and one
> limiting sponsorship ("I'm not going to pay someone to work on this feature
> who's been working on it for years but isn't even a committer").

I'm not sure what the best way to address this problem is, but I don't
think it's to make more people committers if they aren't truly
qualified.  If someone's work is going to require substantial
revision, it is much better and much less work to do that revision
before the code goes into our repository (and particularly, before it
gets released) rather than after.  And, on a related note, I am having
a hard time imagining that it's a good idea to give very many people
commit bits primarily so that they can commit their own work.  We
could create quite a few such committers and not really solve whatever
bottleneck exists here.  What we really need are committers who are
willing and able to spend the time to do high-quality reviews of other
people's work.

I find this whole line of thinking particularly troubling in view of
Peter's comments that contributors face a prisoner's dilemma situation
and will inevitably push their own patches forward at the expense of
other people's patches.  That behavior is only a mild nuisance when
people without a commit bit do it, but it's potentially a lot more
disruptive if someone who has a commit bit does it, because the
default for whether the patch gets committed flips from no to yes.  I
think our committers need to be people we can trust enough NOT to
engage in such behavior.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Last gasp

From
Alex
Date:
Jay Levitt <jay.levitt@gmail.com> writes:

> Alex wrote:
>> I didn't follow this whole thread, but have we considered Redmine[1]?
>
> As the resident "Ruby is shiny, let's do everything in Rails on my
> MacBook" guy, I'd like to make a statement against interest: I've
> tried Redmine a few times and it's been painful.  Much of the codebase
> is deprecated, it's slow, it has no meaningful search (in 2012?!),
> I've seen wiki edits disappear, and at the moment pulling up its own
> FAQ page at redmine.org times out.

Yay, that's totally FUD to me.

Could you please elaborate a bit on your points?

Deprecated codebase?  Let me guess...

It runs on an outdated version of Rails (2.3) but only because Rails is
changing so rapidly, I believe.  There is work in progress[1] to move to
the supported branch Rails-3.x.

Slow?  Do you have any data to back this point up?

No meaningful search, eh?  Works for me.

Disappearing wiki edits?  Never seen that, but you can always file a
bug.

> Maybe you've had better luck with it, but whenever I've Googled for
> Redmine questions, the collective Internet has sighed and said "Yeah,
> it was a really good idea, though."

Certainly *you've* had some terrible luck with it. ;-)

--
Regards,
Alex

[1] http://www.redmine.org/issues/4796


Re: Last gasp

From
Hitoshi Harada
Date:
On Sat, Apr 14, 2012 at 2:28 PM, Jay Levitt <jay.levitt@gmail.com> wrote:
> Christopher Browne wrote:
>>
>> On Thu, Apr 12, 2012 at 6:11 PM, Jay Levitt<jay.levitt@gmail.com>  wrote:
>>>
>>> Rather than extend the CF app into a trivial-patch workflow app, it might
>>> be
>>> worth looking at integrating it with github.
>>
>>
>> There's a reluctance to require a proprietary component that could
>> disappear on us without notice.
>
>
> Excellent point. I was thinking that GitHub's API would allow archival
> exporting to counter that, along the lines of "let's take advantage of it
> for the next five years until it goes south, and THEN we could write our
> own". But I can see how that might not be the best choice for a project that
> expects to preserve history for a few decades.
>
> GitHub does offer an "enterprise version" that you can self-host, but it
> seems to be priced per-user and intended for solely intranet use.
>
> If the feature set is desirable, though, I wonder if Postgres is big/high
> profile enough for them to figure out some sort of better arrangement. They
> *love* it when big open-source projects use GitHub as their public repo -
> they'll email and blog announcements about it - and if there's interest I'd
> be happy to open a conversation with them.
>
>
>> The existence of git itself is a result of *exactly* that
>> circumstance, as Linux kernel developers had gotten dependent on
>> BitKeeper, whereupon the owner decided to take his toys home, at which
>> point they were left bereft of "their" SCM tool.
>> <http://kerneltrap.org/node/4966>
>
>
> Good history lesson there, with a great outcome.
>
>
>> I expect that it would be more worthwhile to look into enhancements to
>> git workflow such as<http://code.google.com/p/gerrit/>  Gerrit.  I
>> don't know that Gerrit is THE answer, but there are certainly projects
>> that have found it of value, and it doesn't have the "oops, it's
>> proprietary" problem.
>
>
> I've looked at it in conjunction with Jenkins CI; it looked nice but was way
> too heavy-weight for a four-person startup (what's code review?). It's
> probably much more suitable for this sized project.
>
> Gerrit's a full-featured code review app with a tolerable UI; I was thinking
> of GitHub more as a great lightweight UI for doc patches and other trivial
> patches where you might have lots of casual review and comments but no need
> for, say, recording regression tests against each patch version.  e.g.:
>
> https://github.com/rails/rails/pull/5730
>
> Also, for doc patches, GitHub has the great advantage of in-place editing
> right from the web UI.

I don't know if GitHub's pull request or Gerrit is a good tool (I
doubt, actually), but I've been thinking how we could improve our
review process in terms of both of human process perspective and tool
process.  As we have our simple CF app (while there are a bunch of
tools like JIRA or something), I'd think we could have our own review
UI connected to the rest of our toolset including CF app.  I know we
want the mail archive history of the whole discussion, but still
giving feedback to the submitter via email is hard-work and the
successors cannot read it entirely.

> From a human- rather than technology-oriented perspective: I was shocked to
> find that you folks *WANT* reviews from non-contributors. It was my
> assumption as a newcomer that if I don't feel well-versed enough to submit
> patches yet, the last thing you'd want me to do was to look over someone
> else's patch and say "Yeah, that looks good", any more than I care if my mom
> thinks my latest web app is "very nice".
>
> I see now that the "Reviewing a Patch" wiki page explains this, but maybe
> this info should be pushed higher into the docs and web site; a "How can I
> contribute" page, open calls for reviewers on the non-hackers mailing lists,
> things like that.  Or maybe just make the wiki page bright red and blink a
> lot.

I found myself enjoying reviewing other patches where I don't have
strong knowledge.  I strongly believe we should encourage more and
more people who haven't worked particular patches in that area, to
review patches.  The more eyeballs there are, the more quality we get.

Thanks,
--
Hitoshi Harada


Re: Last gasp

From
Simon Riggs
Date:
On Fri, Apr 6, 2012 at 8:19 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Greg Smith <greg@2ndQuadrant.com> writes:
>> On 04/05/2012 04:27 PM, Simon Riggs wrote:
>>> It's shocking since after months of work and an especially extended
>>> edition CF, we expect people to deliver something, not just shunt the
>>> whole thing off as rejected with 1 days's notice to alter that
>>> outcome.
>
>> I don't think this is being fair to Robert.
>
> If we're going to ship a release at all, somebody's got to be willing
> to say "no".  Personally, been there, done that, got the t-shirt [1].
> Robert's just pointing out what has to be pointed out.

Just returned from a week away, so I'm chipping in on key points only.
I accept the command trigger patch is gone now and I would add
comments only about our processes.

The problem remains that we have wasted many months of development and
slipped a release on what appears to be an important, universally
popular feature that had bucket loads of early planning. We shouldn't
hide from recognising that as an issue.

I completely agree that somebody has to be willing to say No, since we
all agree that the default for any patch is non-acceptance.

My first observation is that if No is received early enough for
something to be done, then the outcome could be different. It was not
clear that this important patch was going to be totally refused and
many people have expressed their surprise about that. Noah signalled
to everybody that the FK locks patch was likely to be rejected and a
number of us have tried hard to save that, unluckily as it turns out.
So an early No helped people allocate their time on what they
considered to be important. In contrast the Command Triggers and FKs
for arrays patches received a No so late that nothing could be done.
So I fully agree that people should say No, but the key point is
*when* they say it. For the future, I think we should have a triage
week as the first week in each CF; lets shake out the No comments
early - in some cases nothing can be done and we can refocus attention
onto important topics.

Second, my point was that No should not be applied in black/white form
if at all possible. If some aspect of a patch is unworkable, it may be
possible to provide some of the functionality, rather than simply
nothing at all. That wasn't possible with FK locks, and maybe it was
possible with command triggers.

I do consider it the responsibility of a reviewer to salvage as much
as is easily and reasonably possible from each contribution. In most
cases that requires a few words from the reviewer, since many patch
contributors listen carefully to what is said and try hard to make
changes that work. Frequently I see reviewers simply making authors
dance around with various additions and tweaks; all very well if the
patch is acceptable, but its just a waste of time if there is no route
to acceptance laid out clearly by the reviewer. That's something I've
mentioned before: the reviewer *must* supply a list of things which,
if solved, would allow the patch to be accepted. Clearly there will
always be last minute issues that cause rejection.

If we can get our information transfer a little slicker we'd be able
to find more review time. Instead of spending months on their own dead
patches, people would be available to assist on those with a chance to
be saved. Our problem is not lack of resource, it is ineffective
delegation. As Hannu points out, he didn't know the patch would be
rejected, so he didn't know help was needed to save something useful.
I considered that the job of the CF manager, but perhaps it is was
not. In any case, it would seem best for the future if the CF manager
was not also a committer, since those people are clearly too busy to
do both roles as well as the project needs them to be. Just as our
processes evolved into the creation of CFs and a CF manager, we must
evolve again towards someone/team whose main task is ensuring that the
delegation problem is solved. That won't work by bossing people
around, it has to work by informing and encouraging people to
contribute in the ways that they wish.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Simon Riggs
Date:
On Wed, Apr 11, 2012 at 6:59 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Wed, Apr 11, 2012 at 1:39 PM, Joshua Berkus <josh@agliodbs.com> wrote:
>>> Ultimately, we're herding cats here.  I don't think you're going to
>>> get
>>> the community to suddenly be willing to march in lockstep instead.
>>
>> If you, Peter, Simon, Robert, Heikki, Magnus, Peter G., Greg, Bruce and Andrew agreed on a calendar-driven, mostly
unambiguousprocess and adhered to that process, then the one or two people who didn't follow along wouldn't matter.
 Everyoneelse would follow you.  The reason things are chaotic now is that our lead committers do not have consensus
andare even inconsistent from CF to CF individually. 
>>
>> In other words: the problem is only unsolvable because *you* think it's unsolvable.   If you decide the problem is
solvable,you already have the means to solve it. 
>
> That's a somewhat bizarre list of people.  It both includes people who
> haven't expressed many concerns about our process one way or the other
> and excludes some who have.  At any rate, clearly the problem is
> exactly that there isn't consensus on this.  I would generally say
> that Tom, Greg Smith, and I are pretty close together on this issue,
> and Peter G., Simon, and Dimitri are pretty close together on this
> issue, but with a big gap in between those two groups.  I am less
> clear on how everyone else feels, but I think that saying that "all we
> need" is to get consensus among those people is to define the problem,
> not the solution.

Having just come back from a week away, I'm not really clear what you
mean by "this issue".

It worries me greatly to see my name in a divisive list like that.
There are no teams here; each issue needs to be judged on its own,
independently of each other and without regard to the person speaking.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Simon Riggs
Date:
On Sat, Apr 7, 2012 at 10:20 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> [ among other good points ]
>> ... On a related note, letting CommitFests go on for three
>> months because there's insufficient reviewer activity to get them done
>> in one or two is, in my opinion, not much of a solution.  If there's
>> even less reviewer activity next time, are we going to let it go on
>> for four months?  Six months?  Twelve months?  At some point, it boils
>> down to "we're just going to stop accepting patches for an indefinite
>> period of time".  Yuck.
>
> Yeah, this is something I was thinking about yesterday.  In the first
> couple of release cycles with the CommitFest process, we were willing to
> let the last fest of a release cycle go on for "as long as it takes",
> or at least that was what I felt the policy to be.  This time we
> eventually gave up and declared closure, but in hindsight we should
> likely have done that a month earlier.  The fact of the matter is that
> quite a few of the patches we were dealing with were *not* ready to
> commit, or even close to that, at the start of the fest.  If it weren't
> the last fest they would have gotten marked Returned With Feedback a
> lot sooner.
>
> I wonder whether we ought to have a preset schedule for last fests
> just like the others.  I'd be willing to let them run, say, 2 months
> instead of 1, but no deadline at all risks turning the whole affair
> into a death march, which is no fun for anybody and threatens the
> quality of the end result too.  There's too much temptation to commit
> patches that are not really ready, just to get them out of the way.
>
> In short, the idea of strongly calendar-driven releases looks more
> and more attractive to me the more times we go through this process.
> If your patch isn't ready on date X, then it's not getting into this
> release; but there'll be another bus coming along before long.
> Stretching out release cycles to get in those last few neat features
> just increases the pressure for more of the same, because people don't
> know how long it will be to the next release.

A 2 month hard deadline seems enough for me. I spoke in favour of
reasonableness previously, but that didn't mean no dates at all.

If we can do Triage Week at the beginning, that will keep out the ones
that aren't ready and allow us to focus our attention on the ones we
really care about.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Simon Riggs
Date:
On Sat, Apr 7, 2012 at 9:51 PM, Robert Haas <robertmhaas@gmail.com> wrote:

> I think this basically just boils down to too many patches and not
> enough people.  I was interested in Command Triggers from the
> beginning of this CommitFest, and I would have liked to pick it up
> sooner, but there were a LOT of patches to work on for this
> CommitFest.  The first three CommitFests of this cycle each had
> between 52 and 60 patches, while this one had 106 which included
> several very complex and invasive patches, command triggers among
> them.  So there was just a lot more to do, and a number of the people
> who submitted all of those patches didn't do a whole lot to help
> review them, sometimes because they were still furiously rewriting
> their submissions.  It's not surprising that more patches + fewer
> reviewers = each patch getting less attention, or getting it later.

This is a good point. The current process lacks inherent scalability.

I would really like us to enforce a policy of 1 patch => 1 review.
That way we automatically have enough review time, no matter how many
patches we get. If we don't enforce that, then patch sponsors are more
likely to take the attitude that review isn't something they need to
pay for, just the dev work.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Simon Riggs
Date:
On Tue, Apr 10, 2012 at 3:26 PM, Kevin Grittner
<Kevin.Grittner@wicourts.gov> wrote:
> Christopher Browne <cbbrowne@gmail.com> wrote:
>> Robert Haas <robertmhaas@gmail.com> wrote:
>
>>> CommitFests are a time for patches that are done or very nearly
>>> done to get committed, and a time for other patches to get
>>> reviewed if they haven't been already.  If we make it clear that
>>> the purpose of the CommitFest is to assess whether the patch is
>>> committable, rather than to provide an open-ended window for it
>>> to become committable, we might do better.
>>
>> Yeah, I think there's pretty good room for a "+1" on that.
>
> Yeah, +1 for sure.

The top comment that has been +1'd presents just 2 states; 1 is
deliberately phrased to be ridiculous, so of course everybody will
vote for the other one.

What is missing there is all of the other possible states between
those two extremes.

Let me re-phrase that: I think open ended CFs aren't much use. Hard
edges are needed. But having said that, I can't think of a major
feature that didn't have some tweaking after commit, and after end of
CF.

> One other sort of mechanical test which I think can and should be
> applied to patches submitted to the last CF is that if *at the start
> of the CF* the patch doesn't apply, compile, pass regression tests,
> and demonstrably provide the functionality claimed for the patch, it
> should not be a candidate for inclusion in the release.  A patch on
> which the author is continuing to work even in the absence of review
> should be considered a WIP "want feedback" submission; it should not
> be allowed to constitute a "placeholder" for inclusion in the
> release.  It's one thing if review turns up corner case bugs missed
> by the author; it's quite another if there is a month or two of
> solid development left to be done. The CF period is not the time for
> "now I'll get serious about wrapping this up."

Agreed. But again, mistakes do happen, so reasonableness is required.

CommitFests should be a finalisation period where submissions get
tweaked to fix problems/bugs and allow them to be committed by the end
of the CF. Again, in some cases that might be on the last day of the
CF (else its not the last day...).

In the past, patches could "starve" on the queue for very long
periods, sometimes years. Having a too-harsh process makes it then
easy to go back to the old way of quickly bouncing things that lack
popularity from committers.

Anyway, this discussion is just the annual "make things better"
discussion. Our process was good to start with and has get better each
release for years and years now, so objectively we are doing quite
well.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Tom Lane
Date:
Simon Riggs <simon@2ndQuadrant.com> writes:
> I completely agree that somebody has to be willing to say No, since we
> all agree that the default for any patch is non-acceptance.

> My first observation is that if No is received early enough for
> something to be done, then the outcome could be different. It was not
> clear that this important patch was going to be totally refused and
> many people have expressed their surprise about that. Noah signalled
> to everybody that the FK locks patch was likely to be rejected and a
> number of us have tried hard to save that, unluckily as it turns out.
> So an early No helped people allocate their time on what they
> considered to be important. In contrast the Command Triggers and FKs
> for arrays patches received a No so late that nothing could be done.

I think this is a rather unfair summary of the history.  It was clear
very early in the CF that people thought Command Triggers had major
design problems, and Dimitri was doing significant rewrites to try to
fix that.  Anyone who did not think that patch was at serious risk of
not being committed simply wasn't paying attention.  Given the range
of different design options that were considered, I think it's just
as well that the patch has been put off till 9.3: we will probably
get a better feature than if it had made it this time, and we will
certainly be taking less schedule risk.

I will agree that the array-FKs patch got the short end of the stick:
had we been willing to let the CF go on for another month, it would
have gotten looked at more carefully, and quite possibly committed.
But once we made the decision to cut off the CF, there was not time
to look at it closely enough.  Again, to my mind this was mostly
a risk minimization decision: when you make up a fundamental feature
out of whole cloth, there's substantial risk that you didn't get the
design right.  At this point we don't have enough time for the
feature to settle in and get used before 9.2 will ship and it'll be
too late to correct any design problems.

The more general point here is that the last fest of a release cycle
is the worst possible time to be landing big, destabilizing patches.
I think we ought to be conservative at this stage of the cycle, in
hopes of keeping beta phase short and predictable.
        regards, tom lane


Re: Last gasp

From
Tom Lane
Date:
Simon Riggs <simon@2ndQuadrant.com> writes:
> If we can do Triage Week at the beginning, that will keep out the ones
> that aren't ready and allow us to focus our attention on the ones we
> really care about.

I think there's some merit in this idea, but there needs to be time
allocated to examine all the large patches before we make any hard
go/no-go decisions.  Maybe we could make such choices about two weeks
in, rather than at the very start?

Another thought is that "triage" is probably not the right image to
have here.  Patches that are obviously going to be rejected altogether
are not that common, and they don't take up much time when they do show
up.  Where I think we have been fooling ourselves is in failing to tell
the difference between a patch that is committable in the current fest,
versus one that is still WIP and is going to need more development time.
Now the latter category *is still deserving of review*, just as much as
the former.  So even if we can correctly determine early on which
patches are WIP, it doesn't mean we should bounce them out of the fest.
But it would mean they get approached differently by the reviewers.
        regards, tom lane


Re: Last gasp

From
Simon Riggs
Date:
On Sun, Apr 15, 2012 at 4:50 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> I think this is a rather unfair summary of the history.  It was clear
> very early in the CF that people thought Command Triggers had major
> design problems, and Dimitri was doing significant rewrites to try to
> fix that.  Anyone who did not think that patch was at serious risk of
> not being committed simply wasn't paying attention.

Fair comment, since I was definitely not paying attention.

My I-Want-a-Pony idea is some kind of rating system that allows us all
to judge patches in terms of importance/popularity, complexity and
maturity. I guess a Balanced Scorecard for the development process. So
we can all see whats going on. We already do this when we speak to
each other in hushed tones that so-and-so a patch looks unlikely etc..
If we could do that more openly it would help.

> The more general point here is that the last fest of a release cycle
> is the worst possible time to be landing big, destabilizing patches.
> I think we ought to be conservative at this stage of the cycle, in
> hopes of keeping beta phase short and predictable.

There is a definite selection effect that means the bigger the patch
the more likely it is to land later in the release cycle, regrettably.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Greg Smith
Date:
On 04/14/2012 06:03 PM, Robert Haas wrote:
> If someone's work is going to require substantial
> revision, it is much better and much less work to do that revision
> before the code goes into our repository (and particularly, before it
> gets released) rather than after.

I would think one of the major factors in deciding who should be able to 
commit code is whether they'll likely to commit substandard material. 
Someone who reviews and is seen to mark patches "ready for commit", and 
they're not, should surely not be committing things either.

The review process we have now does a pretty good job of identifying 
which submissions are baked and which aren't.  I'd never argue that 
there should be more people to commit so they can slip in half baked 
material.  Someone doesn't need to know how to bake everything to be 
useful as a committer though; they just need to know what they can and 
can't handle.

> And, on a related note, I am having
> a hard time imagining that it's a good idea to give very many people
> commit bits primarily so that they can commit their own work.

If someone has committed their own work after that submission went 
through the full CF and review process, I don't see a lot of harm in 
them committing the result.  I'd certainly never suggest that the reason 
to have more committers is so that the CF workflow was easier to 
subvert.  Yes, there are problems with having enough reviewers and 
ushering large patches through the CF process.  But it seems to me there 
are a fair number of submission that start solid, turn excellent through 
thorough review, and once they do hit "ready for committer" they could 
be picked up for commit by more people than the existing very small pool 
(committers who process other people's submissions regularly).

Also, and I'm aware this is a more controversial point, I believe there 
are some people who would do more review if they could just move toward 
committing the stuff that looks good without going through quite as much 
process.  At some times, if you realize something is close and just 
needs a bit more work, the easy path is to just do it yourself and be 
done.  Non committing reviewers can't get that efficiency boost in the 
cases it's appropriate.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Greg Smith
Date:
On 04/14/2012 05:28 PM, Jay Levitt wrote:
> I see now that the "Reviewing a Patch" wiki page explains this, but
> maybe this info should be pushed higher into the docs and web site; a
> "How can I contribute" page, open calls for reviewers on the non-hackers
> mailing lists, things like that. Or maybe just make the wiki page bright
> red and blink a lot.

It is too bad the page we used to have like this on MySpace isn't around 
anymore.

Right now there's some rumbling at multiple companies around things like 
how to sponsor new features for PostgreSQL.  Tying that into a larger 
page covering the various ways people can contribute is an interesting 
idea.  I think we've only recently crossed the point where there's 
enough details on pages like "Reviewing a Patch" that it's clear to 
people what they should do on the technical side.  That pretty well 
completely work could use something that's more like marketing now though.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Greg Smith
Date:
On 04/15/2012 05:46 AM, Simon Riggs wrote:
> Our problem is not lack of resource, it is ineffective
> delegation. As Hannu points out, he didn't know the patch would be
> rejected, so he didn't know help was needed to save something useful.
> I considered that the job of the CF manager, but perhaps it is was
> not.

Note that one of the influences on the "death march" here was lack of a 
fully devoted CF manager for the full duration.  I did some rabble 
rousing to get things started in the usual way, but my time for this 
only budgeted for six weeks in that role.  And that was quite optimistic 
for this one.

Trying to quantify how much time investment the CF manager role really 
involves is one of my important projects to chew on.  Whoever ends up 
doing that should at least have an idea what scale of problem they're 
getting into.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Alvaro Herrera
Date:
Excerpts from Alex's message of dom abr 15 01:52:16 -0300 2012:
>
> Jay Levitt <jay.levitt@gmail.com> writes:
>
> > Alex wrote:
> >> I didn't follow this whole thread, but have we considered Redmine[1]?
> >
> > As the resident "Ruby is shiny, let's do everything in Rails on my
> > MacBook" guy, I'd like to make a statement against interest: I've
> > tried Redmine a few times and it's been painful.  Much of the codebase
> > is deprecated, it's slow, it has no meaningful search (in 2012?!),
> > I've seen wiki edits disappear, and at the moment pulling up its own
> > FAQ page at redmine.org times out.
>
> Yay, that's totally FUD to me.

I've used Redmine a lot, as you know, and I only keep using it because
it's a requirement at work.  It is certainly not close to usable for
general pgsql stuff.  (Trac, which we used to use prior to Redmine, was
certainly much worse, though).

I can't say that it's all that slow, or that there's a problem with the
code, or that the search doesn't work right (and I've never had a wiki
edit disappear, either, and I've used that a lot).  It's just the wrong
tool altogether.

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


Re: Last gasp

From
Simon Riggs
Date:
On Sun, Apr 15, 2012 at 11:31 PM, Greg Smith <greg@2ndquadrant.com> wrote:
> On 04/15/2012 05:46 AM, Simon Riggs wrote:
>>
>> Our problem is not lack of resource, it is ineffective
>> delegation. As Hannu points out, he didn't know the patch would be
>> rejected, so he didn't know help was needed to save something useful.
>> I considered that the job of the CF manager, but perhaps it is was
>> not.
>
>
> Note that one of the influences on the "death march" here was lack of a
> fully devoted CF manager for the full duration.  I did some rabble rousing
> to get things started in the usual way, but my time for this only budgeted
> for six weeks in that role.  And that was quite optimistic for this one.
>
> Trying to quantify how much time investment the CF manager role really
> involves is one of my important projects to chew on.  Whoever ends up doing
> that should at least have an idea what scale of problem they're getting
> into.

Again, if the CF manager role is too big, then we delegate. No reason
why we can't have a CF team, with different people responsible for
different areas.

The key thing is working out how to mobilise the resources we have to
best effect.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Last gasp

From
Dimitri Fontaine
Date:
Alvaro Herrera <alvherre@commandprompt.com> writes:
> I've used Redmine a lot, as you know, and I only keep using it because
> it's a requirement at work.  It is certainly not close to usable for
> general pgsql stuff.  (Trac, which we used to use prior to Redmine, was
> certainly much worse, though).

Same story here, still using redmine a lot, all with custom reports etc.

> I can't say that it's all that slow, or that there's a problem with the
> code, or that the search doesn't work right (and I've never had a wiki
> edit disappear, either, and I've used that a lot).  It's just the wrong
> tool altogether.

It's indeed slow here, and I agree that's not the problem. Not the tool
we need, +1.

Regards,
-- 
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support


Bug tracker tool we need (was: Last gasp)

From
Alex
Date:
Dimitri Fontaine <dimitri@2ndQuadrant.fr> writes:

> Alvaro Herrera <alvherre@commandprompt.com> writes:
>> I've used Redmine a lot, as you know, and I only keep using it because
>> it's a requirement at work.  It is certainly not close to usable for
>> general pgsql stuff.  (Trac, which we used to use prior to Redmine, was
>> certainly much worse, though).
>
> Same story here, still using redmine a lot, all with custom reports etc.
>
>> I can't say that it's all that slow, or that there's a problem with the
>> code, or that the search doesn't work right (and I've never had a wiki
>> edit disappear, either, and I've used that a lot).  It's just the wrong
>> tool altogether.
>
> It's indeed slow here, and I agree that's not the problem. Not the tool
> we need, +1.

I still fail to see how Redmine doesn't fit into requirements summarized
at that wiki page[1], so that must be something other than formal
requirement of being free/open software and running postgres behind
(some sort of "feeling" maybe?)

Jay, Alvaro, Dimitri (and whoever else wants to speak up) could you
please describe your ideal tool for the task?

Given that every other existing tool likely have pissed off someone
already, I guess our best bet is writing one from scratch.

Or maybe there isn't really a need for a tracker?  The core team have
managed to live without one for so long after all...

--
Regards,
Alex

[1] http://wiki.postgresql.org/wiki/TrackerDiscussion



Re: Bug tracker tool we need (was: Last gasp)

From
Magnus Hagander
Date:
On Mon, Apr 16, 2012 at 18:24, Alex <ash@commandprompt.com> wrote:
>
> Dimitri Fontaine <dimitri@2ndQuadrant.fr> writes:
>
>> Alvaro Herrera <alvherre@commandprompt.com> writes:
>>> I've used Redmine a lot, as you know, and I only keep using it because
>>> it's a requirement at work.  It is certainly not close to usable for
>>> general pgsql stuff.  (Trac, which we used to use prior to Redmine, was
>>> certainly much worse, though).
>>
>> Same story here, still using redmine a lot, all with custom reports etc.
>>
>>> I can't say that it's all that slow, or that there's a problem with the
>>> code, or that the search doesn't work right (and I've never had a wiki
>>> edit disappear, either, and I've used that a lot).  It's just the wrong
>>> tool altogether.
>>
>> It's indeed slow here, and I agree that's not the problem. Not the tool
>> we need, +1.
>
> I still fail to see how Redmine doesn't fit into requirements summarized
> at that wiki page[1], so that must be something other than formal
> requirement of being free/open software and running postgres behind
> (some sort of "feeling" maybe?)

One thing to note is that the referenced wiki page is over a year old.
And that many more things have been said on email lists than are
actually in that page.

But as one note - I don't believe you can drive redmine completely
from email, which is certainly a requirement that has been discussed,
but is not entirely listed on that page.


> Jay, Alvaro, Dimitri (and whoever else wants to speak up) could you
> please describe your ideal tool for the task?
>
> Given that every other existing tool likely have pissed off someone
> already, I guess our best bet is writing one from scratch.

FWIW, I think the closest thing we've found so far would be debbugs -
which IIRC doesn't have any kind of reasonable database backend, which
would be a strange choice for a project like ours :) And makes many
things harder...

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Alex
Date:
Magnus Hagander <magnus@hagander.net> writes:

> One thing to note is that the referenced wiki page is over a year old.
> And that many more things have been said on email lists than are
> actually in that page.

Yeah, I went through it briefly and rather important concern seem to
have been raised by Tom Lane in this msg:
http://archives.postgresql.org/pgsql-hackers/2011-05/msg01480.php

This paragraph:

> The real question is, who is going to keep it up to date?  GSM has the
> right point of view here: we need at least a couple of people who are
> willing to invest substantial amounts of time, or it's not going to go
> anywhere.  Seeing that we can barely manage to keep the mailing list
> moderator positions staffed, I'm not hopeful.

> But as one note - I don't believe you can drive redmine completely
> from email, which is certainly a requirement that has been discussed,
> but is not entirely listed on that page.

Ugh, what do you mean by that?  You can change any attribute (like
status, priority, assigned person, etc.) of a ticket via email.
Anything else?

> FWIW, I think the closest thing we've found so far would be debbugs -
> which IIRC doesn't have any kind of reasonable database backend, which
> would be a strange choice for a project like ours :) And makes many
> things harder...

What stops us from writing a postgres backend for debbugs if it is so
brilliant on handing email and stuff?

--
Alex


Re: Last gasp

From
Greg Smith
Date:
On 04/15/2012 12:01 PM, Tom Lane wrote:
> Where I think we have been fooling ourselves is in failing to tell
> the difference between a patch that is committable in the current fest,
> versus one that is still WIP and is going to need more development time.

I wonder if this bit of state might be worth extending the UI to 
include.  Just a little toggle box with the options "WIP" and "Commit 
Submission" there.  [I am unattached to those particular terms]

I think everyone is clear that Command Triggers is an example that 
reflects a more general problem seen many times before; I'll continue 
using it as a fresh example here without meaning to pick on Dimitri in 
particular.  If Dimitri had submitted that in January while ticking 
"Commit Submission", it might have sparked a talk about the difference 
in expectations earlier.  If we use Robert as the bad guy watching the 
CF progress (again, just as an example, not trying to paint him with 
that title), I think it would have been easier for him to write an 
e-mail like this:

"It's March now, and this feature has been under heavy review and 
development for 6 weeks.  This looks more like a WIP feature to me, not 
one that arrived as a Commit Submission.  Is there any useful subset to 
consider instead?"

Compared to the current way such things happen, that's a more factual 
style of message without as much emotion or judging, and one that can be 
raised much earlier in the CF cycle.  I think it will be easier for 
people to write those, compared with having to be the person saying 
"this isn't ready to commit" only at the end.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Jay Levitt
Date:
Alex wrote:
> Jay Levitt<jay.levitt@gmail.com>  writes:
>
>> Alex wrote:
>>> I didn't follow this whole thread, but have we considered Redmine[1]?
>> As the resident "Ruby is shiny, let's do everything in Rails on my
>> MacBook" guy, I'd like to make a statement against interest: I've
>> tried Redmine a few times and it's been painful.  Much of the codebase
>> is deprecated, it's slow, it has no meaningful search (in 2012?!),
>> I've seen wiki edits disappear, and at the moment pulling up its own
>> FAQ page at redmine.org times out.
>
> Yay, that's totally FUD to me.

You're right, it was. My bad. Someday I will find the balance between 
precision and concision.

> Could you please elaborate a bit on your points?
>
> Deprecated codebase?  Let me guess...
>
> It runs on an outdated version of Rails (2.3) but only because Rails is
> changing so rapidly, I believe.  There is work in progress[1] to move to
> the supported branch Rails-3.x.

I wasn't even thinking of that; I know many production systems still run on 
Rails 2.3, and in fact it probably even performs better for some workloads. 
3.x is a mixed bag. I don't hold that against Redmine.

But it's still FUD, because I can't remember where I saw this information. 
So: withdrawn.

>
> Slow?  Do you have any data to back this point up?

No measurable data; just a sigh of relief when switching from Redmine to 
Github - and GitHub ain't a speed demon. In general, I've seen multi-second 
page load times on crazy-simple things like wiki edits; this was on a hosted 
provider (sourcerepo.com), but they also hosted our git repo and we had no 
speed problems there.

> No meaningful search, eh?  Works for me.

Redmine searches return partial-word matches, and there's no way to disable 
that.  Searching for "test" finds "latest". To me, that's broken.

Also, the UI is very 5 years ago; e.g., "compare revisions" uses the same 
columns-of-radio-buttons approach as MediaWiki. If the goal is a tool to 
reduce friction and increase involvement, you want a smoother UX.

Jay


Re: Bug tracker tool we need

From
Jay Levitt
Date:
Alex wrote:
> I still fail to see how Redmine doesn't fit into requirements summarized
> at that wiki page[1], so that must be something other than formal
> requirement of being free/open software and running postgres behind
> (some sort of "feeling" maybe?)

Well, if those requirements are in fact requirements, Redmine could suit the 
purpose (perhaps with some custom extensions).  But yes, Redmine "feels" 
wrong to me, though I have never been particularly happy with *any* 
self-hosted bug tracker.

Of those I've used - Redmine, Mantis, JIRA, Trac, Bugzilla, GForge, RT - 
Redmine feels the least-worst to me; it's about equal to Trac, and it's in 
Ruby so I could theoretically(!) improve it.

I think the biggest missing pieces in Redmine aside from custom CF stuff 
are: better search, single sign-on (it requires Yet Another Login), a better 
UX (AJAX, syntax highlighting) and better git integration (a la pull 
requests, where private git commits = patches). Those are some pretty big 
pieces. I don't think Redmine out-of-the-box would improve either CFs or 
community involvement.

> Jay, Alvaro, Dimitri (and whoever else wants to speak up) could you
> please describe your ideal tool for the task?

My opinion isn't all that important, since I currently have an infinite 
opinion-to-contribution ratio, but in my unicorniverse: We'd accept that 
open source hasn't always produced great UX, we'd use GitHub's issue 
tracker, allow volunteers to do "bug wrangling" triage via tags, use GitHub 
hooks to integrate with the existing CF app, and write archiving tools that 
would let us easily export everything off of GitHub for when (a) something 
better comes along or (b) GitHub pops out of existence or adds egregious 
licensing terms like BitKeeper.

Reasons:

- Familiarity: Many developers already have a GitHub account and use it
- Discoverability: GitHub has great SEO
- Tight integration of git with patch and issue management (pull requests, 
fork networks, etc); eliminates ceremony rather than adding to it
- Readable UI with syntax highlighting, etc
- Patch commenting and git integration encourage actual review-resubmit 
cycles instead of "Here, look, I fixed it for you" reviews
- Two-way email/web integration
- Meets Tom's "would be sort of neat" criteria[1]
- Could easily implement Simon's "pony" criteria[2] with tags and API
- Easily extensible with API and hooks
- Subjectively: Its design encourages better community and core interactions 
than any I've seen in 25 years.

GitHub could well be a non-starter, but if third-party-dependence is really 
the holdup, I'd volunteer to write the tools - in fact, a google of [export 
issues from github] shows a few that might already suffice.

> Given that every other existing tool likely have pissed off someone
> already, I guess our best bet is writing one from scratch.

ISTR there's a great "Writing your own bug tracker is an anti-pattern" blog, 
but I can't find it anymore.

> Or maybe there isn't really a need for a tracker?  The core team have
> managed to live without one for so long after all...

As an end-user, I've reported exactly one bug in a release version of 
Postgres, and it was fixed (and back-ported!) the next day.  So I really 
can't complain about the tracking of actual bugs.

Sounds like we do need something better for CF/patch workflow, tho.

Jay

[1] Tom wrote:

> Now what would be sort of neat is if we had a way to keep all the versions
> of patch X plus author and reviewer information, links to reviews and
> discussion, etc. in some sort of centralized place

[2] Simon wrote:

> My I-Want-a-Pony idea is some kind of rating system that allows us all
> to judge patches in terms of importance/popularity, complexity and
> maturity. I guess a Balanced Scorecard for the development process. So
> we can all see whats going on.





Re: Bug tracker tool we need

From
"Joshua D. Drake"
Date:
On 04/16/2012 09:24 AM, Alex wrote:
> Jay, Alvaro, Dimitri (and whoever else wants to speak up) could you
> please describe your ideal tool for the task?
>
> Given that every other existing tool likely have pissed off someone
> already, I guess our best bet is writing one from scratch.
>
> Or maybe there isn't really a need for a tracker?  The core team have
> managed to live without one for so long after all...
I believe the biggest hurdle for many hackers is that in redmine, email 
is not a first class citizen. The majority of hackers are never going to 
want to go into a web interface to get something done, they live in 
VI/Emacs and the command line.

One thing that redmine definitely breaks is proper handling of 
attachments in email, thus the first thing moving to redmine would break 
would be patch submission.

JD


> --
> Regards,
> Alex
>
> [1] http://wiki.postgresql.org/wiki/TrackerDiscussion
>
>



Re: Bug tracker tool we need (was: Last gasp)

From
Michael Banck
Date:
On Mon, Apr 16, 2012 at 06:29:47PM +0200, Magnus Hagander wrote:
> FWIW, I think the closest thing we've found so far would be debbugs -
> which IIRC doesn't have any kind of reasonable database backend, which
> would be a strange choice for a project like ours :) And makes many
> things harder...

FWIW, Don Armstrong (the main debbugs hacker these days I believe)
recently posted a blog post about a more obscure feature of debuugs
(forcemerge), where he finishs with "so we can eventually keep a
postgresql database updated in addition to the flatfile database.":

http://www.donarmstrong.com/posts/debbugs_forcemerge/

I don't know whether this implies a full PostgreSQL backend or just a
helper DB for some part of the functionality, but it might be something
to keep watching.


Regards,

Michael


Re: Bug tracker tool we need

From
Alex
Date:
>
> I believe the biggest hurdle for many hackers is that in redmine,
> email is not a first class citizen. The majority of hackers are never
> going to want to go into a web interface to get something done, they
> live in VI/Emacs and the command line.
>
> One thing that redmine definitely breaks is proper handling of
> attachments in email, thus the first thing moving to redmine would
> break would be patch submission.

Right.  This is not too hard to fix, however, and I didn't suggest we
move to vanilla Redmine.  It's hackable, so we can just bash it into
shape we need (and we need a few Ruby hackers, so there's always someone
in the postgres community to fix it when it breaks, of course.)

--
Alex


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Mon, Apr 16, 2012 at 23:48, Jay Levitt <jay.levitt@gmail.com> wrote:
> Alex wrote:
>>
>> I still fail to see how Redmine doesn't fit into requirements summarized
>> at that wiki page[1], so that must be something other than formal
>> requirement of being free/open software and running postgres behind
>> (some sort of "feeling" maybe?)
>
>
> Well, if those requirements are in fact requirements, Redmine could suit the
> purpose (perhaps with some custom extensions).  But yes, Redmine "feels"
> wrong to me, though I have never been particularly happy with *any*
> self-hosted bug tracker.

That's probably one reason people aren't jumping on this. Because
there is no tracker out there that people actually *like*...


> Of those I've used - Redmine, Mantis, JIRA, Trac, Bugzilla, GForge, RT -
> Redmine feels the least-worst to me; it's about equal to Trac, and it's in
> Ruby so I could theoretically(!) improve it.

It being in ruby is actually generally a liability in the
postgresql.org world - we have very few people who actually know it.
And some of those who know it no longer want to work with it. So if
you're good with Ruby, and want to contribute, feel free to contact me
off-list because we have some things we need help with :-)


> I think the biggest missing pieces in Redmine aside from custom CF stuff
> are: better search, single sign-on (it requires Yet Another Login), a better

We already have redmine working with single password (though not
single signon) for a limited number of projects such as pgweb.


> UX (AJAX, syntax highlighting) and better git integration (a la pull
> requests, where private git commits = patches). Those are some pretty big
> pieces. I don't think Redmine out-of-the-box would improve either CFs or
> community involvement.

I think we can all agree on that :-)

>> Jay, Alvaro, Dimitri (and whoever else wants to speak up) could you
>> please describe your ideal tool for the task?
>
>
> My opinion isn't all that important, since I currently have an infinite
> opinion-to-contribution ratio, but in my unicorniverse: We'd accept that
> open source hasn't always produced great UX, we'd use GitHub's issue
> tracker, allow volunteers to do "bug wrangling" triage via tags, use GitHub
> hooks to integrate with the existing CF app, and write archiving tools that
> would let us easily export everything off of GitHub for when (a) something
> better comes along or (b) GitHub pops out of existence or adds egregious
> licensing terms like BitKeeper.
>
> Reasons:
>
> - Familiarity: Many developers already have a GitHub account and use it

Most of the more senior developers don't use github. Other than
possibly as a place to store a plain git repository. So that's not
really relevant.

> - Discoverability: GitHub has great SEO

I'm willing to bet that postgresql.org has better SEO when it comes to postgres.

> - Tight integration of git with patch and issue management (pull requests,
> fork networks, etc); eliminates ceremony rather than adding to it

There are some things that help there, certainly. Pull requests is
basically email, but fork network tracking and such can be darn useful
sometimes.

> - Readable UI with syntax highlighting, etc

Yes, this part is very nice.

> - Patch commenting and git integration encourage actual review-resubmit
> cycles instead of "Here, look, I fixed it for you" reviews

The amount of spam coming through that system, and the
inability/unwillingness of github to even care about it is a killer
argument *against* github.

We have working antispam for email. The github antispam is somewhere
around where email antispam was in 1994.

> - Two-way email/web integration
> - Meets Tom's "would be sort of neat" criteria[1]
> - Could easily implement Simon's "pony" criteria[2] with tags and API
> - Easily extensible with API and hooks
> - Subjectively: Its design encourages better community and core interactions
> than any I've seen in 25 years.
>
> GitHub could well be a non-starter, but if third-party-dependence is really
> the holdup, I'd volunteer to write the tools - in fact, a google of [export
> issues from github] shows a few that might already suffice.

It *is* a non-starter, because (a) it's a third party dependency, and
(b) AFAIK they don't provide *data access* to the issue trackers.

If the actual issue trackers were stored in git, like the webpages are
for example, it would be a different story...b


>> Given that every other existing tool likely have pissed off someone
>> already, I guess our best bet is writing one from scratch.
>
> ISTR there's a great "Writing your own bug tracker is an anti-pattern" blog,
> but I can't find it anymore.

I'm sure there's more than one :-)

If it was that easy we would've written one already. But doing that is
likely going to be a lot of work, and it needs to be maintained.

(Not that picking another one means it doesn't need to be maintained -
I've seen so many things broken by upgrading redmine or bugzilla that
it's silly...)

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Last gasp

From
"Greg Sabino Mullane"
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160


> If the feature set is desirable, though, I wonder if Postgres is 
> big/high profile enough for them to figure out some sort of better 
> arrangement. They *love* it when big open-source projects use GitHub 
> as their public repo - they'll email and blog announcements about 
> it - and if there's interest I'd be happy to open a conversation 
> with them.

No need to wonder, we've been in contact with them before and they 
are very pro Postgres. 

> I've looked at it in conjunction with Jenkins CI; it looked nice but was way 
> too heavy-weight for a four-person startup (what's code review?). It's 
> probably much more suitable for this sized project.

> Gerrit's a full-featured code review app with a tolerable UI;

MediaWiki is just starting to jump into git/Gerrit and there are definitely 
a lot of rough edges in that workflow still.

...

Someone mentioned upthread that github spam was a problem. I'm not sure 
I see the issue here - wouldn't mail from them still go through our lists 
and out current anti-spam measures anyway?

- -- 
Greg Sabino Mullane greg@turnstep.com
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201204170623
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAk+NRO4ACgkQvJuQZxSWSshPpACg9+ZB6NzCsvnkQwuoD/BzIHgL
yMkAn3zwksbKxaSDt3k/YzKY7UVLmUZb
=igZu
-----END PGP SIGNATURE-----




Re: Bug tracker tool we need

From
Jay Levitt
Date:
Magnus Hagander wrote:
> On Mon, Apr 16, 2012 at 23:48, Jay Levitt<jay.levitt@gmail.com>  wrote:
>> - Familiarity: Many developers already have a GitHub account and use it
> Most of the more senior developers don't use github. Other than
> possibly as a place to store a plain git repository. So that's not
> really relevant.

I meant outside developers - the folks you'd like to see more involved in 
the process.

>> - Patch commenting and git integration encourage actual review-resubmit
>> cycles instead of "Here, look, I fixed it for you" reviews
>
> The amount of spam coming through that system, and the
> inability/unwillingness of github to even care about it is a killer
> argument *against* github.
>
> We have working antispam for email. The github antispam is somewhere
> around where email antispam was in 1994.

Interesting; I haven't run into this but you're the second person to mention 
it here.  Antispam is (in the large) a technically unsolvable problem; even 
in the '90s, we'd see hackers start poking at our newest countermeasures 
within the hour.  GitHub is a giant target, and PG probably benefits here 
from NOT being one. (A quick Google shows redmine and especially Trac having 
spam issues of their own.)

Pedantic note/fun fact: There was no email antispam in 1994; Canter & Siegel 
posted their infamous USENET Green Card spam that year, but it didn't really 
spread to email for another year or two. Once it did, there were fervent 
debates about whether it should be called "velveeta" to distinguish from the 
USENET variety.

>> GitHub could well be a non-starter, but if third-party-dependence is really
>> the holdup, I'd volunteer to write the tools - in fact, a google of [export
>> issues from github] shows a few that might already suffice.
>
> It *is* a non-starter, because (a) it's a third party dependency, and
> (b) AFAIK they don't provide *data access* to the issue trackers.

Sure they do:

http://developer.github.com/v3/issues/

Jay


Re: Bug tracker tool we need

From
Alex Shulgin
Date:
Jay Levitt <jay.levitt@gmail.com> writes:
>
> (A quick Google shows redmine and especially Trac having spam issues
> of their own.)

Ugh, redmine (or trac for that matters) has nothing to with handling
spam.  I believe a typical bug tracker doesn't handle spam itself, it
lets the mailing system do that.

Surely you can throw in some captcha plugins to try to reduce the spam
posted from the web UI.

--
Alex


Re: Last gasp

From
Alex Shulgin
Date:
Jay Levitt <jay.levitt@gmail.com> writes:
>
>> No meaningful search, eh?  Works for me.
>
> Redmine searches return partial-word matches, and there's no way to
> disable that.  Searching for "test" finds "latest". To me, that's
> broken.

Well, I believe one can plug in a different search engine, like lucene
or xapian.  However it doesn't look like some one already did (for
ticket/wiki history, but there's xapian search plugin[1] to index attachments.)

> Also, the UI is very 5 years ago; e.g., "compare revisions" uses the
> same columns-of-radio-buttons approach as MediaWiki. If the goal is a
> tool to reduce friction and increase involvement, you want a smoother
> UX.

Nothing that could not be tweaked with a plugin or core code
modification here either.  Not sure about the magnitude of the effort
required, though.

--
Alex

[1] https://github.com/xelkano/redmine_xapian


Re: Bug tracker tool we need

From
Jay Levitt
Date:
Alex Shulgin wrote:
> Jay Levitt<jay.levitt@gmail.com>  writes:
>> (A quick Google shows redmine and especially Trac having spam issues
>> of their own.)
>
> Ugh, redmine (or trac for that matters) has nothing to with handling
> spam.  I believe a typical bug tracker doesn't handle spam itself, it
> lets the mailing system do that.
>
> Surely you can throw in some captcha plugins to try to reduce the spam
> posted from the web UI.

Maybe I'm confused - Magnus et al, are we talking spammy issues/issue 
comments/etc, or are we talking more about exposed email addresses?

I assumed we meant spammy issues, like blog comments - spammers post issues 
and comments with links, to get PageRank to their sites.  Email defenses 
wouldn't help here.

Captchas are fairly pointless nowadays, assuming you have someone dedicated 
enough to write a spambot against your bug tracker.  Most of them (even 
reCAPTCHA!) can be >80% defeated by software - many 99% - and there are 
millions of humans hanging out on Mechanical Turk who'll solve them for you 
100%.  Modern anti-spam ends up being a machine learning and systems 
exercise.. but that's another mailing list :) I think Google gets more use 
out of reCAPTCHA for OCR tweaking than for anti-spam.

Jay


Re: Bug tracker tool we need

From
Greg Smith
Date:
On 04/17/2012 09:20 AM, Jay Levitt wrote:
> Antispam is (in the large) a technically unsolvable
> problem; even in the '90s, we'd see hackers start poking at our newest
> countermeasures within the hour. GitHub is a giant target, and PG
> probably benefits here from NOT being one.

Everyone who deals with list moderation and spam issues around 
PostgreSQL just got a belly laugh from that comment.  Hint:  the 
PostgreSQL lists had already been around and therefore were being 
targeted by spammers for over ten years before GitHub even existed.

> Pedantic note/fun fact: There was no email antispam in 1994

I like it when Magnus really gets the details perfect when making a 
deadpan joke.

Anyway, back to serious talk, I believe GitHub is a dead end here 
because the "primary key" as it were for issues is a repo.  A bug 
tracker for PostgreSQL would need to have issues broken down per branch 
and include information similar to the release notes for each minor 
point release.  Tracking when and how a bug is backported to older 
versions is one hard part of the problem here.

For example, Trac, Redmine, and Github all have ways to make a commit 
message reference an issue, something like "fixes #X".  That's fine for 
projects that don't have a complicated backport policy, but I haven't 
been able to figure out how to make it work well enough for a PostgreSQL 
bug tracker, to end up saving any work here.  In some cases, a bug 
shouldn't be closed until it's been backported to all supported 
releases.  Others will only fix in relevant releases.

Let's pick a real example from the last week of my life, where having a 
bug tracker would have helped me out.  This appears in a log:

ERROR: missing chunk number 0 for toast value 1167375 in pg_toast_2619

What I should be able to do here is search the bug tracker for these 
words and have it spit out an issue that looks like this

===

Bug:  Fix race condition during toast table access from stale syscache 
entries

Impact:  Transient query failures

Fixed in:

9.2.0:  http://archives.postgresql.org/pgsql-committers/2011-11/msg00012.php

9.1.2:  http://archives.postgresql.org/pgsql-committers/2011-11/msg00016.php

9.0.6:  http://archives.postgresql.org/pgsql-committers/2011-11/msg00014.php

8.4.10: 
http://archives.postgresql.org/pgsql-committers/2011-11/msg00013.php

8.3.17: 
http://archives.postgresql.org/pgsql-committers/2011-11/msg00017.php

8.2.23: 
http://archives.postgresql.org/pgsql-committers/2011-11/msg00015.php

===

Note that the "fixed in" version information doesn't show up until some 
time *after* the bug fix is committed, because they normally get rolled 
into the next minor release in bulk.

A bug tracking system for PostgreSQL will start looking attractive when 
it makes life easier for the people who do these backports and the 
associated release notes.  Start looking at the problem from their 
perspective if you want to figure out how to make that happen.  I don't 
have a good answer to that; I just know that Trac, Redmine, and GitHub 
haven't felt like a good fit, having used every one of that trio for 
multiple years now at some point.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Last gasp

From
Robert Haas
Date:
On Sun, Apr 15, 2012 at 8:23 AM, Simon Riggs <simon@2ndquadrant.com> wrote:
> On Sat, Apr 7, 2012 at 9:51 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>> I think this basically just boils down to too many patches and not
>> enough people.  I was interested in Command Triggers from the
>> beginning of this CommitFest, and I would have liked to pick it up
>> sooner, but there were a LOT of patches to work on for this
>> CommitFest.  The first three CommitFests of this cycle each had
>> between 52 and 60 patches, while this one had 106 which included
>> several very complex and invasive patches, command triggers among
>> them.  So there was just a lot more to do, and a number of the people
>> who submitted all of those patches didn't do a whole lot to help
>> review them, sometimes because they were still furiously rewriting
>> their submissions.  It's not surprising that more patches + fewer
>> reviewers = each patch getting less attention, or getting it later.
>
> This is a good point. The current process lacks inherent scalability.
>
> I would really like us to enforce a policy of 1 patch => 1 review.
> That way we automatically have enough review time, no matter how many
> patches we get. If we don't enforce that, then patch sponsors are more
> likely to take the attitude that review isn't something they need to
> pay for, just the dev work.

I would be generally in favor of that policy, but I would relax it for
people who have only ever submitted a handful of patches, so as to
continue encouraging them to become involved in the community.

It's also worth noting that not all reviews are created equal.  It
takes a lot more time to review command triggers than it does to
review pg_archivecleanup extension-skipping.  It's not important that
the review effort is *exactly* proportional to the size of what has
been submitted, but it *is* important that when we're having a
CommitFest, people are spending the majority of their time on
reviewing, rather than continuing to spend it developing patches that
aren't done yet.  It's perfectly right to say that people should be
given a chance to finish up patches that are almost there, but our
definition of "almost there" has a tendency to expand to the point
where it's laughable when the last CommitFest of the cycle rolls
along.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Bug tracker tool we need

From
Jay Levitt
Date:
Greg Smith wrote:
> On 04/17/2012 09:20 AM, Jay Levitt wrote:
>> Antispam is (in the large) a technically unsolvable
>> problem; even in the '90s, we'd see hackers start poking at our newest
>> countermeasures within the hour. GitHub is a giant target, and PG
>> probably benefits here from NOT being one.
> Everyone who deals with list moderation and spam issues around PostgreSQL
> just got a belly laugh from that comment. Hint: the PostgreSQL lists had
> already been around and therefore were being targeted by spammers for over
> ten years before GitHub even existed.

Hehe.  OK, we will have to battle this out over drinks if I ever make it to 
PGCon.. but teaser: I've bankrupted Sanford Wallace and taught the DOJ what 
spam was.

>> Pedantic note/fun fact: There was no email antispam in 1994
> I like it when Magnus really gets the details perfect when making a deadpan
> joke.

Dammit.  I *fail*.

> Anyway, back to serious talk, I believe GitHub is a dead end here because
> the "primary key" as it were for issues is a repo. A bug tracker for
> PostgreSQL would need to have issues broken down per branch and include
> information similar to the release notes for each minor point release.
> Tracking when and how a bug is backported to older versions is one hard part
> of the problem here.

That's a great point. Both GitHub and git itself have no real concept of 
releases, and can't tell you when a commit made it in.

Although.. there's some sort of new release-note functionality. Maybe I'll 
play and see if it'd be applicable here.

Jay


Re: Bug tracker tool we need

From
Tom Lane
Date:
Jay Levitt <jay.levitt@gmail.com> writes:
> Greg Smith wrote:
>> Tracking when and how a bug is backported to older versions is one hard part
>> of the problem here.

> That's a great point. Both GitHub and git itself have no real concept of 
> releases, and can't tell you when a commit made it in.

We do actually have a somewhat-workable solution for that, see
src/tools/git_changelog.  It relies on cooperation of the committers
to commit related patches with the same commit message and more or
less the same commit time, but that fits fairly well with our practices
anyway.  If we did have an issue tracker I could see expecting commit
messages to include a reference to the issue number, and then it would
not be hard to adapt this program to key on that instead of matching
commit message texts.
        regards, tom lane


Re: Bug tracker tool we need

From
Andrew Dunstan
Date:

On 04/17/2012 04:38 PM, Tom Lane wrote:
> Jay Levitt<jay.levitt@gmail.com>  writes:
>> Greg Smith wrote:
>>> Tracking when and how a bug is backported to older versions is one hard part
>>> of the problem here.
>> That's a great point. Both GitHub and git itself have no real concept of
>> releases, and can't tell you when a commit made it in.
> We do actually have a somewhat-workable solution for that, see
> src/tools/git_changelog.  It relies on cooperation of the committers
> to commit related patches with the same commit message and more or
> less the same commit time, but that fits fairly well with our practices
> anyway.  If we did have an issue tracker I could see expecting commit
> messages to include a reference to the issue number, and then it would
> not be hard to adapt this program to key on that instead of matching
> commit message texts.
>
>             


Yeah, that would be good.

BTW, since we're discussing trackers yet again, let me put in a plug for 
Bugzilla, which has mature Postgres support, is written in Perl (which a 
large number of hackers are familiar with and which we use extensively), 
has a long history and a large organization behind it (Mozilla) and last 
but not least has out of the box support for creating updating and 
closing bugs via email (I just set up an instance of the latest release 
with this enabled to assure myself that it works, and it does.) It also 
has XML-RPC and JSON-RPC interfaces, as well as standard browser 
support, although I have not tested the RPC interfaces.

cheers

andrew




Re: Bug tracker tool we need

From
Christopher Browne
Date:
On Tue, Apr 17, 2012 at 4:15 PM, Jay Levitt <jay.levitt@gmail.com> wrote:
> That's a great point. Both GitHub and git itself have no real concept of
> releases, and can't tell you when a commit made it in.

Those factors likely play together in this.

Git is a tool, not a workflow, and intentionally allows its users to
use it in a variety of ways.  (Which includes some very interesting
pathologies visible with stuff like git-annex, git-mail.)

It's not a bug that git can do things differently than the Postgres
project wants things done.

Likewise, it's not a bug that github, which intends to support all
kinds of users using git, does not enforce the preferred Postgres
workflow.

I think it's pretty *normal* that we'd need tooling that won't be
identical to (say) GitHub, and we shouldn't get too exercised about
this.

I wonder if our "fix" instead involves:
a) Adding an ArchiveOpteryx instance to archive mailing list traffic;
http://archiveopteryx.org/
b) A bit more tooling to make it easier to link to threads in that instance
c) Perhaps some management tools based on debbugs to ease scripting of
issues being tracked

That's not prescriptive; just ideas.
-- 
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"


Re: Bug tracker tool we need

From
Robert Haas
Date:
On Tue, Apr 17, 2012 at 1:47 AM, Magnus Hagander <magnus@hagander.net> wrote:
> That's probably one reason people aren't jumping on this. Because
> there is no tracker out there that people actually *like*...

I think this is a point worth serious thought.  The bug trackers I've
used have been mostly terrible; saying that they are to bug tracking
what CVS is to version control is insulting CVS.  They're more like
what editing RCS files in vi is to version control - i.e. worse than
not having version control.

To put that in practical terms, I think everyone (including people
like Tom and I) who (a) are old curmudgeons or anyway middle-aged
curmudgeons and (b) would spend much more time in bed with any system
that we adopted than the average hacker would agree that the current
system is kind of a pain.  But there is no point in replacing it with
something else unless that new thing is going to be significantly
better than what we are doing now.  And it's not entirely clear that
such a thing exists.  There are certainly people out there, and even
on this list, who will tell you that system ABC is great.  But for any
given ABC there are also people who will tell you that it's got
significant problems.  We don't need to change anything to get a
system that's got significant problems; we already have one.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Bug tracker tool we need

From
Tom Lane
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> On Tue, Apr 17, 2012 at 1:47 AM, Magnus Hagander <magnus@hagander.net> wrote:
>> That's probably one reason people aren't jumping on this. Because
>> there is no tracker out there that people actually *like*...

> I think this is a point worth serious thought.

Indeed.  The only one I've got extensive experience with is Bugzilla
(because Red Hat uses it) and I do cordially hate it.  At least some
of that is due to bureaucratic practices RH has evolved, like cloning
bugs N times for N affected releases, but I think the tool encourages
such things.  So when I read Andrew's recent suggestion that we use
Bugzilla, my immediate reaction was "egad, can't we do better?".
Maybe we can't :-(.
        regards, tom lane


Re: Bug tracker tool we need

From
"Greg Sabino Mullane"
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160


> But for any
> given ABC there are also people who will tell you that it's got
> significant problems.  We don't need to change anything to get a
> system that's got significant problems; we already have one.

Let's not let perfect be the enemy of good. In this case, *anything* 
that actually tracks bugs (and they are all quite good at that, 
if nothing else) is an improvement over what we have now, and thus, 
quite good. :)

Personally, I'm okay with, and have extensively hacked on, Bugzilla 
and RT, but anything should be fine as long as we have someone 
to take ownership.

- -- 
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 201204172131
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAk+OL/0ACgkQvJuQZxSWSshMxACeJdr+WO4ttA2mkrGLv98PTTSH
jSoAniKwQNPzokA3f0GYN8gB+hAOc0Hy
=oPn6
-----END PGP SIGNATURE-----




Re: Bug tracker tool we need

From
Robert Haas
Date:
On Tue, Apr 17, 2012 at 11:07 PM, Greg Sabino Mullane <greg@turnstep.com> wrote:
> Let's not let perfect be the enemy of good. In this case, *anything*
> that actually tracks bugs (and they are all quite good at that,
> if nothing else) is an improvement over what we have now, and thus,
> quite good. :)

I respectfully disagree.  I would rather be chained to an angry cat
for a day than have to use Bugzilla on a regular basis.  RT is better,
but the UI is still laughably bad.  Try sticking a 74-email long
thread into an RT ticket and then try to do anything with it.  Now try
in Gmail (even the new, revised, slightly-harder-to-use Gmail).  It's
not close.

> Personally, I'm okay with, and have extensively hacked on, Bugzilla
> and RT, but anything should be fine as long as we have someone
> to take ownership.

Therein lies another problem...

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Bug tracker tool we need

From
Greg Smith
Date:
On 04/17/2012 10:30 PM, Tom Lane wrote:

> Indeed.  The only one I've got extensive experience with is Bugzilla
> (because Red Hat uses it) and I do cordially hate it.  At least some
> of that is due to bureaucratic practices RH has evolved, like cloning
> bugs N times for N affected releases, but I think the tool encourages
> such things.

That's along the same lines as my comments toward Jay Levitt, that bugs 
where the fixes span multiple releases are the part nobody seems to 
handle very well.

Rather than talk about adopting one of the available torture devices, 
I'd happily consider the simplest thing possible that would be useful 
here instead.  Here's my proposed tiny tracker:

-If a bug is found in a released version, but it didn't originate on 
pgsql-bugs, send a message to that list so it gets assigned a bug id.

-Write something that consumes pgsql-bugs and dumps all bug numbers and 
their subject lines into a database.  Start them with a state of 
"Unconfirmed".

-Make commits that fix a bug reference it in one of the standard ways 
that's done by every one of these bug trackers.  Just throw "Fixes 
#6596" into the commit message.  These will probably work if a more 
serious tool is adopted, too.

-Update src/tools/git_changelog to understand these messages and produce 
a delimited file about every bug fix discovered.  Import new entries 
into another table with the bug id as the foreign key.

-Provide a command line tool to change bug state, basically a thin 
wrapper around an UPDATE statement.  Make it easy to change ranges that 
are currently "Unconfirmed" to "Not a bug", for the bug reports that 
weren't really bugs.

-When point release tagging happens, run another script that looks for 
bug fix commits since the last one, and then save that version number 
into a "fixed in" table.

-Generate a web page out of the database.

I think I've outlined that in a way that would make useful steps toward 
adopting one of the full packages, too.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Bug tracker tool we need

From
Tom Lane
Date:
Greg Smith <greg@2ndQuadrant.com> writes:
> Rather than talk about adopting one of the available torture devices, 
> I'd happily consider the simplest thing possible that would be useful 
> here instead.  Here's my proposed tiny tracker:

Wasn't Jay just muttering about "writing your own bug tracker" being an
anti-pattern?  But still, there's something in what you say, because ...

> -Make commits that fix a bug reference it in one of the standard ways 
> that's done by every one of these bug trackers.  Just throw "Fixes 
> #6596" into the commit message.  These will probably work if a more 
> serious tool is adopted, too.

... I think you'll find a lot of that data could be mined out of our
historical commit logs already.  I know I make a practice of mentioning
"bug #NNNN" whenever there is a relevant bug number, and I think other
committers do too.  It wouldn't be 100% coverage, but still, if we could
bootstrap the tracker with a few hundred old bugs, we might have
something that was immediately useful, instead of starting from scratch
and hoping it would eventually contain enough data to be useful.

At the same time, I think we'd likely be a lot better off squirting this
data into bugzilla or another standard tracker, instead of building our
own infrastructure.
        regards, tom lane


Re: Bug tracker tool we need

From
Greg Smith
Date:
On 04/17/2012 11:44 PM, Tom Lane wrote:
> At the same time, I think we'd likely be a lot better off squirting this
> data into bugzilla or another standard tracker, instead of building our
> own infrastructure.

Perhaps.  It just struck me that a lot of the custom bits needed here 
regardless could be built/added to the usual workflow bottom-up.  You 
don't have to assume that either a full tracker or something like my 
simple POC idea will show up at the end to get started.  Making goal #1 
involve just mining for the data that's already around and squirting it 
onto a web page would be a useful exercise, one that's likely to benefit 
any tracker adoption.

-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com


Re: Bug tracker tool we need

From
Brendan Jurd
Date:
On 18 April 2012 13:44, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> ... I think you'll find a lot of that data could be mined out of our
> historical commit logs already.  I know I make a practice of mentioning
> "bug #NNNN" whenever there is a relevant bug number, and I think other
> committers do too.  It wouldn't be 100% coverage, but still, if we could
> bootstrap the tracker with a few hundred old bugs, we might have
> something that was immediately useful, instead of starting from scratch
> and hoping it would eventually contain enough data to be useful.

Just as a data point, git tells me that there are 387 commits where
the commit log message matches '#\d+', and 336 where it matches 'bug
#\d+'.

Cheers,
BJ


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Wed, Apr 18, 2012 at 04:30, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Tue, Apr 17, 2012 at 1:47 AM, Magnus Hagander <magnus@hagander.net> wrote:
>>> That's probably one reason people aren't jumping on this. Because
>>> there is no tracker out there that people actually *like*...
>
>> I think this is a point worth serious thought.
>
> Indeed.  The only one I've got extensive experience with is Bugzilla
> (because Red Hat uses it) and I do cordially hate it.  At least some
> of that is due to bureaucratic practices RH has evolved, like cloning
> bugs N times for N affected releases, but I think the tool encourages
> such things.  So when I read Andrew's recent suggestion that we use
> Bugzilla, my immediate reaction was "egad, can't we do better?".
> Maybe we can't :-(.

Personally, I'd say we *already* do better than that...

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Tue, Apr 17, 2012 at 19:59, Greg Smith <greg@2ndquadrant.com> wrote:
> On 04/17/2012 09:20 AM, Jay Levitt wrote:
> Let's pick a real example from the last week of my life, where having a bug
> tracker would have helped me out.  This appears in a log:
>
> ERROR: missing chunk number 0 for toast value 1167375 in pg_toast_2619
>
> What I should be able to do here is search the bug tracker for these words
> and have it spit out an issue that looks like this

I'm snipping the actual usecase, because it's nice and deatailed, but.
I think this cleraly outlines that we need to remember that there are
*two* different patterns that people are trying tosolve with the
bugtracker.

One is the simple "someone reported a bug. track until someone fixes
it to make sure we don't miss it. Possibly even flag who is currently
working on/responsible for this bug".

The other one is for the *outsider* (sorry, Greg, in this scenario you
get to represent an outsider for once). Who comes in and wants to know
if the problem he/she has exists before, if it's fixed, and in which
versions it's fixed in.

There is some overlap, but the general usecase is drastically
different. And we do a decent enough job of the first one today,
partially because we have a few people who are very good at
remembering these things and then finding them in the list archives.
It works. However, we do very bad on the second one, IMHO.

Any tool we'd go for should aim to cover *both* usecases.

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Wed, Apr 18, 2012 at 05:44, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Greg Smith <greg@2ndQuadrant.com> writes:
>> Rather than talk about adopting one of the available torture devices,
>> I'd happily consider the simplest thing possible that would be useful
>> here instead.  Here's my proposed tiny tracker:
>
> Wasn't Jay just muttering about "writing your own bug tracker" being an
> anti-pattern?  But still, there's something in what you say, because ...

The caes where it would work to do that is if we agreed it'd be a
"tiny tracker". And not actually try to do too much. As in basicaly a
neater frontend over the mailinglist archives.

I actually started on a demo of that at one point. Currently blocked
behind the fact that we have to fix the mailinglist archives as well,
in particular the break-on-month-boundary kills any attempt to do such
a thing. Which is also being worked on, but backlogged as usual :S

I'll admit that one reason it's been sitting fairly low on the prio
list is the guaranteed months of bikeshedding that it would bring
along ;)


>> -Make commits that fix a bug reference it in one of the standard ways
>> that's done by every one of these bug trackers.  Just throw "Fixes
>> #6596" into the commit message.  These will probably work if a more
>> serious tool is adopted, too.
>
> ... I think you'll find a lot of that data could be mined out of our
> historical commit logs already.  I know I make a practice of mentioning
> "bug #NNNN" whenever there is a relevant bug number, and I think other
> committers do too.  It wouldn't be 100% coverage, but still, if we could
> bootstrap the tracker with a few hundred old bugs, we might have
> something that was immediately useful, instead of starting from scratch
> and hoping it would eventually contain enough data to be useful.

I have always considered that a *requirement*, not a neat addon.


> At the same time, I think we'd likely be a lot better off squirting this
> data into bugzilla or another standard tracker, instead of building our
> own infrastructure.

I'm somewhat doubtful.

As a first step, we should at least stick in a tracker with a
reasonable SQL schema so it's possible to extract and do smomething
with the data. IIRC, bugzilla (and others) at least used to just
concatenate all comments into a single text field, and not even keep
them apart, for example. Because clearly this whole JOIN thing is evil
and difficult. They may have fixed that by now, but what i've seen
from most trackers shows signs of people who have never seen a
database beyond an Excel sheet...

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Tom Lane
Date:
Magnus Hagander <magnus@hagander.net> writes:
> On Wed, Apr 18, 2012 at 04:30, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> So when I read Andrew's recent suggestion that we use
>> Bugzilla, my immediate reaction was "egad, can't we do better?".
>> Maybe we can't :-(.

> Personally, I'd say we *already* do better than that...

Just meditating a little ... one of my big beefs with Bugzilla is that
it shows basically a historical record of how a bug was discovered and
dealt with.  While that surely has, er, historical value, it's not that
useful to read when you want to know which bug matches your symptoms,
what the possible consequences are, which versions it was fixed in,
etc.  One particularly nasty point is that (AFAIK) it's impossible to
delete or edit incorrect comments, only to add new ones.

I wonder whether a better model would be a wiki page per bug, with
an editable description and some links to reports, commits, etc.
Not but what I hate every wiki I've ever used too ... but at least
they let you fix the information when it's wrong or unhelpful.
        regards, tom lane


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Wed, Apr 18, 2012 at 07:52, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Magnus Hagander <magnus@hagander.net> writes:
>> On Wed, Apr 18, 2012 at 04:30, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> So when I read Andrew's recent suggestion that we use
>>> Bugzilla, my immediate reaction was "egad, can't we do better?".
>>> Maybe we can't :-(.
>
>> Personally, I'd say we *already* do better than that...
>
> Just meditating a little ... one of my big beefs with Bugzilla is that
> it shows basically a historical record of how a bug was discovered and
> dealt with.  While that surely has, er, historical value, it's not that
> useful to read when you want to know which bug matches your symptoms,
> what the possible consequences are, which versions it was fixed in,
> etc.  One particularly nasty point is that (AFAIK) it's impossible to
> delete or edit incorrect comments, only to add new ones.
>
> I wonder whether a better model would be a wiki page per bug, with
> an editable description and some links to reports, commits, etc.
> Not but what I hate every wiki I've ever used too ... but at least
> they let you fix the information when it's wrong or unhelpful.

There's no reason why a bugtracker couldn't and shoulldn't make it
possible to do that. I think the reason Bugzilla doesn't goes back to
the "all comments are concatenated into a huge text field", which
means you'd have to prase that text field to get the actual data back,
instead of having it easily available...

The discussion should in that case be about whether history shoudl be
kept for each individual comment, or just thrown away...


--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Tom Lane
Date:
Magnus Hagander <magnus@hagander.net> writes:
> I think this cleraly outlines that we need to remember that there are
> *two* different patterns that people are trying tosolve with the
> bugtracker.

Yeah, remember we drifted to this topic from discussion of management of
CF patches, which might be yet a third use-case.  It's not obvious that
it's the same as tracking unfixed bugs, at least; though maybe the
requirements end up the same.

> Any tool we'd go for should aim to cover *both* usecases.

Not convinced that we should expect one tool to be good at both
(or all three) things.
        regards, tom lane


Re: Bug tracker tool we need

From
Wolfgang Wilhelm
Date:
First of all I think a bug tracker will never be a system that is somehow "loved". Bugs are things which developers hate. Bugs in a cute nice small bug house aren't nice, are they?

Question: Is there a reasonable chance from may be Tom Lane's idea of a wiki to an improved (define improvements) version which PG developers think may be useful?

Wolfgang


Von: Robert Haas <robertmhaas@gmail.com>
An: Magnus Hagander <magnus@hagander.net>
CC: Jay Levitt <jay.levitt@gmail.com>; Alex <ash@commandprompt.com>; Dimitri Fontaine <dimitri@2ndquadrant.fr>; Alvaro Herrera <alvherre@commandprompt.com>; Peter Eisentraut <peter_e@gmx.net>; Tom Lane <tgl@sss.pgh.pa.us>; Greg Smith <greg@2ndquadrant.com>; Pg Hackers <pgsql-hackers@postgresql.org>
Gesendet: 3:07 Mittwoch, 18.April 2012
Betreff: Re: [HACKERS] Bug tracker tool we need

On Tue, Apr 17, 2012 at 1:47 AM, Magnus Hagander <magnus@hagander.net> wrote:
> That's probably one reason people aren't jumping on this. Because
> there is no tracker out there that people actually *like*...

I think this is a point worth serious thought.  The bug trackers I've
used have been mostly terrible; saying that they are to bug tracking
what CVS is to version control is insulting CVS.  They're more like
what editing RCS files in vi is to version control - i.e. worse than
not having version control.

To put that in practical terms, I think everyone (including people
like Tom and I) who (a) are old curmudgeons or anyway middle-aged
curmudgeons and (b) would spend much more time in bed with any system
that we adopted than the average hacker would agree that the current
system is kind of a pain.  But there is no point in replacing it with
something else unless that new thing is going to be significantly
better than what we are doing now.  And it's not entirely clear that
such a thing exists.  There are certainly people out there, and even
on this list, who will tell you that system ABC is great.  But for any
given ABC there are also people who will tell you that it's got
significant problems.  We don't need to change anything to get a
system that's got significant problems; we already have one.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: Bug tracker tool we need

From
Alex Shulgin
Date:
Robert Haas <robertmhaas@gmail.com> writes:

> On Tue, Apr 17, 2012 at 1:47 AM, Magnus Hagander <magnus@hagander.net> wrote:
>> That's probably one reason people aren't jumping on this. Because
>> there is no tracker out there that people actually *like*...
>
> I think this is a point worth serious thought.

I wonder why do people keep complaining how their bug tracker of choice
sucks, instead of doing something about that.  I can see a few possible
factors:

a) people do like to complain, and it's easier than submitting
meaningful bug reports or feature requests, patches :-)

b) the developers don't listen to their users, which happens far too
often unfortunately

c) (I had yet another idea here, but I forgot what it was :-p)

d) a wild mix of the above

However, this doesn't imply existing tracker software cannot be improved
and more of that must be written from scratch (unless the code is
cryptic and/or is written, probably poorly, in some rarely used
programming language, and is unmaintainable.)

Also, the reasons outlined above do not pertain only to bug tracker
software somehow: any piece of software could suffer from that and I
believe many of us have seen it.

So maybe there's something fundamentally wrong with every existing bug
tracker (e.g. they don't fix bugs for you?)  Well, just kidding. ;-)

--
Alex


Re: Bug tracker tool we need

From
Robert Haas
Date:
On Wed, Apr 18, 2012 at 1:38 AM, Magnus Hagander <magnus@hagander.net> wrote:
>> At the same time, I think we'd likely be a lot better off squirting this
>> data into bugzilla or another standard tracker, instead of building our
>> own infrastructure.
>
> I'm somewhat doubtful.

Me, too.

It's very tempting to assume that the problem we're trying to solve
must already have been well-solved by someone else, and therefore we
ought to use their thing instead of inventing our own.  But that
presumes that our problem is exactly the same as other people's
problem, which may not really be true.  IME, bug trackers typically
work best when used by a tightly integrated team.  For example,
EnterpriseDB uses a bug-tracker-ish system for tracking bugs and
feature requests and another one for support requests.  Those systems
get the job done and, certainly, are better designed than Bugzilla (it
doesn't take much), but a lot of what they manage is workflow.  Person
A assigns a ticket to person B, and person B is then responsible for
taking some action, and if they don't then someone will come along and
run a report and grouse at person B for failing to take that action.
If those reports weren't run and people didn't get groused at, the
system would degenerate into utter chaos; and of course in a community
setting it's hard to imagine that any such thing could possibly occur,
since this is an all-volunteer effort.

So I think Greg has exactly the right idea: we shouldn't try to
incorporate one of these systems that aims to manage workflow; we
should just design something really simple that tracks what happened
and lets people who wish to volunteer to do so help keep that tracking
information up to date.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Bug tracker tool we need

From
Peter Eisentraut
Date:
On tis, 2012-04-17 at 10:52 -0400, Jay Levitt wrote:
> Maybe I'm confused - Magnus et al, are we talking spammy issues/issue 
> comments/etc, or are we talking more about exposed email addresses?

My github.com account currently has 4264 notifications in the inbox.
Almost all of those are spam, growing constantly.  Because of that, the
platform is currently fairly useless to me for actually communicating or
collaborating on code.



Re: Bug tracker tool we need

From
Peter Eisentraut
Date:
On ons, 2012-04-18 at 08:28 -0400, Robert Haas wrote:
> It's very tempting to assume that the problem we're trying to solve
> must already have been well-solved by someone else, and therefore we
> ought to use their thing instead of inventing our own.  But that
> presumes that our problem is exactly the same as other people's
> problem, which may not really be true.

It's also very tempting to assume the opposite. ;-)

> IME, bug trackers typically work best when used by a tightly
> integrated team.

Well, very many loosely distributed open-source projects use bug
trackers quite successfully.

> So I think Greg has exactly the right idea: we shouldn't try to
> incorporate one of these systems that aims to manage workflow;

Um, isn't half of the commitfest app about workflow?  Patch is waiting
for review, who is the reviewer, patch is waiting for author, who is the
author, patch is ready for committer, who is the committer?  And every
week or so the commitfest manager (if any) produces a report on patch
progress.  Isn't that exactly what these "workflow management" systems
provide?




Re: Bug tracker tool we need

From
Peter Eisentraut
Date:
On ons, 2012-04-18 at 13:33 +0300, Alex Shulgin wrote:
> I wonder why do people keep complaining how their bug tracker of
> choice sucks, instead of doing something about that.

Lack of time, and to some degree a lack of clarity of what they want out
of the thing.  (Most people are very clear on what they don't want.)



Re: Bug tracker tool we need

From
Robert Haas
Date:
On Wed, Apr 18, 2012 at 10:15 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
> On ons, 2012-04-18 at 08:28 -0400, Robert Haas wrote:
>> It's very tempting to assume that the problem we're trying to solve
>> must already have been well-solved by someone else, and therefore we
>> ought to use their thing instead of inventing our own.  But that
>> presumes that our problem is exactly the same as other people's
>> problem, which may not really be true.
>
> It's also very tempting to assume the opposite. ;-)

Fair enough.

>> IME, bug trackers typically work best when used by a tightly
>> integrated team.
>
> Well, very many loosely distributed open-source projects use bug
> trackers quite successfully.
>
>> So I think Greg has exactly the right idea: we shouldn't try to
>> incorporate one of these systems that aims to manage workflow;
>
> Um, isn't half of the commitfest app about workflow?  Patch is waiting
> for review, who is the reviewer, patch is waiting for author, who is the
> author, patch is ready for committer, who is the committer?  And every
> week or so the commitfest manager (if any) produces a report on patch
> progress.  Isn't that exactly what these "workflow management" systems
> provide?

Yeah, but I thought we'd veered off into a digression about tracking
bug reports.  Here's our workflow for bugs:

1. If they seem interesting, Tom fixes them.
2. Or occasionally someone else fixes them.
3. Otherwise, they drift forever in the bleakness of space.

I've been conducting the experiment for a year or two now of leaving
unresolved bug reports unread in my mailbox.  I've got over 100 such
emails now...  and some of them may not really be bugs, but nobody's
put in the work to figure that out.  It would be useful to have a
system that would keep track of which ones those are so people could
look over them and maybe get inspired to go do some bug-fixing, or at
least bug-analysis, but what good is workflow going to do us?  We
could "assign" all those bugs to people who are "supposed" to look at
them, and maybe some of those people would actually do it, but a more
likely outcome is that everybody's list of assigned issues would
slowly converge to infinity, or they'd just start closing them as
wontfix.  We don't need a system to help us ignore bug reports; our
existing process handles that with admirable efficiency.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Bug tracker tool we need

From
"Kevin Grittner"
Date:
Peter Eisentraut <peter_e@gmx.net> wrote:
> On ons, 2012-04-18 at 13:33 +0300, Alex Shulgin wrote:
>> I wonder why do people keep complaining how their bug tracker of
>> choice sucks, instead of doing something about that.
> 
> Lack of time, and to some degree a lack of clarity of what they
> want out of the thing.  (Most people are very clear on what they
> don't want.)
Personally, I haven't worked with one which had the data organized
in what I would consider a sensible and useful way.
In my view there should be a *problem* report table, to describe the
problem from a user perspective.  What the user experienced, without
any attempt to explain why.  Error messages, steps to reproduce,
environments in which it's been seen, independent confirmation of
behavior, etc.  This would be what you would primarily want to
search when you hit a bug.
There would be a separate table for an analysis of each contributing
*cause* of the observed behavior.  Describe why it caused or
contributed to the observed behavior.  There should be a list of
these which exist independently of the problem statement, so that
you can reference several causes for a problem report, and the cause
can be linked from multiple reports.  Each cause should include a
separate section for user-oriented explanation of what to do when
confronted by this issue -- limitations, workarounds, alternative
approaches, documentation to read, etc.  Each cause should maybe
have a "Not a bug" check-box.  Through a table linking problems to
causes, not only could one easily look at all the contributing
causes for a problem report, but all the problem reports with a
given cause.  In a field separate from the analysis, there could be
a summary of what the community consensus on a solution is.
Each cause should have a (possibly empty) *task* list describing
what would need to be done by the community for resolution.  Tasks
would exist independently of problem statements or cause analysis
and could be shared among various causes.  (Of course, this being a
relational database, one could easily find the related problem and
cause rows that a to-do addressed.)
I'm less clear on how work-flow management and resolution data would
tie in, but it seems like there's plenty to attach that to.  The
muddling of problem description, cause analysis, solution design,
tasks needed for correction, and assignments to tasks has been an
insurmountable problem in the systems I've used so far (although
there are a great many I've never seen, so maybe someone has this in
what I would consider a reasonable structure).  Any system which
starts with a "problem description" and "solution description" as
big text blobs and then jumps to a list of "assignments" (as one
product I have to use) is hopelessly broken from the start, IMO.
Now, possibly the problem is that other people think the above would
be horrible for them, and that there *is* no design that works for
everyone; but the above seems to me to model reality much better
than any bug-tracking system I've used so far.
And, as an aside, I think that calling an approach an anti-pattern
is too often a cheap way to avoid serious thought about an issue
which merits it, while pretending to the moral high ground.  Better
to leave that aside and stick to remarks with actual meaning and
content.  In other words, declaring something to be anti-pattern is,
IMO, an anti-pattern.
-Kevin


Re: Bug tracker tool we need

From
Andrew Dunstan
Date:

On 04/18/2012 11:29 AM, Kevin Grittner wrote:
> Peter Eisentraut<peter_e@gmx.net>  wrote:
>> On ons, 2012-04-18 at 13:33 +0300, Alex Shulgin wrote:
>>> I wonder why do people keep complaining how their bug tracker of
>>> choice sucks, instead of doing something about that.
>> Lack of time, and to some degree a lack of clarity of what they
>> want out of the thing.  (Most people are very clear on what they
>> don't want.)
>
> Personally, I haven't worked with one which had the data organized
> in what I would consider a sensible and useful way.


Part of the trouble is that the whole area is fuzzy. So any organization 
that imposes some sort of order on the data will not fit well in some 
cases. Most tracker systems have ended up either trying to cater for 
increasingly complex and varied circumstances, or staying simple and 
more or less throwing in the towel on the complexity problem.

That doesn't necessarily mean that it's not worth having a tracker, just 
that we need to recognize the limitations.

cheers

andrew




Re: Bug tracker tool we need

From
Josh Berkus
Date:
Robert, Peter, all:

>>> IME, bug trackers typically work best when used by a tightly
>>> integrated team.
>>
>> Well, very many loosely distributed open-source projects use bug
>> trackers quite successfully.

... most of them, actually.

>> Um, isn't half of the commitfest app about workflow?  Patch is waiting
>> for review, who is the reviewer, patch is waiting for author, who is the
>> author, patch is ready for committer, who is the committer?  And every
>> week or so the commitfest manager (if any) produces a report on patch
>> progress.  Isn't that exactly what these "workflow management" systems
>> provide?
> 
> Yeah, but I thought we'd veered off into a digression about tracking
> bug reports.  Here's our workflow for bugs:

I think assuming we can use the *same* tool for the CommitFests as for
tracking bug reports would be a mistake.  The workflow for both things
is very different.

> 1. If they seem interesting, Tom fixes them.
> 2. Or occasionally someone else fixes them.
> 3. Otherwise, they drift forever in the bleakness of space.

Well, that *is* a workflow, even if it's a very simple one.  And it
could (should) be handled by a very simple bug tracker with a very
simple workflow; as much as it irritates me otherwise, Bugzilla does
this with its 4-5 bug "statuses", although the whole "assignment"
approach wouldn't really work for us.  Frankly, the concept of
"assignment" doesn't work very well for OSS projects, period, in my
experience.  Often as not, it simply means that one person is ignoring
the bug instead of a whole group of people.

So a simple bug tracker which has four statuses (
"Submitted","Verified","Fixed","Invalid") would describe our entire bug
workflow.  Pretty much every bugtracker available can do this minimal
level of bug tracking.

BTW, given our heavy reliance on email, let me put a word in here for
RT, which is 100% email-driven.  RT has other limitations, but if your
goal is to never log into a web interface, it's hard to beat.

> wontfix.  We don't need a system to help us ignore bug reports; our
> existing process handles that with admirable efficiency.

I think I have this year's pgCon T-Shirt quote. ;-)

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


Re: Bug tracker tool we need

From
Christopher Browne
Date:
On Wed, Apr 18, 2012 at 1:08 PM, Josh Berkus <josh@agliodbs.com> wrote:
>> 3. Otherwise, they drift forever in the bleakness of space.

Seems to me that this line, is pretty close to being T-shirt-worthy.

> wontfix.  We don't need a system to help us ignore bug reports; our
>> existing process handles that with admirable efficiency.
>
> I think I have this year's pgCon T-Shirt quote. ;-)

Not bad, sir, not bad...
--
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"


Re: Bug tracker tool we need

From
Stefan Kaltenbrunner
Date:
On 04/17/2012 11:29 PM, Andrew Dunstan wrote:
> 
> 
> On 04/17/2012 04:38 PM, Tom Lane wrote:
>> Jay Levitt<jay.levitt@gmail.com>  writes:
>>> Greg Smith wrote:
>>>> Tracking when and how a bug is backported to older versions is one
>>>> hard part
>>>> of the problem here.
>>> That's a great point. Both GitHub and git itself have no real concept of
>>> releases, and can't tell you when a commit made it in.
>> We do actually have a somewhat-workable solution for that, see
>> src/tools/git_changelog.  It relies on cooperation of the committers
>> to commit related patches with the same commit message and more or
>> less the same commit time, but that fits fairly well with our practices
>> anyway.  If we did have an issue tracker I could see expecting commit
>> messages to include a reference to the issue number, and then it would
>> not be hard to adapt this program to key on that instead of matching
>> commit message texts.
>>
>>            
> 
> 
> Yeah, that would be good.
> 
> BTW, since we're discussing trackers yet again, let me put in a plug for
> Bugzilla, which has mature Postgres support, is written in Perl (which a
> large number of hackers are familiar with and which we use extensively),
> has a long history and a large organization behind it (Mozilla) and last
> but not least has out of the box support for creating updating and
> closing bugs via email (I just set up an instance of the latest release
> with this enabled to assure myself that it works, and it does.) It also
> has XML-RPC and JSON-RPC interfaces, as well as standard browser
> support, although I have not tested the RPC interfaces.

years ago when I did the PoC install for PostgreSQL i used the
RPC-Interface for replacing the bug-reporting form on the main website,
it was prett ylimited back then (especially around authentication and a
way to actually make the report show up with the reporters name (which
very likely does not have a BZ account), but all those were solvable. BZ
really has the drawback that it is kind of a monster on the featureside
and you need to invest some significant time to make the UI
understandable before you can actually present it to a wider audience.


Stefan


Re: Bug tracker tool we need

From
Robert Haas
Date:
On Wed, Apr 18, 2012 at 1:08 PM, Josh Berkus <josh@agliodbs.com> wrote:
> BTW, given our heavy reliance on email, let me put a word in here for
> RT, which is 100% email-driven.  RT has other limitations, but if your
> goal is to never log into a web interface, it's hard to beat.

If your goal is to never log into a good web interface, it's even
harder to beat.

I actually don't mind logging into a web interface to update
information.  That doesn't slow me down much, as long as I can still
also email *without* using the web interface.

Now, RT's web interface is poor.  But, if that's what everyone else
likes, I could tolerate it.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Wed, Apr 18, 2012 at 08:12, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Magnus Hagander <magnus@hagander.net> writes:
>> I think this cleraly outlines that we need to remember that there are
>> *two* different patterns that people are trying tosolve with the
>> bugtracker.
>
> Yeah, remember we drifted to this topic from discussion of management of
> CF patches, which might be yet a third use-case.  It's not obvious that
> it's the same as tracking unfixed bugs, at least; though maybe the
> requirements end up the same.
>
>> Any tool we'd go for should aim to cover *both* usecases.
>
> Not convinced that we should expect one tool to be good at both
> (or all three) things.

True.

That means that it's more important than ever that whatever tools are
used "plays well with others". Which in my experience very few of the
existing trackers out there actually do. That can of course have
changed since I last looked, but I have been very discouraged
previously when looking, both for in the postgresql context and in
others.

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Wed, Apr 18, 2012 at 16:08, Peter Eisentraut <peter_e@gmx.net> wrote:
> On tis, 2012-04-17 at 10:52 -0400, Jay Levitt wrote:
>> Maybe I'm confused - Magnus et al, are we talking spammy issues/issue
>> comments/etc, or are we talking more about exposed email addresses?
>
> My github.com account currently has 4264 notifications in the inbox.
> Almost all of those are spam, growing constantly.  Because of that, the
> platform is currently fairly useless to me for actually communicating or
> collaborating on code.

That's about the same amount that I have. And yeah, it works great for
hosting git repos. And it works great for browsing git repos and
viewing differences and networks. But anything to do with pull
requests, issues, comments or anything like that is completely useless
these days.

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Wed, Apr 18, 2012 at 19:17, Stefan Kaltenbrunner
<stefan@kaltenbrunner.cc> wrote:
> On 04/17/2012 11:29 PM, Andrew Dunstan wrote:
>>
>>
>> On 04/17/2012 04:38 PM, Tom Lane wrote:
>>> Jay Levitt<jay.levitt@gmail.com>  writes:
>>>> Greg Smith wrote:
>>>>> Tracking when and how a bug is backported to older versions is one
>>>>> hard part
>>>>> of the problem here.
>>>> That's a great point. Both GitHub and git itself have no real concept of
>>>> releases, and can't tell you when a commit made it in.
>>> We do actually have a somewhat-workable solution for that, see
>>> src/tools/git_changelog.  It relies on cooperation of the committers
>>> to commit related patches with the same commit message and more or
>>> less the same commit time, but that fits fairly well with our practices
>>> anyway.  If we did have an issue tracker I could see expecting commit
>>> messages to include a reference to the issue number, and then it would
>>> not be hard to adapt this program to key on that instead of matching
>>> commit message texts.
>>>
>>>
>>
>>
>> Yeah, that would be good.
>>
>> BTW, since we're discussing trackers yet again, let me put in a plug for
>> Bugzilla, which has mature Postgres support, is written in Perl (which a
>> large number of hackers are familiar with and which we use extensively),
>> has a long history and a large organization behind it (Mozilla) and last
>> but not least has out of the box support for creating updating and
>> closing bugs via email (I just set up an instance of the latest release
>> with this enabled to assure myself that it works, and it does.) It also
>> has XML-RPC and JSON-RPC interfaces, as well as standard browser
>> support, although I have not tested the RPC interfaces.
>
> years ago when I did the PoC install for PostgreSQL i used the
> RPC-Interface for replacing the bug-reporting form on the main website,
> it was prett ylimited back then (especially around authentication and a
> way to actually make the report show up with the reporters name (which
> very likely does not have a BZ account), but all those were solvable. BZ
> really has the drawback that it is kind of a monster on the featureside
> and you need to invest some significant time to make the UI
> understandable before you can actually present it to a wider audience.

What I saw from it, it would take more time and work to make the UI
understandable and workable, and to get it to adapt to *our* process
and workflow than to design a whole new tool from scratch...

The problem I've found with most tools is that they work reasonably
well if you let them control the entire workflow. But when you want to
do things your own way, and it doesn't match up with what they were
originally designed to do, it all comes falling down quickly...

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Andrew Dunstan
Date:

On 04/18/2012 01:26 PM, Robert Haas wrote:
> On Wed, Apr 18, 2012 at 1:08 PM, Josh Berkus<josh@agliodbs.com>  wrote:
>> BTW, given our heavy reliance on email, let me put a word in here for
>> RT, which is 100% email-driven.  RT has other limitations, but if your
>> goal is to never log into a web interface, it's hard to beat.
> If your goal is to never log into a good web interface, it's even
> harder to beat.
>
> I actually don't mind logging into a web interface to update
> information.  That doesn't slow me down much, as long as I can still
> also email *without* using the web interface.
>
> Now, RT's web interface is poor.  But, if that's what everyone else
> likes, I could tolerate it.

I think it's just frightful, TBH. And I do use the web for tracker 
interaction.

cheers

andrew


Re: Bug tracker tool we need

From
Christopher Browne
Date:
On Wed, Apr 18, 2012 at 1:48 PM, Magnus Hagander <magnus@hagander.net> wrote:
> The problem I've found with most tools is that they work reasonably
> well if you let them control the entire workflow. But when you want to
> do things your own way, and it doesn't match up with what they were
> originally designed to do, it all comes falling down quickly...

That's pretty much characteristic of the average SAP R/3 project.

If you can change the organization's business processes to follow
SAP's defined "best practices," then it's easy to install and use R/3.But that normally not being the case, every "SAP
project"winds up
 
having hideous customization costs to kludge the practices towards one
another.
-- 
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"


Re: Bug tracker tool we need

From
Susanne Ebrecht
Date:
Am 18.04.2012 14:28, schrieb Robert Haas:
> So I think Greg has exactly the right idea: we shouldn't try to 
> incorporate one of these systems that aims to manage workflow; we 
> should just design something really simple that tracks what happened 
> and lets people who wish to volunteer to do so help keep that tracking 
> information up to date. 

I tested a lot tools for bug / issue tracking and I figured out that 
almost all of them either have had
too much overhead or not really were made for database business.
Additionally more often the sentence "we support PostgreSQL" just was a 
marketing trap.
Means I figured out that the PostgreSQL support totally sucked.

My opinion is that a tool should mirror your business and not that you 
build your business around the
given tool.

Looking for a bug tracking too - there are some points that are 
mandatory for us:
1. it should run on PostgreSQL
2. it should be open source - if possible BSD license - if possible 
there shouldn't be a
single company behind it
3. it should be user friendly - no need to click here and there to get 
all informations
4. It should be able to communicate with our version control system    - when we get the idea to move away from git to
somethingelse - it 
 
should be able by just a few     changes that the tool will communicate with the new system
5. it should be possible to do almost all via email

My personal dream would be that it would be possible to do almost all 
via irc bot but that is fiction.

I think a tool should be slim and simple. It should exactly do what you 
want to do.

You should be able to change the tool code that way that it exactly is 
doing what you want to do.

Let me give you an example:
bugs.mysql.com might be far away from being perfect.
It is slim - and on developer side it has had all that the development 
needed.
My information is that originally they took the code from the php bug 
tracking system and
recoded it / implemented features so that it was doing a good job on 
database bugs.
When the developers needed tool changes or additionally features then 
they just were coded.
I never heard a developer saying that he hates the system. There just 
were lots of ideas how
this or that could be solved better. That is normal - when you are 
working with the tool every
day - of course you will get ideas what could be solved better.

So yes - I think Greg is right. We should design something really simple 
that exactly is doing
what we need. With some luck we might not need to start from scratch. 
Maybe there is a tool
outside that is slim and good enough to deliver the base code on which 
we can start recoding.

Just my 2ct,

Susanne

-- 
Dipl. Inf. Susanne Ebrecht - 2ndQuadrant
PostgreSQL Development, 24x7 Support, Training and Services
www.2ndQuadrant.com



Re: Bug tracker tool we need

From
Alvaro Herrera
Date:
Excerpts from Tom Lane's message of mié abr 18 03:12:09 -0300 2012:
>
> Magnus Hagander <magnus@hagander.net> writes:
> > I think this cleraly outlines that we need to remember that there are
> > *two* different patterns that people are trying tosolve with the
> > bugtracker.
>
> Yeah, remember we drifted to this topic from discussion of management of
> CF patches, which might be yet a third use-case.  It's not obvious that
> it's the same as tracking unfixed bugs, at least; though maybe the
> requirements end up the same.
>
> > Any tool we'd go for should aim to cover *both* usecases.
>
> Not convinced that we should expect one tool to be good at both
> (or all three) things.

So maybe we need more than one tool to present the information to
different kinds of users, but we need only *one* database backing them
all, right?

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


Re: Bug tracker tool we need

From
"Greg Sabino Mullane"
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160


> So I think Greg has exactly the right idea: we shouldn't try to 
> incorporate one of these systems that aims to manage workflow; we 
> should just design something really simple that tracks what happened 
> and lets people who wish to volunteer to do so help keep that tracking 
> information up to date. 

Note: the above is the other Greg :)

If we are serious about building this ourselves, and we feel it 
is important, maybe we should sponsor it via our group funds or 
some other means? Seems like everyone here has lots of ideas but 
little free time.

- -- 
Greg Sabino Mullane greg@turnstep.com
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201204191031
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAk+QIeUACgkQvJuQZxSWSsi5NACg4ruX3jvuQ5zKnxbBPu2Kc9wW
C+EAoPsIt2n0bbYau/aPhPbVdm+JPHj3
=j1XN
-----END PGP SIGNATURE-----




Re: Bug tracker tool we need

From
"Greg Sabino Mullane"
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160


>> My github.com account currently has 4264 notifications in the inbox.
>> Almost all of those are spam, growing constantly. �Because of that, the
>> platform is currently fairly useless to me for actually communicating or
>> collaborating on code.
>
> That's about the same amount that I have.

I have no spam at all, despite being a fairly early github adopter. 
Wonder what the difference is?

- -- 
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 201204191044
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAk+QJO4ACgkQvJuQZxSWSsg7OgCggq2MVw10W2+XxCyoDSdbjTYP
JOAAoLVJeX/V5j1h8r0dpvyJAw9/O+BU
=puT/
-----END PGP SIGNATURE-----




Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Thu, Apr 19, 2012 at 16:45, Greg Sabino Mullane <greg@turnstep.com> wrote:
>
>>> My github.com account currently has 4264 notifications in the inbox.
>>> Almost all of those are spam, growing constantly. �Because of that, the
>>> platform is currently fairly useless to me for actually communicating or
>>> collaborating on code.
>>
>> That's about the same amount that I have.
>
> I have no spam at all, despite being a fairly early github adopter.
> Wonder what the difference is?

The vast majority of the spam I have originates in the postgresql git
repository. You don't have any commits there...

But I would've assumed it should hit equally hard on other
repositories that's been around a long time.

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Christopher Browne
Date:
On Thu, Apr 19, 2012 at 10:49 AM, Magnus Hagander <magnus@hagander.net> wrote:
> On Thu, Apr 19, 2012 at 16:45, Greg Sabino Mullane <greg@turnstep.com> wrote:
>>
>>>> My github.com account currently has 4264 notifications in the inbox.
>>>> Almost all of those are spam, growing constantly. �Because of that, the
>>>> platform is currently fairly useless to me for actually communicating or
>>>> collaborating on code.
>>>
>>> That's about the same amount that I have.
>>
>> I have no spam at all, despite being a fairly early github adopter.
>> Wonder what the difference is?
>
> The vast majority of the spam I have originates in the postgresql git
> repository. You don't have any commits there...
>
> But I would've assumed it should hit equally hard on other
> repositories that's been around a long time.

I have plenty of commits on the Slony Git repo, which has had clones
at github for about as long as PostgreSQL has.

And I don't get any noticeable amounts of spam at github.  Not all
notifications are hugely interesting, but I don't see anything that's
not reasonably related to things I have commented on.

So I think there has to be some other effect in play.
--
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"


Re: Bug tracker tool we need

From
Andrew Dunstan
Date:

On 04/19/2012 11:25 AM, Christopher Browne wrote:
>>
>> The vast majority of the spam I have originates in the postgresql git
>> repository. You don't have any commits there...
>>
>> But I would've assumed it should hit equally hard on other
>> repositories that's been around a long time.
> I have plenty of commits on the Slony Git repo, which has had clones
> at github for about as long as PostgreSQL has.
>
> And I don't get any noticeable amounts of spam at github.  Not all
> notifications are hugely interesting, but I don't see anything that's
> not reasonably related to things I have commented on.
>
> So I think there has to be some other effect in play.

The spammers pick certain well known projects, I believe.

At any rate, I found that my spam went to nil by turning off 
notifications for comments on my commits and comments that mention me.


cheers

andrew


Re: Bug tracker tool we need

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
> At any rate, I found that my spam went to nil by turning off 
> notifications for comments on my commits and comments that mention me.

The first part of that seems like it would destroy most of the point
of having the mechanism at all?
        regards, tom lane


Re: Bug tracker tool we need

From
Andrew Dunstan
Date:

On 04/19/2012 03:05 PM, Tom Lane wrote:
> Andrew Dunstan<andrew@dunslane.net>  writes:
>> At any rate, I found that my spam went to nil by turning off
>> notifications for comments on my commits and comments that mention me.
> The first part of that seems like it would destroy most of the point
> of having the mechanism at all?
>
>             


Yes, the notification piece is pretty much useless, because of the spammers.

I use github as a convenient place to stash public repositories (e.g. 
buildfarm code), and PostgreSQL Experts uses it for both public and 
private repos, but if people want me to get their comments they need to 
go to the trouble of emailing me.

cheers

andrew


Re: Bug tracker tool we need

From
Bruce Momjian
Date:
On Wed, Apr 18, 2012 at 05:08:06PM +0300, Peter Eisentraut wrote:
> On tis, 2012-04-17 at 10:52 -0400, Jay Levitt wrote:
> > Maybe I'm confused - Magnus et al, are we talking spammy issues/issue 
> > comments/etc, or are we talking more about exposed email addresses?
> 
> My github.com account currently has 4264 notifications in the inbox.
> Almost all of those are spam, growing constantly.  Because of that, the
> platform is currently fairly useless to me for actually communicating or
> collaborating on code.

FYI, I just looked and my notification counter brown popup box has an
infinity symbol in it:
https://github.com/inbox/notifications

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


Re: Bug tracker tool we need

From
Bruce Momjian
Date:
On Wed, Apr 18, 2012 at 10:29:26AM -0400, Robert Haas wrote:
> >> IME, bug trackers typically work best when used by a tightly
> >> integrated team.
> >
> > Well, very many loosely distributed open-source projects use bug
> > trackers quite successfully.
> >
> >> So I think Greg has exactly the right idea: we shouldn't try to
> >> incorporate one of these systems that aims to manage workflow;
> >
> > Um, isn't half of the commitfest app about workflow?  Patch is waiting
> > for review, who is the reviewer, patch is waiting for author, who is the
> > author, patch is ready for committer, who is the committer?  And every
> > week or so the commitfest manager (if any) produces a report on patch
> > progress.  Isn't that exactly what these "workflow management" systems
> > provide?
> 
> Yeah, but I thought we'd veered off into a digression about tracking
> bug reports.  Here's our workflow for bugs:
> 
> 1. If they seem interesting, Tom fixes them.
> 2. Or occasionally someone else fixes them.
> 3. Otherwise, they drift forever in the bleakness of space.
> 
> I've been conducting the experiment for a year or two now of leaving
> unresolved bug reports unread in my mailbox.  I've got over 100 such
> emails now...  and some of them may not really be bugs, but nobody's
> put in the work to figure that out.  It would be useful to have a

I saved this email from April and have given it some thought.  I decided
to approach it by looking at our current workflow, then deciding what
the problems were, rather than approaching it with "we need a bug
tracker".

I started by drawing a diagram of our current development process:
http://momjian.us/main/writings/pgsql/work_flow.pdf

I did this so I could see the weaknesses.

First, the left and right sides are what our users see, and the middle
is controlled by developers.  

Looking at the chart, the three sections, left, middle, and right, seem
to work fine in isolation.  Our interaction with bug reporters is very
good, our development flow seems fine, and people are certainly happy
with the quality of our releases.  Yes, there are problems, like the
ability of patches to get lost, but in general, things are good.

I think our big gap is in integrating these sections.  There is no easy
way for a bug reporter to find out what happens to his report unless the
patch is applied in the same email thread as the report.  It is hard for
users to see _all_ the changes made in a release because the release
notes are filtered.

Our current system is designed to have very limited friction of action,
and this give us a high-quality user experience and release quality, but
it does have limits in how well we deal with complex cases.

OK, now for the question about a bug tracker.  A bug tracker would
provide a track-able contact for everyone reporting a bug, and allow
them to see exactly what release fixes the bug (in an ideal world).  It
also allows for more detailed reporting of what is each release.  

For me, the big problem with a bug trackers is that it adds so much
friction to the development process, meaning fewer people are involved
and less work gets done.  If you have company-sponsored development, you
can just hire more people to overcome that friction, but for volunteer
development, I am not sure a bug tracker really works well, and given
the chaotic content in almost every bug tracker database, I think that
is true.

So, my question is, what can we do to better integrate these sections? 
Assign a bug number on email that gets stamped on the commit and release
note item?  Add email notification of commits somehow?  Should we
publish the entire git log for each release?

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


Re: Bug tracker tool we need

From
Daniel Farina
Date:
On Fri, Jul 6, 2012 at 12:21 PM, Bruce Momjian <bruce@momjian.us> wrote:
> I think our big gap is in integrating these sections.  There is no easy
> way for a bug reporter to find out what happens to his report unless the
> patch is applied in the same email thread as the report.  It is hard for
> users to see _all_ the changes made in a release because the release
> notes are filtered.
>
> Our current system is designed to have very limited friction of action,
> and this give us a high-quality user experience and release quality, but
> it does have limits in how well we deal with complex cases.

I do basically agree with this.  I was reflecting on the bug tracker
issue (or lack thereof) for unrelated reasons earlier today and I
think there are some very nice things to recommend the current
email-based system, which are the reasons you identify above.  Perhaps
the area where it falls down is structured searches (such as for
"closed" or "wontfix") and tracking progress of related, complex, or
multi-part issues that span multiple root email messages.

Maybe just using the message-ids to cross reference things (or at
least morally: perhaps a point of indirection as to collapse multiple
bug reports about the same thing, or to provide a place to add more
annotation would be good, not unlike the CommitFest web application in
relation to emails) is enough.  Basically, perhaps an overlay
on-top-of email might be a more supple way to figure out what process
improvements work well without committing to a whole new tool chain
and workflow all at once.

-- 
fdr


Re: Bug tracker tool we need

From
Bruce Momjian
Date:
On Fri, Jul 06, 2012 at 03:41:41PM -0700, Daniel Farina wrote:
> On Fri, Jul 6, 2012 at 12:21 PM, Bruce Momjian <bruce@momjian.us> wrote:
> > I think our big gap is in integrating these sections.  There is no easy
> > way for a bug reporter to find out what happens to his report unless the
> > patch is applied in the same email thread as the report.  It is hard for
> > users to see _all_ the changes made in a release because the release
> > notes are filtered.
> >
> > Our current system is designed to have very limited friction of action,
> > and this give us a high-quality user experience and release quality, but
> > it does have limits in how well we deal with complex cases.
> 
> I do basically agree with this.  I was reflecting on the bug tracker
> issue (or lack thereof) for unrelated reasons earlier today and I
> think there are some very nice things to recommend the current
> email-based system, which are the reasons you identify above.  Perhaps
> the area where it falls down is structured searches (such as for
> "closed" or "wontfix") and tracking progress of related, complex, or
> multi-part issues that span multiple root email messages.

I normally assume "friction" is just something that slows you down from
attaining a goal, but open source development is only _possible_ because
of the low friction communication available via the Internet.  It isn't
that open source development would be slower --- it would probably not
exist in its current form (think shareware diskettes for an
alternative).

So, while it is hopeful to think of a bug trackers as just slowing us
down, it might really alter our ability to develop software.  Yes, I
know most other projects use bug trackers, but I doubt their development
and user interactions are the same quality as ours.  On the flip side,
for complex cases, some of our user interactions are terrible.

> Maybe just using the message-ids to cross reference things (or at
> least morally: perhaps a point of indirection as to collapse multiple
> bug reports about the same thing, or to provide a place to add more
> annotation would be good, not unlike the CommitFest web application in
> relation to emails) is enough.  Basically, perhaps an overlay
> on-top-of email might be a more supple way to figure out what process
> improvements work well without committing to a whole new tool chain
> and workflow all at once.

I know there is work to allow cross-month email archive threading, and
that might help.  

I feel we have to be honest in what our current development process does
poorly.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


Re: Bug tracker tool we need

From
Christopher Browne
Date:
<p>I wonder if maybe the nearest step towards "better bug tracker" is a more readily referenceable mail archive.
<p>Clearly,one of our "frictions" is searching for relevant messages, so improved mail archive ==  lowered friction,
no?<p>There'sa very particular use case; people keep rueing that indexes get cut off on a monthly basis.  That's
doubtlessnot the only pain, but it keeps getting mentioned, so solving it seems valuable.<p>Having a correlation
betweencommits, commitfest entries, and associated email seems like another valuable addition.<p>Perhaps there are
more... I'm not yet poking at anything that would suggest "email database", either.<p>A lot of the analysis would be
morenetwork-oriented; putting more of a Prolog hat on, not so much tabular / relational ... 

Re: Bug tracker tool we need

From
Bruce Momjian
Date:
On Fri, Jul 06, 2012 at 08:44:13PM -0400, Christopher Browne wrote:
> I wonder if maybe the nearest step towards "better bug tracker" is a more
> readily referenceable mail archive.
> 
> Clearly, one of our "frictions" is searching for relevant messages, so improved
> mail archive ==  lowered friction, no?
> 
> There's a very particular use case; people keep rueing that indexes get cut off
> on a monthly basis.  That's doubtless not the only pain, but it keeps getting
> mentioned, so solving it seems valuable.

Agreed.  I think Magnus is working on having the threads span months. 
The big question is what are we going to do with this ability once we
get it.

> Having a correlation between commits, commitfest entries, and associated email
> seems like another valuable addition.

Yep.

> Perhaps there are more...  I'm not yet poking at anything that would suggest
> "email database", either.
> 
> A lot of the analysis would be more network-oriented; putting more of a Prolog
> hat on, not so much tabular / relational ...

To put a finer point on this, I think projects that interact with users
via a bug tracker have much poorer user/developer communication, and
also less impetus to fix bugs quickly, because it is already recorded in
the tracker.  And after not dealing with bugs immediately for a while,
the bug database becomes huge, and developers can only triage the
database, fixing commonly-reported bugs, and leaving the rest for later,
which effectively means never.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


Re: Bug tracker tool we need

From
Robert Haas
Date:
On Fri, Jul 6, 2012 at 6:41 PM, Daniel Farina <daniel@heroku.com> wrote:
> I do basically agree with this.  I was reflecting on the bug tracker
> issue (or lack thereof) for unrelated reasons earlier today and I
> think there are some very nice things to recommend the current
> email-based system, which are the reasons you identify above.  Perhaps
> the area where it falls down is structured searches (such as for
> "closed" or "wontfix") and tracking progress of related, complex, or
> multi-part issues that span multiple root email messages.
>
> Maybe just using the message-ids to cross reference things (or at
> least morally: perhaps a point of indirection as to collapse multiple
> bug reports about the same thing, or to provide a place to add more
> annotation would be good, not unlike the CommitFest web application in
> relation to emails) is enough.  Basically, perhaps an overlay
> on-top-of email might be a more supple way to figure out what process
> improvements work well without committing to a whole new tool chain
> and workflow all at once.

+1.  This is almost word-for-word how I feel about it myself.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Sat, Jul 7, 2012 at 1:46 AM, Bruce Momjian <bruce@momjian.us> wrote:
> On Fri, Jul 06, 2012 at 03:41:41PM -0700, Daniel Farina wrote:
>> On Fri, Jul 6, 2012 at 12:21 PM, Bruce Momjian <bruce@momjian.us> wrote:
>> > I think our big gap is in integrating these sections.  There is no easy
>> > way for a bug reporter to find out what happens to his report unless the
>> > patch is applied in the same email thread as the report.  It is hard for
>> > users to see _all_ the changes made in a release because the release
>> > notes are filtered.
>> >
>> > Our current system is designed to have very limited friction of action,
>> > and this give us a high-quality user experience and release quality, but
>> > it does have limits in how well we deal with complex cases.
>>
>> I do basically agree with this.  I was reflecting on the bug tracker
>> issue (or lack thereof) for unrelated reasons earlier today and I
>> think there are some very nice things to recommend the current
>> email-based system, which are the reasons you identify above.  Perhaps
>> the area where it falls down is structured searches (such as for
>> "closed" or "wontfix") and tracking progress of related, complex, or
>> multi-part issues that span multiple root email messages.
>
> I normally assume "friction" is just something that slows you down from
> attaining a goal, but open source development is only _possible_ because
> of the low friction communication available via the Internet.  It isn't
> that open source development would be slower --- it would probably not
> exist in its current form (think shareware diskettes for an
> alternative).

I've never thought of it in terms of "friction", but I think that term
makes a lot of sense. And it sums up pretty much one of the things
that I find the most annoying with the commitfest app - in the end it
boils down to the same thing. I find it annoying that whenever someone
posts a new review or new comments, one has to *also* go into the CF
app and add them there. Which leads to a lot of friction, which in
turn leads to people not actually putting their comments in there,
which decreases the value of the tool.

Don't get me wrong - the cf app is a huge step up from no app at all.
But it's just not done yet.


>> Maybe just using the message-ids to cross reference things (or at
>> least morally: perhaps a point of indirection as to collapse multiple
>> bug reports about the same thing, or to provide a place to add more
>> annotation would be good, not unlike the CommitFest web application in
>> relation to emails) is enough.  Basically, perhaps an overlay
>> on-top-of email might be a more supple way to figure out what process
>> improvements work well without committing to a whole new tool chain
>> and workflow all at once.
>
> I know there is work to allow cross-month email archive threading, and
> that might help.

Yup, it's being worked on.

FWIW, somewhere there's a piece of bugtracker code in a dusty corner
that I once wrote that was intended as a prototype for something
sitting as this "thin overlay on top of email". It worked reasonably
well, and then crashed and burned when it came to the cross-month
thread splitting.

Once that is fixed (and unlike most times before (yes, there are
exceptions) it's being actively worked on right now), it could be
dusted off again - or something else could be built on top of that
capability.


> I feel we have to be honest in what our current development process does
> poorly.

+1.

-- Magnus HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Martijn van Oosterhout
Date:
On Sat, Jul 07, 2012 at 11:36:41AM +0200, Magnus Hagander wrote:
> I've never thought of it in terms of "friction", but I think that term
> makes a lot of sense. And it sums up pretty much one of the things
> that I find the most annoying with the commitfest app - in the end it
> boils down to the same thing. I find it annoying that whenever someone
> posts a new review or new comments, one has to *also* go into the CF
> app and add them there. Which leads to a lot of friction, which in
> turn leads to people not actually putting their comments in there,
> which decreases the value of the tool.
>
> Don't get me wrong - the cf app is a huge step up from no app at all.
> But it's just not done yet.

Well, if that's the issue then there are well known solutions to that.
Give each commitfest entry a tag, say, CF#8475 and add a bot to the
mail server that examines each email for this tag and if found adds it
to the CF app.

This could then easily track commit messages, emails on mailing list
and even bug reports.  (For example, someone replys to a bug report
with "See CF#8484" and then a reference to the bug thread gets pushed
into the CF app.)

It's also a searchable identifier, which is also useful for google.

We do this at my work, it's a very low barrier method of linking
different systems.

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> He who writes carelessly confesses thereby at the very outset that he does
> not attach much importance to his own thoughts.  -- Arthur Schopenhauer

Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Sat, Jul 7, 2012 at 12:48 PM, Martijn van Oosterhout
<kleptog@svana.org> wrote:
> On Sat, Jul 07, 2012 at 11:36:41AM +0200, Magnus Hagander wrote:
>> I've never thought of it in terms of "friction", but I think that term
>> makes a lot of sense. And it sums up pretty much one of the things
>> that I find the most annoying with the commitfest app - in the end it
>> boils down to the same thing. I find it annoying that whenever someone
>> posts a new review or new comments, one has to *also* go into the CF
>> app and add them there. Which leads to a lot of friction, which in
>> turn leads to people not actually putting their comments in there,
>> which decreases the value of the tool.
>>
>> Don't get me wrong - the cf app is a huge step up from no app at all.
>> But it's just not done yet.
>
> Well, if that's the issue then there are well known solutions to that.
> Give each commitfest entry a tag, say, CF#8475 and add a bot to the
> mail server that examines each email for this tag and if found adds it
> to the CF app.

So now you moved the friction over to the initial submitter instead,
because he/she how has to get this tag before posting the patch in the
first place. And this would need to happen before it's even known if
this needs to go on a CF or will just be approved/rejected directly
without even getting there.

That's not to say it's a horrible idea, it's just to say that things
are never as easy as they first look.

BTW, the *bigger* issue with this path is that now we suddenly have
different kinds of identifiers for different things. So you have a bug
id, and a cf id, and they are different things. So you're going to end
up tagging things with multiple id's. etc. That part goes to show that
we cannot just "solve" this in one part of the workflow. We can put in
useful workarounds that go pretty far - like the cf app - but we
cannot get the "complete solution". OTOH, maybe we never can get the
complete solution, but we should work hard at not locking into
something else.


> This could then easily track commit messages, emails on mailing list
> and even bug reports.  (For example, someone replys to a bug report
> with "See CF#8484" and then a reference to the bug thread gets pushed
> into the CF app.)

All of these things are already "emails on mailing lists", after all...


> It's also a searchable identifier, which is also useful for google.

Yes, I agree that having a searchable and *referencable* identifier is
a good thing. In fact, one of the main reasons to do something like
this. Right now we just tell people "look in the archives", and that
doesn't work. Heck, *I* search them quite often and I still don't
understand how some people can find things so quickly :)

-- Magnus HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Bruce Momjian
Date:
On Sat, Jul 07, 2012 at 11:36:41AM +0200, Magnus Hagander wrote:
> >> I do basically agree with this.  I was reflecting on the bug tracker
> >> issue (or lack thereof) for unrelated reasons earlier today and I
> >> think there are some very nice things to recommend the current
> >> email-based system, which are the reasons you identify above.  Perhaps
> >> the area where it falls down is structured searches (such as for
> >> "closed" or "wontfix") and tracking progress of related, complex, or
> >> multi-part issues that span multiple root email messages.
> >
> > I normally assume "friction" is just something that slows you down from
> > attaining a goal, but open source development is only _possible_ because
> > of the low friction communication available via the Internet.  It isn't
> > that open source development would be slower --- it would probably not
> > exist in its current form (think shareware diskettes for an
> > alternative).
> 
> I've never thought of it in terms of "friction", but I think that term
> makes a lot of sense. And it sums up pretty much one of the things
> that I find the most annoying with the commitfest app - in the end it
> boils down to the same thing. I find it annoying that whenever someone
> posts a new review or new comments, one has to *also* go into the CF
> app and add them there. Which leads to a lot of friction, which in
> turn leads to people not actually putting their comments in there,
> which decreases the value of the tool.

For me, we can't just say that our process is the the way it is because
we have always done it that way, or because we are too lazy to change
it.  I think most of us have a gut feeling that our process is good, but
we have to have some logic behind why we are doing things differently
than most other projects, I think "friction" does explain a lot of it.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


Re: Bug tracker tool we need

From
Bruce Momjian
Date:
On Sat, Jul 07, 2012 at 12:59:02PM +0200, Magnus Hagander wrote:
> On Sat, Jul 7, 2012 at 12:48 PM, Martijn van Oosterhout
> <kleptog@svana.org> wrote:
> > On Sat, Jul 07, 2012 at 11:36:41AM +0200, Magnus Hagander wrote:
> >> I've never thought of it in terms of "friction", but I think that term
> >> makes a lot of sense. And it sums up pretty much one of the things
> >> that I find the most annoying with the commitfest app - in the end it
> >> boils down to the same thing. I find it annoying that whenever someone
> >> posts a new review or new comments, one has to *also* go into the CF
> >> app and add them there. Which leads to a lot of friction, which in
> >> turn leads to people not actually putting their comments in there,
> >> which decreases the value of the tool.
> >>
> >> Don't get me wrong - the cf app is a huge step up from no app at all.
> >> But it's just not done yet.
> >
> > Well, if that's the issue then there are well known solutions to that.
> > Give each commitfest entry a tag, say, CF#8475 and add a bot to the
> > mail server that examines each email for this tag and if found adds it
> > to the CF app.
> 
> So now you moved the friction over to the initial submitter instead,
> because he/she how has to get this tag before posting the patch in the
> first place. And this would need to happen before it's even known if
> this needs to go on a CF or will just be approved/rejected directly
> without even getting there.
> 
> That's not to say it's a horrible idea, it's just to say that things
> are never as easy as they first look.
> 
> BTW, the *bigger* issue with this path is that now we suddenly have
> different kinds of identifiers for different things. So you have a bug
> id, and a cf id, and they are different things. So you're going to end
> up tagging things with multiple id's. etc. That part goes to show that
> we cannot just "solve" this in one part of the workflow. We can put in
> useful workarounds that go pretty far - like the cf app - but we
> cannot get the "complete solution". OTOH, maybe we never can get the
> complete solution, but we should work hard at not locking into
> something else.

Yes, we would almost need to number each incoming email, and use that
reference all the way through to the release note item text. or at least
a searchable git log of the release note commits.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Sat, Jul 7, 2012 at 4:42 PM, Bruce Momjian <bruce@momjian.us> wrote:
> On Sat, Jul 07, 2012 at 12:59:02PM +0200, Magnus Hagander wrote:
>> On Sat, Jul 7, 2012 at 12:48 PM, Martijn van Oosterhout
>> <kleptog@svana.org> wrote:
>> > On Sat, Jul 07, 2012 at 11:36:41AM +0200, Magnus Hagander wrote:
>> >> I've never thought of it in terms of "friction", but I think that term
>> >> makes a lot of sense. And it sums up pretty much one of the things
>> >> that I find the most annoying with the commitfest app - in the end it
>> >> boils down to the same thing. I find it annoying that whenever someone
>> >> posts a new review or new comments, one has to *also* go into the CF
>> >> app and add them there. Which leads to a lot of friction, which in
>> >> turn leads to people not actually putting their comments in there,
>> >> which decreases the value of the tool.
>> >>
>> >> Don't get me wrong - the cf app is a huge step up from no app at all.
>> >> But it's just not done yet.
>> >
>> > Well, if that's the issue then there are well known solutions to that.
>> > Give each commitfest entry a tag, say, CF#8475 and add a bot to the
>> > mail server that examines each email for this tag and if found adds it
>> > to the CF app.
>>
>> So now you moved the friction over to the initial submitter instead,
>> because he/she how has to get this tag before posting the patch in the
>> first place. And this would need to happen before it's even known if
>> this needs to go on a CF or will just be approved/rejected directly
>> without even getting there.
>>
>> That's not to say it's a horrible idea, it's just to say that things
>> are never as easy as they first look.
>>
>> BTW, the *bigger* issue with this path is that now we suddenly have
>> different kinds of identifiers for different things. So you have a bug
>> id, and a cf id, and they are different things. So you're going to end
>> up tagging things with multiple id's. etc. That part goes to show that
>> we cannot just "solve" this in one part of the workflow. We can put in
>> useful workarounds that go pretty far - like the cf app - but we
>> cannot get the "complete solution". OTOH, maybe we never can get the
>> complete solution, but we should work hard at not locking into
>> something else.
>
> Yes, we would almost need to number each incoming email, and use that
> reference all the way through to the release note item text. or at least
> a searchable git log of the release note commits.

Which we in a lot of ways have - we have the messageid. But we need a
nicer interface for people to use than that... But that serves pretty
well as an underlying identifier.

-- Magnus HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Bruce Momjian
Date:
On Sat, Jul 07, 2012 at 04:45:42PM +0200, Magnus Hagander wrote:
> >> That's not to say it's a horrible idea, it's just to say that things
> >> are never as easy as they first look.
> >>
> >> BTW, the *bigger* issue with this path is that now we suddenly have
> >> different kinds of identifiers for different things. So you have a bug
> >> id, and a cf id, and they are different things. So you're going to end
> >> up tagging things with multiple id's. etc. That part goes to show that
> >> we cannot just "solve" this in one part of the workflow. We can put in
> >> useful workarounds that go pretty far - like the cf app - but we
> >> cannot get the "complete solution". OTOH, maybe we never can get the
> >> complete solution, but we should work hard at not locking into
> >> something else.
> >
> > Yes, we would almost need to number each incoming email, and use that
> > reference all the way through to the release note item text. or at least
> > a searchable git log of the release note commits.
> 
> Which we in a lot of ways have - we have the messageid. But we need a
> nicer interface for people to use than that... But that serves pretty
> well as an underlying identifier.

Imagine a case where a single message-id could show all emails before
and after that refer to it, and all commits and release note text
associated with it.  I think there are going to be cases where multiple
email threads all represent the same item, of course, and might not be
linked via email references.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


Re: Bug tracker tool we need

From
Magnus Hagander
Date:
On Sat, Jul 7, 2012 at 4:48 PM, Bruce Momjian <bruce@momjian.us> wrote:
> On Sat, Jul 07, 2012 at 04:45:42PM +0200, Magnus Hagander wrote:
>> >> That's not to say it's a horrible idea, it's just to say that things
>> >> are never as easy as they first look.
>> >>
>> >> BTW, the *bigger* issue with this path is that now we suddenly have
>> >> different kinds of identifiers for different things. So you have a bug
>> >> id, and a cf id, and they are different things. So you're going to end
>> >> up tagging things with multiple id's. etc. That part goes to show that
>> >> we cannot just "solve" this in one part of the workflow. We can put in
>> >> useful workarounds that go pretty far - like the cf app - but we
>> >> cannot get the "complete solution". OTOH, maybe we never can get the
>> >> complete solution, but we should work hard at not locking into
>> >> something else.
>> >
>> > Yes, we would almost need to number each incoming email, and use that
>> > reference all the way through to the release note item text. or at least
>> > a searchable git log of the release note commits.
>>
>> Which we in a lot of ways have - we have the messageid. But we need a
>> nicer interface for people to use than that... But that serves pretty
>> well as an underlying identifier.
>
> Imagine a case where a single message-id could show all emails before
> and after that refer to it, and all commits and release note text
> associated with it.  I think there are going to be cases where multiple
> email threads all represent the same item, of course, and might not be
> linked via email references.

Yes, that's the part that has to be taken care of by that "thin
overlay over email". Some way of grouping multiple threads
together,and somehow keep the end-status of them
(rejected/comitted/wontfix/whatevryouwantocallthestatus). But not
actually keeping a copy of the information anywhere else.


-- Magnus HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/


Re: Bug tracker tool we need

From
Josh Berkus
Date:
Hackers,

So I want to repeat this because I think we are conflating several uses
for a "bug tracker" which aren't the same, and which really need to be
dealt with seperately.

-- Better CF App: to track feature submissions, discussion, revisions
and reviews.

-- Bug Submitter: easy-access way for users to submit bugs and check on
their status later.

-- Fix-Bug-Later Bug Tracker: a place to track bugs which are not
immediately fixable due to complexity/breakage/external
dependancies/priority.

-- Fix Tracker: way for users to search if a particular issue was fixed,
and what release it was fixed in.

-- Testing Tracker: tool for user-testers to submit test reports for
development and beta releases.

The above are 5 different tasks with different requirements, and it's
far from clear that we want a new tool for all of them (or even want all
of them).

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com




Re: Bug tracker tool we need

From
"Joshua D. Drake"
Date:
On 07/09/2012 12:02 PM, Josh Berkus wrote:
>
> Hackers,
>
> So I want to repeat this because I think we are conflating several uses
> for a "bug tracker" which aren't the same, and which really need to be
> dealt with seperately.
>
> -- Better CF App: to track feature submissions, discussion, revisions
> and reviews.
>
> -- Bug Submitter: easy-access way for users to submit bugs and check on
> their status later.
>

===============

> -- Fix-Bug-Later Bug Tracker: a place to track bugs which are not
> immediately fixable due to complexity/breakage/external
> dependancies/priority.
>
> -- Fix Tracker: way for users to search if a particular issue was fixed,
> and what release it was fixed in.

===============

These two should be able to be the same piece of sotware.

>
> -- Testing Tracker: tool for user-testers to submit test reports for
> development and beta releases.
>

This might be able to be the same piece as fix-bug-later... with a 
different front end.

> The above are 5 different tasks with different requirements, and it's
> far from clear that we want a new tool for all of them (or even want all
> of them).
>

Not sure how to handle the first two. Bug submission is always a pita 
and although we could use the fix-bug-later app, it would clutter it as 
we were trying to determine real bugs vs user error.

Sincerely,

jD



-- 
Command Prompt, Inc. - http://www.commandprompt.com/
PostgreSQL Support, Training, Professional Services and Development
The PostgreSQL Conference - http://www.postgresqlconference.org/
@cmdpromptinc - @postgresconf - 509-416-6579




Re: Bug tracker tool we need

From
Aidan Van Dyk
Date:
On Mon, Jul 9, 2012 at 3:26 PM, Joshua D. Drake <jd@commandprompt.com> wrote:
>
> On 07/09/2012 12:02 PM, Josh Berkus wrote:
>>
>>
>> Hackers,
>>
>> So I want to repeat this because I think we are conflating several uses
>> for a "bug tracker" which aren't the same, and which really need to be
>> dealt with seperately.
>>
>> -- Better CF App: to track feature submissions, discussion, revisions
>> and reviews.
>>
>> -- Bug Submitter: easy-access way for users to submit bugs and check on
>> their status later.


> Not sure how to handle the first two. Bug submission is always a pita and
> although we could use the fix-bug-later app, it would clutter it as we were
> trying to determine real bugs vs user error.


And whatever you/we do, be *VERY* aware of the
"pile-of-...-in-the-bugtracker problem".  I just happend to have Joel
Spolsky's post come through my RSS reader, where he talked about about
bugtrackers, and suggested:

- Do not allow more than two weeks (in fix time) of bugs to get into
the bug database.
- If you have more than that, stop and fix bugs until you feel like
you’re fixing stupid bugs. Then close as “won’t fix” everything left in the bug database.
Don’t worry, the severe bugs will come back.

The biggest problem of whatever tool is used for anything, is making
sure tool is useful enough to people that need to use it to make it
worth their while.

A tracker (of any type) that is even *insanely* useful for users, but
that doesn't give *developpers* (note, that's developpers, not
managers, or cat-herders, or cheer-leaders)  any extra value is bound
to fill and soon become un-usefull for even uses..

If you want the develops to use it, it has to be worth their time *to
them* to use it.

Witness the hundreds of graves that are he thousands bugzilla bugs out
there filed against even active open-source projects.

a.

--
Aidan Van Dyk                                             Create like a god,
aidan@highrise.ca                                       command like a king,
http://www.highrise.ca/                                   work like a slave.


Re: Bug tracker tool we need

From
Josh Berkus
Date:
>>> -- Bug Submitter: easy-access way for users to submit bugs and check on
>>> their status later.
> 
>> Not sure how to handle the first two. Bug submission is always a pita and
>> although we could use the fix-bug-later app, it would clutter it as we were
>> trying to determine real bugs vs user error.
> 
> And whatever you/we do, be *VERY* aware of the
> "pile-of-...-in-the-bugtracker problem".  I just happend to have Joel
> Spolsky's post come through my RSS reader, where he talked about about
> bugtrackers, and suggested:

Well, frankly, I don't think we really want to make it easier for the
*general public* to submit bugs than it already is.  We're already
getting enough quality bug reports to keep us busy.  And I'm
all-too-familiar with the failings of a "bug-losing system"; check the
number of bugs I have filed against Thunderbird sometime.

Where bug submission is broken that we care about is in two areas:

1. it's very difficult for the existing bug submitters to check status
of their bugs after submission, or even find out if they went anywhere
(if using the webform).

2. we don't have an API for downstream projects and products to submit
bugs, which makes those projects think we don't care about bugs.

Note that both of the above could be solved without having a public
bugzilla instance.

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com