On Wed, Apr 11, 2012 at 3:51 PM, Eduard Moraru <[email protected]> wrote: > Hi Thomas, > > AFAIU, you are proposing a way to identify the currently installed war. > > Once you import a xar, you save the information provided by the war into > the database and this means that the current instance is ready. A new > instance will not have the data in the DB and will be marked as not > initialized. > > At this point, we can propose a default xar to import since we know what > war we have, or we can even install it automatically using the EM and not > the import UI. This can be extended to upgrade/downgrade usecases as well > (though a separate discussion concerns how we differentiate and handle > modified installed artefacts -- customized Pages for ex).
Yes that's pretty much the plan. > > 1) +1 > 2) +0 > > If I understood correctly, here's my +1. > > Thanks, > Eduard > > On Tue, Apr 10, 2012 at 3:46 PM, Thomas Mortagne > <[email protected]>wrote: > >> On Tue, Apr 10, 2012 at 2:00 PM, Vincent Massol <[email protected]> >> wrote: >> > Hi Thomas, >> > >> > On Apr 6, 2012, at 9:49 AM, Thomas Mortagne wrote: >> > >> >> 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. >> > >> > Cool :) >> > >> >> 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 >> > >> > What is a distribution? From what I understand our idea is to not have >> any distribution by default in the future and instead to start up with a >> minimal runtime having only the Extension Manager (and what it needs to >> work) and then ask the user to pick a "Flavor" (preset of extensions) or >> start with an empty "Flavor" (or hand pick the extensions he'd like to see >> used). >> >> That may be the future plan (even if it has mostly been discussed >> privately or suggested in thread that were about another subject) but >> I doubt we are going to start going this in 4.1, are we ? >> >> > >> > Thus for me there's only 1 "distribution" in the future, it's the EM >> one. And XE becomes a "Flavor". >> >> Only one default diftribution, only one we would distribute ourself. >> But I don't think we want to forbid anyone to build a custom >> distribution like XE and XEM are. >> >> > >> > So when upgrading you use the list of installed extensions to know what >> to upgrade. >> >> Yes when upgrading but this proposal is not only abouot upgrading. >> >> When you install the XE war and start XWiki the first time on an empty >> database you need to install the XE xar for it to be complete. So you >> need to know what xar you need to install. The idea here is that you >> provide information about the distribution so that you know what is >> the standard war and xar corresponding to it. >> >> > >> > Now even if we decide to create a static packaging of extensions and >> make it a distribution (which I don't personally want nor like too much) >> then the distribution would simply mean a list of extensions and their >> versions, which we already have AFAIK. >> > >> > Thus from my POV all that we need to know is: >> > a) list of installed extensions and their versions >> > b) list of core extensions and their versions >> > >> > I'm not sure that we need to have a single version representing a) and >> b). >> >> This proposal has nothing to do with installed extensions, we already >> have a list of installed extensions as you can see in the EM UI. >> >> But it's not that simple for core extensions, we know most of the jars >> because a lot of them come with a maven pom and others are matched >> based on their names and the dependencies of the maven jars. But we >> have abssolutely no idea what is the current war for example as I said >> in my first mail and that's exactly the kind of information that the >> distribution.properties would contain along with its corresponding >> standard UI. >> >> > >> > I cannot comment on the rest of this proposal without discussing this >> first. >> > >> > Thanks >> > -Vincent >> > >> >> ** 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 >> > >> > _______________________________________________ >> > devs mailing list >> > [email protected] >> > http://lists.xwiki.org/mailman/listinfo/devs >> >> >> >> -- >> Thomas Mortagne >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs >> > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

