Here's a summary email (as I understand it!).
Ok if I understand correctly, what you'd like to propose is:
============================================
* Distribute without legacy by default
* Provide a way for users to add the legacy modules if they need them (details to be
defined for how they can do this - a zip containing jars to drop in WEB-INF/lib,
installation from the EM, etc)
* When we deprecate an API we keep it in the main modules (i.e. non-legacy modules) for a
while. You're suggesting till the next major version, i.e. a full Release Cycle (which
is 1.2 years). This is the big difference with now where we move to the legacy modules
ASAP because we want to be sure that no code we have uses the deprecated APIs. By keeping
them in our codebase we wouldn't benefit from this nice "feature". So
we'd need a solution for that.
* We never remove code from legacy modules ? (I think you mentioned you' d be for
removing but I haven't really understood the strategy to do so)
Personally I'd prefer the following:
==========================
* Distribute without legacy by default
* Make it very easy for a user to add the legacy modules by providing a distribution
containing the legacy modules that is clearly visible in the download page (but less
visible that the distribution without legacy modules)
* Continue to move deprecated APIs to legacy modules *ASAP* (i.e. as soon as our code is
clean and doesn't use the newly deprecated APIs)
* Never remove from the legacy modules by default but when we really need to do so (for
some technical reason for example), do it on a case by case basis and send a VOTE to do
so
This would ensure that:
* New users very quickly use the newest APIs (they won't even see the old APIs).
* Older users are not broken
* When someone upgrades he can easily try using the new distribution without legacy and if
it breaks some of his code he can either fix his code or add the legacy modules
WDYT?
Thanks
-Vincent
[snip]