On Tuesday 12 May 2009, Rick Altherr wrote:
> 
> On May 12, 2009, at 3:36 PM, David Brownell wrote:
> 
> > On Tuesday 12 May 2009, Øyvind Harboe wrote:
> >> I don't know when the cats can be herded into a 0.2 release
> >> at this point, but I'm pretty sure it's a month away at least.
> >
> > Hmm, if you don't know ... then who could?
> >
> > The process *does* seem, for now, as if it's largely
> > "commit patches to SVN" without any publicly defined
> > goals/targets or visible criteria.
> >
> 
> Or rather, every time the set of goals is established, it gets thrown  
> out the window a week later.

I'd have said those goals weren't really established then!  :)


> > Zack's "list" seemed useful in terms of having some
> > kind of direction be defined.  But that's distinct
> > from defining release criteria, or merge criteria.
> >
> 
> Yup.  A todo list is great, but we need a more rigid definition of  
> what need to be done to make the next release.  Essentially, we need  
> to decide on "features" for a release.  Any large changes need to be  
> aligned with a feature.  Small fixes should be accepted even if they  
> don't align with a feature.

That's one process.  Not all small patches are safe
enough to merge at any time though; and not all large
changes should necessarily be aligned with target
features of some release.  (Example, some types of
code cleanup.)  Patches should IMO be graded more by
the risk/reward ratio ... and nearer to release
milestons, that ratio should shrink to near zero.

 
> > Right *now*, what criteria are being used to choose
> > whether to merge a patch, reject it, or hold it back
> > until the next release?
>
> Right now, the options are merge or let it die.  For nearly everything  
> that hits the list, it is automatically committed to SVN with little  
> review or commentary.  I'm not a fan of this.

Right.  I think some patches should certainly be able
to fit into the "keep that in the -next queue" category.

Effective review is probably not easy here; who knows
JTAG well enough to contribute non-cosmetic feedback?


One process that could hardly help but improve things
is to define a "release manager" who herds patches for
a given release ... and someone else who herds patches
for the next one, keeping the queues in sync.

OpenOCD doesn't seem to have anyone responsible for
the "next" release, whatever it's called (maybe a
datecode like "2009-06"?).  Such roles should ideally
be rotated.  Some projects have teams defining them.


Regular status updates help too.  Linux has clear
progress markers via version codes (2.6.29, then
merge window, then 2.6.30-rc1, etc) *and* at least
brief status reports every weeks when a new version
is tagged. GCC has different status reports (which
get rotated among release team members) and very
clear tree status.  OOCD has nothing similar.


> > Example:  there was a patch a while back (from Dick
> > Hollenbeck) that included about 60K of ft2232 and
> > TMS sequencing updates ... and gratuitous changes
> > to whitespace, and surely other things.  I don't
> > know of many projects which wouldn't also reject
> > such patches with "please split into smaller patches
> > so this can be reviewed", as happened.
> >
> > If that *had* been split and resubmitted ... there
> > seems to be no process in place to say which changes
> > are safe to merge *now* versus which can't merge
> > because they'd destabilize release plans, versus
> > which are worth merging even if they *do* destabilize
> > things (because e.g. fixing TMS bugs is critical).
> >
> 
> If it _had_ been split and resubmitted, I'd have voted to take the  
> FT2232 fixes and the TMS sequencing updates.  Both had been discussed  
> for quite a while.  They were implemented in an opt-in model.  It was  
> safe to take into trunk with no real impact unless you opted-in.

Both sounded technically plausible to me.  But ... neither
was provided as an independently reviewable patch.

If they were merged, I would have argued against "opt-in".
When a patch is basically good, any remaining bugs should
just get fixed.  If it isn't, it shouldn't merge.


> Of course, I'd love a more formal process in which we decide on the  
> feature set for the next release and only accept things into it that  
> implement those features.  Of course, we should also allow overlap of  
> releases (branch the release from trunk a while before the release is  
> finished) and also allow radical development to occur on branches  
> where they could be merged into trunk after the release is branched.   
> See any large project for examples.

Right.  The guts of it boil down, IMO, to defining some
responsible roles ... and having people meet those roles.

Given that, some tools work better than others.  GIT makes
it easy to have any number of branches without needing to
grant excess permissions to anyone, for example.  But we
have all probably seen projects managed effectively using
tools like CVS or SVN.  The tools are secondary to having
a process which uses them well.

- Dave

> 
> > - Dave
> >
> >
>   -- Unsigned
> 
> 
> 
> 



_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to