Hi dev, To get a proper setup of installed extensions we want to make sure everything is installed trough Extension Manager instead of being imported as a plain xar. So the idea come up to finally start the long awaited installer/upgrader UI.
First step is to find how to know when to display this UI so here is a proposal (ref http://dev.xwiki.org/xwiki/bin/view/Design/Installerandupgrader): = The new informations * deprecate version.properties for a more complete distribution.properties that would contains at least the following ** version of the distribution ** top extension id of the distribution (to display general informations about the distribution). For example in XE it would be distribution.id=xwiki-enterprise ** name of the distribution (I'm not 100% sure for this one since we can find it with the id using Extension Manager but I think it's safer in case we don't have access to any repository to display something nicer than a technical id). For example for XE it would be distribution.name=XWiki Enterprise (who would have guessed :)). ** war extension id of the distribution (generate a default id like <product-id>-web when none is provided). For example in XE it would be distribution.web.id=xwiki-enterprise-web ** ui extension id of the distribution (generate a default id like <product-id>-ui when none is provided). For example in XE it would be distribution.ui.id=xwiki-enterprise-ui ** then come custom properties specific to the distribution. For example in XE I think we could add commons.version, rendering.version, etc. = The current informations * store all that in a table of the DB to compare the current with what comes with the war. If the DB does not contain anything its a new install, if the DB contain something different it's an upgrade (note that this also support downgrade or moving from one distribution to another like XE -> XEM the same way). The idea is that we store theses informations only when the installer/upgrader is fully passed or that the user explicitly indicated tat he does not want to install or upgrade anything so that if you only did part of it before restoring you can come back and continue the install/upgrade process. = The manager * introduce a xwiki-platform-distribution to manipulate all that = Some questions 1) "distribution" or "product" ? 2) reuse the same table where we currently store the DB version ? I don't want to talk about the installed/upgrader UI itself for now, it will be the subject of another mail. I would like to concentrate of one step at a time since that's going to be pretty important system. WDYT ? The may goal that started this proposal is the installer/upgrader UI but those as also very useful for different use case. Some lib could want to know the version of platform or commons to choose what to do, we will be able to add the id of the distribution itself and the war extension as core extension to allow some extension to put it as dependency, we will finally display a proper footer without putting the distribution name in the XWikiPreferences. Here is my +1. 1) my +1 goes to "distribution" 2) my +1 goes to another table to not mix different subjects Thanks, -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

