Hi Jacopo:
Its nice to see this kind of thought going into a release strategy.
Thanks for the effort. Please see my comments inline. Note, this is just
my opinion based on years of working with big complex IT organizations.
These are the kind of "users" who ultimately would be implementing OFBiz
(I hope...):
Jacopo Cappellato wrote:
I know this subject has been already discussed several times in the past, but I
still would like to rethink our strategy for releases in OFBiz.
I am under the impression that, considering the release branch 9.04, that is
our latest release branch:
* there are more users than maintainers
This is probably true. But to get a better understanding of who is using
what, maybe we could look into getting download statistics? I have
already put in a request to the infrastructure team for this, but have
not heard anything back from them. Maybe a project committer has more
clout and could get this implemented? Without that, we are just
speculating about who is doing what with the code.
* because of this, no real maintenance plan, test strategy etc.. has been
created around it from the community of users and interested parties (in fact
we were not really able to officially release it)
* a lot of new users start eveluating OFBiz from that instead of the trunk
* it is rather old, several new features are missing and also code improvements
(that could fix bugs etc)
I thought all the bug fixes were retrofitted to the release? Is this not
true?
* because of this, it tends to be less stable than the trunk
How could the release be less stable than the trunk if bug fixes are
applied to the release and the trunk?
The main cons of this situations are the following:
1) not real interest in maintaining a release branch means that we will not be
able to spend time on it and officially release it: the OFBiz community will
miss the advantage of using the marketing channel represented by a new release
2) new users will get the wrong impression that the project is slowing
improving if they just get the releases
Project committers should consider this behavior pattern: Most people
evaluating code will not want the latest release. They will patiently
wait until someone else has taken on the risk (and reward) of debugging
it. Do not think that just because the project releases a new release of
OFBiz, that everyone will stampede to get it. Far from it. Now if we had
download statistics we could verify my claim, but I'd be willing to bet
real money, that the only people who will jump to download this new
release will be project committers.
3) it is much easier for a user to stay up to date with the trunk rather than
with a release: I mean that there is no guarantee that one day someone will
build an upgrade plan from the old release to the new one... users of the old
release may be left behind forever
I think you mistake "user" with "committer". What "user" is actively
trying to stay current with the trunk? Just some food for thought.
What I suggest is based on the following assumptions:
1) community is not ready or interested in maintaining releases
Only the "committers" are not interested. Users out there may have a
different story to tell. Personally, I'd like to see releases "maintained".
2) new users prefer to start evaluating OFBiz with a release instead of the
trunk
3) it is good for the project to announce new releases often
True. Very true.
4) because our current policies (slowly increasing number of committers, peer
reviews, etc...) our trunk is (and will be) more stable than older releases
Again, why? I thought bug fixes are committed back to a release if
appropriate. Is this not the case?
Here is what I suggest:
A) define an official release plan that says that we officially issue a release
every approx 6 months (just to give you an idea): since there is no way to
define a set of features that will go in the next release, our releases will be
based on dates instead of features; but of course we can discuss the exact time
of a release based on what is going on 1-2 weeks before the release date
Don't release every 6 months. That's crazy. Once a year is sufficient.
Put in place a real release plan including features, fixes and upgrade
instructions in advance and then work towards making OFBiz something
more than just a developer's playground. Make it "stable" by setting out
in advance what "stable" means. And then work towards making each
release meet the "stability" requirements. Just releasing something
every 6 months or a year does not a "stable" release make.
B) there is no guarantee that patches will be backported to releases, that
upgrade scripts will be created from release to release
If so, then what is the point of even having releases? Just have nightly
trunk builds and everyone is happy.
It is true that the ASF policies ask that a release, that represents the code that is distributed
by the ASF to the larger audience of users, is a "stable" deliverable; but if we continue
with the current approach, even if it is intended to get a stable and maintained release, what we
are really doing is distributing the code in the trunk (this is what we suggest our users to use
instead of the release), not the "stable" release.
IMHO, one of the true benefits of going with the ASF is the structure
and stability they enforce on umbrella projects. Why not use these
"restrictions" to the project's advantage instead of trying to
circumvent them. I think I'm agreeing with you in that maybe "we" should
start pointing users to releases instead of trunk code. Just a thought.
Ruth
What do you think?
Jacopo