On Apr 4, 2011, at 7:29 PM, Sergiu Dumitriu wrote:
On 04/04/2011 03:04 PM, Vincent Massol wrote:
Hi,
After brainstorming with Thomas, Sergiu and Fabio we came to the following idea:
Proposal
=======
* Don't have top level extension git repositories and instead put all
extensions/modules in the top level platform repository
* This means releasing all modules/extensions under the *same* version (the platform
version)
^^^^^^^^
This is the important part!
Pros
====
* Much simpler release process
* Much simpler JIRA organization (1 project instead of 50 or so)
* Much simpler for the user: simpler to log a new issue in jira + they'll know what
version of a module they're using vs having to guess that XE 3.0 uses the Lucene
plugin v 1.45) and for contributors
I agree that it would be much simpler for users/contributors, so +1.
It seems to me that we were going in the opposite direction, moving
towards more decentralized components.
Yes we were but I think we're starting to realize it's complex to do so we should
only do when it's really necessary. We're lacking tooling to make it practical:
* release tools
* issue tools
* ci tools (we'd need to have a test grid to validate all versions, see which one work
together)
That said, it's also possible that at some point in the future we'll want to move
back to splitting platform into several parts...
Directory org
==========
platform/
|_ modules/
|_ xwiki-platform-search/
|_ xwiki-platform-search-lucene/
|_ xwiki-platform-search-application/
|_ xwiki-platform-url/
|_ xwiki-platform-skin-colibri/
|_ xwiki-platform-wysiwyg/
|_ ...
|_ tools/
|_ distribution/
OK, but why is it xwiki-platform-skin-colibri and not
"xwiki-platform-colibri"?
Also, why is every directory prefixed with its parent directory name?
Why not:
platform/
|- modules/
|- search
| |- application
| |- lucene
|- colibri
If this is just to have the same name as the projectId inside the poms,
then it only makes sense from the developer point of view, users don't
care about what's inside POMs.
Yes the idea is to use the artifact id as the directory name.
I thought we had discussed this already and agreed but I may be wrong.
I've starte a new discussion thread for this.
Details:
* Modules contains a flat list of directories, each directory representing a
"feature". Everything corresponding to a feature is under that feature's
directory, independently of the underlying technologies used (be it plugins, components,
xar, etc)
+1.
* Maven modules previously located in
platform/web are moved in platform/modules. Except platform/web/standard which goes in
platform/distribution. wysiwyg modules go in xwiki-platform-wysiwyg/ (we need to decide if
gwt-dom and gwt-user modules go in there too or if we want to have a xwiki-platform-gwt
module - Marius?)
Migration details
=============
* Change the current org in git
I can take care of that.
* Move several jira projects to retired
* Modify platform jira project to have one jira component per feature (ie per
platform/modules module). Note that since the old xwiki-core contains lots of stuff I
propose to have one jira components for each "feature" it contains. For example
for anything related to the model it would go in the "model" jira component. For
things going in the user management it would go in a "user and group" component,
etc. I'll make a proposal for the full list of jira components later on if this vote
is passed.
* Future: decide if we keep
extensions.xwiki.org and if so what we put in there (maybe
just user extensions and move platform features in
platform.xwiki.org).
I'd rather keep it, at least for the moment.
Here's my +1 (meaning I'll help perform
this move)
Thanks
-Vincent