Jason Dillon wrote:
NOTE: My comments below are not directed towards anyone in
particular... mostly this just expresses my frustration with some of
the more harmful politics that Apache Geronimo has picked up over the
past few months...
Although RTC has slowed down development a bit (or even more), it
will pay off very
soon.
I think "slowed down development a bit (or even more)" is an
understatement. I believe that RTC has the development team running
through molasses. And in some cases has caused some patches and
issues to get stuck in the tar. Not really the types of things you
want from a vibrant, active and positive community.
I agree development has slowed down and there were good reasons why RTC
was introduced, so lets try to find ways of working more effectively
with it.
We need to be very patient until more committers become PMC
members and their votes are binding.
I have similar frustrations with what Jacek said regarding with the
limited amount of spare time I have. The spare time I had was focused on
the oversight of the 1.1 release. Now that 1.1 is out the door I will
try to get more involved in the RTC process. Hopefully this will become
less of an issue when the PMC grows.
Some of the issues I currently see with the way we are working the
process (and some related issues) are:
1. Hard to tell what fixes are pending review.
*Action* I have started a new thread "[Proposal] Tracking the status of
patches under RTC (was Re: [RTC] Clarification please from the PMC)" to
discuss this.
2. Not all communication regarding the fix is done in JIRA comments,
therefore people reviewing the fix have to search the mailing lists and
JIRA reducing the amount of time they have to actually review the
change. This also makes it harder for people in the future who look up
the JIRA and only see half the picture.
*Action* To prevent communication regarding patches under RTC being
conducted outside of JIRA, I suggest that a combination of the previous
suggestion and having "[RTC]" as the first characters of the JIRA
summary should be sufficient ( no need to send a mail to the dev list,
as it only encourages people to communicate on the dev list rather than
in JIRA ). When the JIRA is closed, the [RTC] characters can be removed
from the summary to make it suitable for the release notes. Comments?
3. There have been JIRAs for RTCs where in the mailing list they have
been described as a major enhancement, yet the JIRA does not even have a
description or comments. The lack of information about the changes in
the JIRA makes it harder for others to review. Lack of information also
means that it will be unlikely that the change will be identified as
needing to be documented in the manuals and possibly migration
information in the release notes. Users picking up the next release
will see the JIRA entry and start asking "What is this enhancement? "on
the mailing list, adding to the load of everyone's inbox.
*Action* I will start a new mail thread "[DISCUSS] Tracking
documentation tasks in JIRA ( was Re: [RTC] Clarification please from
the PMC )".
4. The lack of progress may be exacerbated by a number of PMC members
(myself included) being in different timezones where it is not always
suitable to discuss patches over IRC due to the need to sleep or other
commitments :-)
*Action* We need to improve communication on mail lists and increase
documentation in JIRAs and Wiki to minimize dependence on IRC.
5. The amount of spare time that PMC members can volunteer is finite and
the amount of spare time available may vary from person to person due to
their other commitments.
* Action* Discussion of Priorities..
Do people feel all RTC's should have the same priority? If not, how
would you justify one RTC request being more important than another?
Would it be fair to say some patches to be reviewed may be minor changes
that wouldn't prevent the development community from moving forward if
the review is postponed, whilst other patches may be needed by a number
of developers and the RTC is impeding further development by the
community? Should we be considering prioritizing RTC requests?
It may seem like I am trying to introduce more red tape, but I think it
will pay off in terms of improving communication regarding code changes
and improve the end product. I look forward to some constructive
discussions. I also think that developing agreed upon procedures that
ensure documentation is part of the development process will also help
the project operate more effectively in the long term.
This will not remedy the fact that RTC rules dictate that patches must
be applied and tested before a +1 can be given, which normally would
have happened once when the *trusted* developer has applied the
patch. But now we need a gang of people to apply the patch, which
usually means dropping any other work they were doing to get a clean
tree and then apply the patch, pray that the build succeeds in a
reasonable amount of time, running through a test case or two and then
blowing it all away to get back to the work that they were actually
doing before.
Regarding the "clean tree" issue.... You can have have Geronimo checked
out in more than one directory, so have one directory for your main
development and one (or more if needed) for reviewing patches. You can
even have separate maven local repositories if needed by specifying the
appropriate maven properties on the command line. It may take a bit of
effort to get your environment set up to do this simply, but it would
probably be worth it in the long run. Luckly we aren't using Visual
SourceSafe that has the one checkout per user limitation :-)
I fail to see how this will increase anything but frustration of
developers to have to jump through those hoops to get changes made....
maybe it will increase communication about how frustrating RTC is
though ;-)
I agree that RTC for the incremental m1 -> m2 changes is painful and
Matt's suggestion sounds reasonable to me. Would like to hear Ken's
feelings.
Some of the benefits I see with developers having to jump through these
hoops for significant changes are:
* Developers have to document what they are working on so others can
test it. I think it is a problem (for the project as a whole) when
developers commit code where they (or a small group of developers on the
project) are the only ones who understand how the code works and what it
means to the end user, especially if that information is only in their
heads. If we want to become a "vibrant player in the app-server space"
we need to do more than push out code. We need to be able to grow the
developer community, the user community also has to have faith in our
processes and the software needs to be usable. If documentation for the
software is lacking then I don't think it is very usable (except for a
minority of users who are developers on the project). Hernan and those
who have helped him getting the cwiki site going have set up a good
foundation for the documentation and I thank them for their efforts. We
now need to start discussing how we can ensure documentation is part of
the development process to maximize communication between developers and
enable users to get the most out of Geronimo.
* The code in svn should always build. During the development of 1.0 and
1.1 there were long periods of time where builds were broken due to
people committing code without doing a build to test it. In some cases
the developer may have done a build and it was successful, but when they
committed the changes, they accidentally left out a file from the
commit. There were a number of times where people broke the build in
their last checkin when they were blurry-eyed and just about to head off
to sleep. Developers in other timezones then wasted time either
debugging the problem, or waiting for the developer who checked in the
change to wake up or trying to find a revision that does build.
John
Painful, but in the end it might boost development significantly.
How will this boost anything?
AFAIUI, the whole point of RTC is to ensure communication through
dev/user mailing lists rather than in closed circles.
I don't understand how, dropping what I am working on, applying
patches, running tests and then coaxing the few PMC members with votes
will ensure more communication. In may respects I think it actually
hinders communication, as people will just shy away from applying
changes or from proposing to make new changes. RTC, IMO is the road
to complacency.
It would seem to me that the process for RTC would be to send an RTC
about the Maven 1 -> 2
conversion with some preliminary ideas.
I'm confused now... how can one send a RTC w/o having a patch or
patches for others to review?
* * *
RTC is crippling Apache Geronimo's ability to become a vibrant player
in the app-server space. RTC has made us a Red Tape Community, where
it takes weeks to get trivial changes implemented.
The problem is made worse by the fact that most of the PMC members who
we are supposed to coax into following RTC and voting in the changes
are simply not available. Not all of them mind you, but out of 10 PMC
members I can only think of a few who have had time or desire to
participate in the RTC and actually give their binding votes. IMO the
only way that RTC could possibly with is if the PMC members drop
anything else they are working on and devote their time to applying
patches, building and testing... BUT, I don't see that happening. The
people who are actually doing the work are for the most part not PMC
members. The people who are actually applying these patches are not
PMC members. Lucky enough though, I think that there are at least 3
PMC members who are being active, so there is a shot for us to get
work done... its just going to be really slow moving. At this rate,
maybe we will have EJB3 support out by the time that EJB4 is
dominant... or get out build working on m2 by the time m3 is out...
:-\
--jason