Hi xwikiers,
Here is a quick status of Extension Manager work in progress and what we
(Jean-Vincent Drean and me) plan to do for 3.2.
= XWiki Repository =
3.1 main target was XWiki Extension Repository and work on it will continue
in 3.2 as well
Conversion of
extensions.xwiki.org as a XWiki Extension Repository slipped a
bit but that will hopefully be fixed during 3.2. What makes it complex is
that REST URLs are going to be changed during 3.2. I'm still not sure what's
the best between use a 3.2 snapshot of XR rest service which wil not work
with 3.1 or keep 3.1 which will not work with 3.2
= Virtual extensions =
Currently we have an issue when trying to install old stuff depending on
extensions for which the name changed like xwiki-core which is now
xwiki-platform-oldcore so to take care of that 3.2 will introduce virtual
extensions.
The id is that an extension can comes will a list of id aliases which will
be use as well as its own id to resolve dependency agains already installed
extensions. For example org.xwiki.platforms :xwiki-platform-oldcore will
declare com.xpn.xwiki.platform:xwiki-core in its virtual extension list so
when an old plugin is installed using extension manager it does not try to
actually install the version of com.xpn.xwiki.platform:xwiki-core declared
by the plugin and make XWiki pretty much unusable.
This will also allow to more easily suport several implementations for the
same API, all theses implementations would declare the same virtual
extension id.
This is very similar to Debian virtual packages concept.
See
http://jira.xwiki.org/jira/browse/XWIKI-6742.
= Reporting improvement =
A bridge producing events based on log as just been committed, the idea is
to have a generic way for component to access application logs easily. This
can be used later with activity stream or remote observation manager.
For Extension Manager the plan is to use that in the job manager (former
task manager) to gather detailed log produce by extension manipulation job
like install or uninstall and queue it in the job status.
On the same idea a progression system has just been committed in extension
manager which update a progress offset during job execution using events.
Job Manager and both related progress and log tools are currently "hidden"
in extension manager but will be move as common tools when we are happy
enough with it to make easier to report progress or long task in XWiki
(Lucene indexing, report page rendering log in some tab, etc.).
See
http://jira.xwiki.org/jira/browse/XWIKI-6781
= Non interactive 3 ways merge of XAR =
Xar handler will support full 3 way merge of applications between previous
xar, new xar and database. 3.2 will probably be fully non interactive as a
first version but we plan to implement a question/answer system allowing to
let user do live conflict resolution since there is always corner case where
a generic automated system can't find any good solution.
See
http://jira.xwiki.org/jira/browse/XWIKI-6650.
= Stabilized API =
Starting with 3.2 most Extension Manager APIs will not be broken without
long deprecation phase when possible as any other public API in XWiki. BTW
to make sure I'm not lying too much would be great to get as much review as
possible on theses ;)
= New UI =
Last but not least we will start the real (as not just a demo of the
framework features) Extension Manager UI in 3.2. The plan is to follow
Ecaterina Valica's (awesome) proposal you can see on
http://incubator.myxwiki.org/xwiki/bin/view/Improvements/ExtensionManager.
To be more precise we should be able to do the following for 3.2:
* general UI refactoring based on
http://incubator.myxwiki.org/xwiki/bin/view/Improvements/ExtensionManager to
some extent
* detailed progress and log of extensions manipulation thanks to new
framework APIs
* extension detailed informations
* live table for search result
See
http://jira.xwiki.org/jira/browse/XWIKI-6775
Thanks,
--
Thomas and JV