It seems we can't fix it for 5.2 because of the time window. Can't we remove the "upgrade all wikis" option, for this release?
2013/9/19 Thomas Mortagne <[email protected]> > On Thu, Sep 19, 2013 at 9:56 AM, Marius Dumitru Florea > <[email protected]> wrote: > > On Thu, Sep 19, 2013 at 10:34 AM, Thomas Mortagne > > <[email protected]> wrote: > >> On Thu, Sep 19, 2013 at 9:31 AM, Thomas Mortagne > >> <[email protected]> wrote: > >>> On Thu, Sep 19, 2013 at 9:10 AM, Marius Dumitru Florea > >>> <[email protected]> wrote: > >>>> On Wed, Sep 18, 2013 at 4:13 PM, Thomas Mortagne > >>>> <[email protected]> wrote: > >>>>> On Wed, Sep 18, 2013 at 3:08 PM, Marius Dumitru Florea > >>>>> <[email protected]> wrote: > >>>>>> On Wed, Sep 18, 2013 at 12:26 PM, Thomas Mortagne > >>>>>> <[email protected]> wrote: > >>>>>>> On Wed, Sep 18, 2013 at 11:09 AM, Guillaume "Louis-Marie" Delhumeau > >>>>>>> <[email protected]> wrote: > >>>>>>>> Hi devs. > >>>>>>>> I am testing the migration from XEM 4.5.4 to XE 5.2 (local > build). Sorin > >>>>>>>> has already reported some problems in JIRA. > >>>>>>>> For me, the problem occurs when I use the "upgrade all wikis" > option. > >>>>>>>> > >>>>>>>> Let me explain it: > >>>>>>>> > >>>>>>>> = Prerequisites = > >>>>>>>> > >>>>>>>> 1. Install a new XEM 4.5.4. > >>>>>>>> 2. Create a workspace with WorkspaceManager (called 'workspace1') > >>>>>>>> 3. Create a new subwiki with WikiManager (called 'subwiki1') - I > create it > >>>>>>>> from a XAR template which is xwiki-enterprise-ui-all. > >>>>>>>> > >>>>>>>> = Upgrade, part 1 = > >>>>>>>> > >>>>>>>> 1. Replace the webapp with a 5.2. > >>>>>>>> 2. Put your own maven directory as the extension repository. (in > >>>>>>>> xwiki.properties: > >>>>>>>> > extension.repositories=local:maven:file://${sys:user.home}/.m2/repository) > >>>>>>>> 3. Upgrade the main wiki > >>>>>>>> > >>>>>>>> It works: > >>>>>>>> - For example Main.SpaceIndex is in version 2.1. > >>>>>>>> - In the "installed extensions" menu, I can see all extensions > correctly > >>>>>>>> upgraded. > >>>>>>>> > >>>>>>>> = Upgrade, part 2 = > >>>>>>>> > >>>>>>>> == Scenario 1 == > >>>>>>>> 1. In the DW, choose "Upgrade all wikis. Choose this option if > all wikis > >>>>>>>> are administrated by the same entity.". > >>>>>>>> It displays "All extensions are up to date. " > >>>>>>>> > >>>>>>>> But: > >>>>>>>> 'workspace1' is not upgraded: > >>>>>>>> - for example Panels.WorkspaceInformationPanel is still in > version 1.1 > >>>>>>>> - In the "installed extensions" menu, I see 'XWiki Enterprise - > UI All'. It > >>>>>>>> has not been upgraded because there is no new version for it. It > has been > >>>>>>>> replaced by xwiki-enterprise-ui-wiki-all. > >>>>>>>> > >>>>>>>> 'subwiki1' is not upgraded: > >>>>>>>> - for example Main.SpaceIndex is still in version 1.1 > >>>>>>>> - In the "installed extensions" menu, I see 'XWiki Enterprise - > UI All ' > >>>>>>>> with the message 'Installed but not valid'. It has not been > upgraded > >>>>>>>> because there is no new version for it. It has been replaced by > >>>>>>>> xwiki-enterprise-ui-common. > >>>>>>>> > >>>>>>>> == Scenario 2 == > >>>>>>>> 1. In the DW, choose "Upgrade only the current wiki. Choose this > option if > >>>>>>>> each wiki is administrated by a separate entity. In this case > it's best if > >>>>>>>> each wiki is upgraded by its owner. ". > >>>>>>>> 2. Go to every subwiki, logged as Admin. You will see the DW. > >>>>>>> > >>>>>>>> 3. Select "Yes, this is an upgrade". > >>>>>>> > >>>>>>> I don't understand this part, it's not supposed to ask you if it's > an > >>>>>>> upgrade. You are supposed to get this question only for old > previous > >>>>>>> wikis where there was no extensions registered corresponding to the > >>>>>>> installed pages. > >>>>>>> > >>>>>> > >>>>>>> Marius ? > >>>>>> > >>>>>> I have this code: > >>>>>> > >>>>>> #macro (displayDefaultUIExtension $distributionUIId) > >>>>>> #set ($installedVersion = > >>>>>> $services.extension.getInstalledExtension($distributionUIId.id, > >>>>>> $extensionNamespace)) > >>>>>> ... > >>>>>> #set ($discard = "#getExtensionJobStatus($distributionUIId.id > >>>>>> $distributionUIId.version.value $distributionUIJobStatus)") > >>>>>> #if (!$installedVersion && (!$distributionUIJobStatus || > >>>>>> $distributionUIJobStatus.state == 'FINISHED')) > >>>>>> ## There is no previous version of the default UI installed on > the > >>>>>> current wiki and there is no job running for > >>>>>> ## the default UI either. > >>>>>> #set ($documentCount = $xwiki.countDocuments('')) > >>>>>> #if ($distributionState == 'NEW' && $documentCount > 30) > >>>>>> ## There are documents in the database but there is no info > >>>>>> about the default UI that was previously installed. > >>>>>> #repairPreviousUI() > >>>>>> #elseif ($distributionState == 'DIFFERENT') > >>>>>> ## TODO: Display the previous distribution UI extension to let > >>>>>> the user uninstall it. > >>>>>> #end > >>>>>> #end > >>>>>> ... > >>>>>> #end > >>>>>> > >>>>>> So $distributionUIId is probably > >>>>>> 'org.xwiki.enterprise:xwiki-enterprise-ui-wiki' and > $installedVersion > >>>>>> is null because EM doesn't think it's installed. The installed > version > >>>>>> is probably xwiki-enterprise-ui. The the upgrade question is > displayed > >>>>>> because the id of the default UI has changed. Is there are way to > >>>>>> improve the condition on my side or should EM detect that > >>>>>> 'xwiki-enterprise-ui' is a previous version of > >>>>>> 'xwiki-enterprise-ui-wiki'? > >>>>> > >>>> > >>>>> We talked about it already and the issue is that you are searching > for > >>>>> xwiki-enterprise-ui-wiki id that you will obviously don't find, you > >>>>> need to test all features of xwiki-enterprise-ui-wiki. A some point > >>>>> you worked around it by putting an hardcoded list somewhere of all > the > >>>>> previous ids of XE AFAIK so you could probably just update it but the > >>>>> best really would be to to it properly by looking at features. > >>>> > >>>> The hard-coded list of XE/XEM XAR ids is still used but only when > >>>> repairing the installed UI (when DW doesn't know which version is > >>>> currently installed). > >>>> > >>>> I'll update the code to take into account all the features > (recursively?). > >>> > >>> The last version is supposed to contains all previous names so no need > >>> to do it recursively. > >> > > > >> Hmm actually the best is maybe to simply don't ask anything if there > >> is any XAR extension installed. If there is something whatever it is, > >> it's an upgrade, done. > > > > You mean iterating over getInstalledExtensions and checking if there > > is one with type XAR? > > Yep. > > > > >> > >>> > >>>> > >>>> Thanks, > >>>> Marius > >>>> > >>>>> > >>>>>> > >>>>>> Thanks, > >>>>>> Marius > >>>>>> > >>>>>>> > >>>>>>>> Note: if you upgrade a subwiki, the proposed UI will be XWiki > Enterprise - > >>>>>>>> UI - Common meanwhile if you upgrade a workspace, it will be XWiki > >>>>>>>> Enterprise - UI - Wiki. It is normal. > >>>>>>>> 4. You will see "Administration Application - 5.2-SNAPSHOT - > Installed > >>>>>>>> version 4.5.4 is not valid", and the same for several extensions. > >>>>>>>> 5. Click on "continue", anyway. > >>>>>>>> > >>>>>>>> All is OK. In the "installed extensions" menu, I can see all > extensions > >>>>>>>> correctly upgraded. > >>>>>>>> > >>>>>>>> = Conclusion = > >>>>>>>> > >>>>>>>> - The scenario 1 don't work at all. > >>>>>>>> - In the scenario 2, it displays "Installed version 4.5.4 is not > valid" > >>>>>>>> which is disturbing, because everything go right in the end. > >>>>>>>> > >>>>>>>> As Marius and Thomas explained me: > >>>>>>>> > >>>>>>>>> When you have an extension installed with version X, and then a > new > >>>>>>>>> version Y is released but with the id changed, extension manager > is not > >>>>>>>>> able to detect it. Ideally the EM should detect this and propose > the user > >>>>>>>>> to upgrade from version X to Y even if the extension id has > changed between > >>>>>>>>> version X and Y. > >>>>>>>>> > >>>>>>>> > >>>>>>>> How can we solve these issues? > >>>>>>>> > >>>>>>>> Thanks, > >>>>>>>> Guillaume Louis-Marie Delhumeau > >>>>>>>> _______________________________________________ > >>>>>>>> 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 > >>>> _______________________________________________ > >>>> devs mailing list > >>>> [email protected] > >>>> http://lists.xwiki.org/mailman/listinfo/devs > >>> > >>> > >>> > >>> -- > >>> Thomas Mortagne > >> > >> > >> > >> -- > >> 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

