Hi, Now that we're starting to have several products (XE, XEM, Watch, Curriki, etc) we need to agree on a strategy for their dependencies on the Platform Core.
Need ===== Here's a real use case on which we can base our discussion: * XEM needs to be released ASAP. More specifically there's a need to release 1.0M1 on 17th of Sept. and 1.0M2 on 1st of October. * Platform Core 1.2 in trunk is not stable yet and will only be released at end of November (if we agree on the schedule I sent this morning) * XEM needs to use a stable Core * XEM needs some features in core that are not in Core 1.1 (For example: the new Right Management UI which needs to change templates and possibly some code too) To summarize, Products may require a stable version of the core but with modifications. How do we solve this? Solutions ======== Short term solution: * We put whatever is required in point releases. For example, for XEM, we put the Rights Management changes in 1.1.x * We decide on the 1.1.x release dates based on the aggregated needs of the different Products * Once the Core trunk is released then the Products are modified to depend on it. * Of course each Product should try its maximum to internalize required changes inside its own code rather while waiting for the Core the released. To do this, JIRA issues with patches should be submitted to the Core to be applied. The other short term solution is to have a specific branch of Core for each product but I feel this is going to be a nightmare to maintain and merge so I'd much rather have a single 1.1.x branch which we can release as fast as we want. Medium/Long term solution: * Make the Core more and more modular with components so that a Product can keep all the core except for a specific component for which it can have its own implementation for some time till that makes it inside the core. * Reduce Core release lifecycles. Right now it's 3 months. We could probably reduce that to 1.5 month right now. * In order to reduce that even further, have more automated functional tests in the Core so that we can release a stable release of the core every 2-3 weeks. Once we reach that stage, I think there won't be any need to have branches for products. However this requires a change of mind for XWiki core developers since developers would need to write tests as they commit code instead of committing stuff and then fixing them later on, in further betas or RCs. This is our Graal. Conclusion ========= Are we all ok to agree that the 1.1.x releases will thus contain changes/improvements (i.e. each change must be reviewed carefully so that it's not risky and does not endanger the stability of the branch)? Thanks -Vincent _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

