> > 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? > > Actually, a fair number of us _do_ know JTAG fairly well.
That's good ... I guess I was thinking more about the difficulties in expanding that set. (The code could not have gotten to its current state without at least a core of folk with the relevant skills!) > The target protocols are another matter. Right; needs hardware, testers, "users", etc. > > 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. > > > > Technically, I took that role for the 0.1.0 release. There were two > factors that have make continuing as such for 0.2.0 challenging: my > home life and lack of community support. My home life is in a bit of > turmoil due to a home remodel, new baby, and looking for a new day > job. The community support was nearly non-existent. Getting a release out is rarely a picnic even in the best of cases! And it seems like you really needed help that you weren't getting (but should have had): > Even slowing > things down for 0.1.0 was difficult but I managed. As soon as 0.1.0 > was released, trunk had already progressed well ahead and was in > chaos. Attempting to slow things down and establish which in-progress > developments need to be finished has been met with resistance. As > soon as one in-progress item is finished, 3 others have been partially > introduced. _If_ a process was put in place for accepting patches to > trunk, the job of release management _might_ be possible. Likewise, for deferring some patches until the next release. This is one of the things that Linux does interestingly. Except for a brief "merge window" and things like new code that can't break anything (new drivers etc), the "trunk" is managed *always* as a release stage. Everything else gets batched up to merge later, in that merge window. It took time to get that process working well, but at this point there are a LOT of developers who are used to it. > Otherwise, > it primarily means picking an arbitrary revision of trunk and making > it the branch. Then, as in-progress items are finished, merge the > patches from trunk into the branch. It sucks and makes the release > manager do _a lot_ of work. It's not an easy job watching every > commit and determining if it should be taken for the release or not. > It's also not easy backporting fixes that don't apply cleanly because > trunk has moved on with other widespread changes. Hrrm, yes. Those all seem like *very* significant problems. It should not have been your job, actually ... folk should have said "this needs to get into <next release>" when the patches were submitted, and if it did need tweaks the work should have been done by the patch submitter. > Enough ranting from me. We need to set some criteria for introducing > patches into trunk and formalize the process. We also need to > establish the same for release branches. Then, everyone with commit > access needs to respect those processes. If we all play by the same > rules, cutting releases more frequently will be easy and the overall > quality of trunk will be better. Given what I've seen work on other projects, I'd agree. > > 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. > > > > Right. This follows from the above. If you have a process, it is > easy to send out updates about what stage we are in. The releases > don't need to be on a strict timeline, but knowing that this release > is slowing down and another will be opening helps patch authors set > their schedules and use their time effectively. Status is both output of, and feedback into, the process. Without status, you don't really have a process ... once you start tracking and measuring things (against goals), that is itself a process. Chicken/egg. > > 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. > > > > Actually, in this case, opt-in was the right model. In general I > agree with you, but when you are changing such a fundamental part of > the code, it will take time for the other pieces to be tested and > debugged. So opt-in was just a testing aid? That's better. I'd still have set the build option the other way ... so the testing was maximized. Maybe not for a week or two, but certainly not very long after merge. > > 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. > > I'm not entirely sold on GIT as a project source control system, but > things like git-svn enable individuals to maintain their own GIT > branches and push them to the project as a patch. That provides a > reasonable balance between the needs of the project and the needs of > the contributors. I'm using git-svn now, FWIW, and quilt on top. It's good having the entire project history accessible without needing server access; and patch bisection "just works". - Dave _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development