On Mon, Mar 27, 2017 at 1:23 PM, Krzysiek Płachno <krzysiekplac...@gmail.com> wrote: > Thanks for answer, Thomas! Sorry for the delay in my response, but I wanted > to gather some more question to put them all in one mail. It took me a bit > long, so maybe that was not the best strategy... > > 1. mvn install -DskipTests=true helped - BUILD SUCCESS :) > > 2. I've dived a bit more into documentation of system and extension module > and I have some questions: (Btw. this diagram here clarified a lot: > http://extensions.xwiki.org/xwiki/bin/view/Extension/Extension%20Module%20Architecture > with > such documentation it's going to be pure fun to contribute to project :)) > > 2a. There's prepared API for easy extension of Extension Module, > especially: ExtensionRepositorySource, ExtensionHandler, > ExtensionRepositoryFactory - these interface classes are located in > xwiki-commons project. I've found implementation of this api for XWiki > Repository in xwiki-commons as well. But tried to find implementation of > Maven Repository, but I didn't succeed. Where can I find it?
All supported repositories handlers are located on https://github.com/xwiki/xwiki-commons/tree/master/xwiki-commons-core/xwiki-commons-extension/xwiki-commons-extension-repositories. The Maven one is https://github.com/xwiki/xwiki-commons/tree/master/xwiki-commons-core/xwiki-commons-extension/xwiki-commons-extension-repositories/xwiki-commons-extension-repository-maven. > > 2b. If I understood correctly - adding support for Pypi will come down > to writing a typical Jar extension, that will implement required > interfaces, and so will be possible to be integrated with Extension > Manager, right? This new "Support of Pypi Extension" is going to be > deployed to Maven or XWiki Repository like any other extension? Will there > be any difference to other extensions? Exactly. > > 2c. It's not completely clear for me how integration with Pypi should > work. From XWiki repositories XARs are downloaded, from maven JARs, but > Pypi stores python packages in .egg or .whl. How are they supposed to be > installed in XWiki? Is it like that - during extension installation the > python code inside downloaded package should be transformed to wiki page > and inserted as a script? Nothing that complex I think. There is some experimentation to do here but Jython automatically search for python script everywhere in the classloader and egg (I did not check for whl) are actually very close to JARs so either: * Java is not too peaky and all you have to do is handle the egg/wql file as if it was a JAR extension and Jython will do the rest * If Java complain about a missing MANIFEST file or something, repackage the file with a generated MANIFEST java-style file in to (or anything else that would make Java happy) but it should not be much more that adding one or two file to what is already a zip file For Maven need I'm releasing a JAR version of Pygments on Maven central () and all I do is unpack the egg file as it is and build it with Maven. > > 2d. Do I understand it correctly - that for management (instalation > and possibly execution) of extension of given type - the one that is > responsible for this management is the implementation of > org.xwiki.extension.handler.ExtensionHandler? So, regardless how the > downloaded .egg packeges would be managed - they shall be managed in > EggExtensionHandler? There is to choices here actually: * make pypi repository handler expose JAR extensions and deal on his side with what is needed to make EGG package be supported by Java classloader properly * make pypi repository handler expose EGG extensions and implement a EGGExtensionHandler which does what is needed to load the EGG file in a Java classloader > > 3. And at the end - just for clarification: What's the difference between > module and extension? Are modules the special (bigger) extensions? Like > Component Module? > http://extensions.xwiki.org/xwiki/bin/view/Extension/Component%20Module When you see "Module" in http://extensions.xwiki.org pages name it usually means top level module documentation usually containing several (if not many) extensions. Extension basically means file. > > > Best! > Krzysztof > > 2017-03-22 17:49 GMT+01:00 Thomas Mortagne <thomas.morta...@xwiki.com>: > >> On Wed, Mar 22, 2017 at 5:36 PM, Krzysiek Płachno >> <krzysiekplac...@gmail.com> wrote: >> > Hi Thomas! >> > >> > Thanks for quick answer! >> > >> > 1) As regards problems during compilation: >> > - on Windows I get following error: http://pastebin.com/t9REjH3f (it >> > cannot find one snapshot on nexus) >> >> The failure you get is probably because of -Dmaven.test.skip=true. It >> should be OK if you use -DkipTests instead (which build test but don't >> execute them). >> >> > - on linux - run of phantom.js causes memory problems >> > >> > 2) You say that "you usually don't to build XWiki entirely to work on >> it," >> > but when you upgrade one of the modules, you need to recompile all the >> > modules that depend on it - running "mvn install" on main pom, right? >> (And >> > then typically run some integration test, to assure nothing got broken by >> > commit). >> > Or do you only compile locally the module your're working on, delegating >> > the compilation of whole project to external service (like jenkins)? >> >> Most of the time modifying a module is not going to have any impact on >> the jar built in backward dependencies, only tests and yes we have >> http://jenkins.xwiki.org/ to catch that (unless you know your change >> will have a big impact and you should try to fix backward dependencies >> before pushing). >> >> > >> > 3) Yes, my (at least - potentially my ) task regards Extension Manager, >> > which is an extension itself, but it's a part of the "Core extensions" >> > (according to http://platform.xwiki.org/xwiki/bin/view/DevGuide/ >> Architecture) >> > and located in XWiki-platform module, right? (More specifically: >> > xwiki-platform > xwiki-platform-core > xwiki-platfrom-extension ?) >> > So that's why I stated with preparation of environment for this >> > xwiki-platform modlue, starting with a try to build it locally :) >> >> Extension Manager is part of the core extensions yes but a Pypi >> repository handler would be installed as optional extensions. There is >> already extension point for anyone to add support for any kind of >> repository without touching Extension Manager. All it takes is >> implementing org.xwiki.extension.repository.ExtensionRepositoryFactory >> component role (and in case of Pypi also >> org.xwiki.extension.handler.ExtensionHandler since it would probably >> also need to add support for egg or whl extensions types). >> >> > >> > And just to be sure: 4) Have I understood well, that all conversation >> > regarding open development of XWiki like, clarifying doubts, asking of >> > advice and ect. should go through mailing list? I mean it may produce >> huge >> > mail stream to many people, and I guess not everyone is interested in >> > everything in system, but rather in some part he or she is working on. >> >> Either dev mailing list of IRC for quick questions/answers. Just not >> in private mails with the mentor (except for too personal matter of >> course). >> >> > >> > Btw. I'm going through Dev guides and I'm impressed how well >> > it's maintained and documented. +1 for the community :) >> >> Always nice to ear since there is never enough or good enough >> documentation :) >> >> > >> > Best, >> > Krzysztof >> > >> > >> > 2017-03-21 16:59 GMT+01:00 Thomas Mortagne <thomas.morta...@xwiki.com>: >> > >> >> usually don't to build XWiki entirely to work on it, >> >> >> >> -- >> Thomas Mortagne >> -- Thomas Mortagne