Joachim Draeger wrote:
Hi all,
Because something went wrong I think we need a cut and a complete restart of
discussion / collecting opinions. Because I suppose everything has already been
said, it should be possible to finish this part soon.
AFAIK there have only been mentioned three different possibilities:
1. Backport features from trunk to 2.3 branch (AKA next-minor)
- this includes only backporting and testing, a release may be done
very soon
As contributor I will not help with this.
I'm -1 on using the current 2.3 branch for this. If anyone want to start
this effort just create a new branch (copied from v2.3). "v2.3" branch
has to be there for 2.3.1 if needed.
As PMC member I would like to know what features are to be included in
this release before saying my last word about this "release". Generally
speaking I think it would be good to the project to have much more releases.
2. Create a config/storage compatible release from trunk (AKA next-major)
- To be able to start working on incompatible features, this may
imply branching soon
As contributor I don't care of this release. Nor do I as user.
As PMC member I think this the best compromise to put out a release soon
with new features and also make sure we test/consolidate a bit our trunk
(this will also help the next-greater release process).
I think we should branch as soon as possible because the work to keep
backward compatibility is really a lot and I'm (and others, I suppose)
already not working on many new features because they would break
compatibility.
Alternatively we could start working on incompatible things in
sandboxes/experimental branch, but I would prefer to work together on
the same folder (trunk): this give a better oversight on what is happening.
About features I think trunk is almost ready feature-wise for branching
(see the PROPOSAL Norman and I wrote almost a month ago for details). My
biggest concern is with handlerapi: I would like to include
handlerapi-v2, because otherwise we change that stuff once every
release, and I don't think this will be easy to understand for users.
3. Work on a non-compatible release from trunk (AKA next-greater)
- This could probably done without branching, or just branch when all
features are implemented. ETA is probably a bit later
As contributor this is my preferred option, but as PMC member I fear a
bit such an option.
I think we can break backward compatibility from time to time, but we
should avoid breaking compatibility in every single release. This means
that if we move to a backward incompatible release we should try to put
every incompatible change in, this time, and I think this would really
delay this release (I expect not less than 1 year). Otherwise I fear
that we would start making 3.0.0, 4.0.0, 5.0.0, every release backward
incompatible with the previous one.
I don't understand the "branching" issue: every release need a
consolidation branch, so I think this will need a branch as like the
next-minor and next-major. It is simply a matter of declaring we agree
on breaking backward compatibility and define an estimate date (range)
for branching.
Which kind of release do you prefer and why?
What are you willing to work on?
Does anyone have a completely different idea in mind?
I think that now that we are multiple active committers it is important
to talk not only of features but also of expected timelines, otherwise
we loose time. As contributor it is important to me to know if a branch
will happen in 2 months or in 6. This let me organize myself and
coordinate better with others.
Another option could be keep storage compatibility but remote config.xml
compatibility. Imho bidirectional (upgrade/downgrade) storage
compatibility is the most important to upgrading users and this would
allow us to stop loosing so much times on hacks/workarounds to keep
config.xml compatibility.
I think that a good plan could be trying to release next-major as
described above, then removing all the hacks to config.xml compatibility
and start introducing features that break config compatibility but not
storage compatibility (e.g: the mailboxmanager mapping feature ported to
all of our mailets and other components that access the repositories).
This would include possible container changes (osgi/spring experiments)
and more.
This would give us a couple of releases before the next-greater, and
hopefully a shorter release cycle than moving to a full-incompatible
release now.
Imho a good strategy could be to define a tentative release cycle and
define features we can include and type of releases based on dates.
Maybe something like: a release every 6 months (excluding mantenaince
releases). Then at every cycle we can discuss the type of release we
agree to work on (backward compatibility, features we plan to be able to
include, and so on). Maybe some times we'll be able to do only a minor
release, some other time we'll include much more features. As an example
we release 2.3.0 at the end of october. This mean we should try to
release the next one near the end of April 2007. Starting from this
point we could discuss what we plan to be able to do in the mean time,
what kind of features we expect to be able to work, if we think or not
to be able to consolidate our efforts for that date and so on. Of course
we cannot force dates, because bugs will delay the consolidation but we
can try to follow the plan at our best.
As a side note I'm not likely to work on conversion tools: it is really
boring to write such things. That's why I consider backward
compatibility an important issue in our planning.
To avoid an endless discussion I propose an end date that is hopefully the start
date of a new vote: Thursday 12/21/06
I guess some of us will be completely offline around Christmas / turn of the
year. Maybe you could give a hint whether you'll be able / want to participate
on
possible decisions.
I'll be here always.
Yes, I'm in a hurry because I think that too much time has already been lost and
this project needs to be more dynamic.
+1
I think "to be more dynamic" would be the best cure for james.
Joachim
Thank you for trying to fix this issue.
Stefano
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]