Hi Vincent, thanks for your work. On 10/14/06, Vincent Massol <[email protected]> wrote:
Hi,
I'd like to propose the following:
1) We create a single trunk/, branches/ and tags/ for plugins instead of having one per plugin which is a maintenance nightmare. This is what we're doing for Maven and it seems to be working fine. See http://svn.apache.org/repos/asf/maven/ If you think it's better, I agree. But how we do when we want to release a plugin? All the plugins have to be stable at the same time?
2) We move all plugins from core/main/src/java/c/x/w/plugin/* to xwiki/xwiki-plugins/trunk/*. That's provided there's no direct link between the core and the specific plugins. If there are then they'll need to be decoupled, possibly by introducing a components/ directory of components (which BTW could be used as the parent directory for hosting components if/when we decide to move to using a component-based architectire (OSGI, etc).
Yes, be carefull with the plugin with dependencies inside the code like the upload plugin. A solution, could be to change it to component, and doing a plugin to access to the functions of this component. Some plugins have dependencies between them also. for exemple in the GELC project, some the plugins are depends on the others. I think some plugins(actually on the core) are depend on others.
3) Each plugin build will result in a plugin jar and we add some or all of those jars to the distributions. As there's currently no online plugin downloading mechanisl we may need several distributions: a minimal one without any plugin, one with "core" plugins and one with all plugins. Or we could choose to have only 2: one without plugins and one with all plugins.
I prefer the first solution, but with something a little bit different, we distribute the core with the minimum required plugins, and we create a repository with all the jar of the plugin (as ibilio for maven), and a package with all the official plugins. What do you think? jeremi