On Tue, Aug 28, 2012 at 5:02 PM, Vincent Massol <[email protected]> wrote:
>
> On Aug 28, 2012, at 4:55 PM, Thomas Mortagne <[email protected]> 
> wrote:
>
>> On Tue, Aug 28, 2012 at 4:37 PM, Vincent Massol <[email protected]> wrote:
>>>
>>> On Aug 28, 2012, at 4:26 PM, Thomas Mortagne <[email protected]> 
>>> wrote:
>>>
>>>> On Tue, Aug 28, 2012 at 4:20 PM, Vincent Massol <[email protected]> wrote:
>>>>>
>>>>> On Aug 28, 2012, at 3:44 PM, Thomas Mortagne <[email protected]> 
>>>>> wrote:
>>>>>
>>>>>> On Tue, Aug 28, 2012 at 3:35 PM, Vincent Massol <[email protected]> 
>>>>>> wrote:
>>>>>>>
>>>>>>> On Aug 28, 2012, at 3:31 PM, Thomas Mortagne 
>>>>>>> <[email protected]> wrote:
>>>>>>>
>>>>>>>> On Tue, Aug 28, 2012 at 3:23 PM, Thomas Mortagne
>>>>>>>> <[email protected]> wrote:
>>>>>>>>> On Tue, Aug 28, 2012 at 3:18 PM, Vincent Massol <[email protected]> 
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> On Aug 28, 2012, at 2:50 PM, Thomas Mortagne 
>>>>>>>>>> <[email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> On Tue, Aug 28, 2012 at 1:37 PM, Vincent Massol 
>>>>>>>>>>> <[email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> On Aug 28, 2012, at 1:15 PM, Thomas Mortagne 
>>>>>>>>>>>> <[email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi guys,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I would like to modify a bit the Maven XAR plugin to add in the
>>>>>>>>>>>>> package.xml some extension related informations like the 
>>>>>>>>>>>>> extension id
>>>>>>>>>>>>> and version at the very least.
>>>>>>>>>>>>
>>>>>>>>>>>> Why not package the pom.xml instead in META-INF/maven/* as it's 
>>>>>>>>>>>> done by the Maven JAR plugin?
>>>>>>>>>>>
>>>>>>>>>>> Because it's not supposed as part of XAR format by existing XAR
>>>>>>>>>>> parser, you will get an error because it will fail to parse it as a
>>>>>>>>>>> document. The proposal here is to use something that already exists,
>>>>>>>>>>> does not break anything and is very easy to do.
>>>>>>>>>>
>>>>>>>>>> I personally much prefer to add META-INF support over changing the 
>>>>>>>>>> package.xml format because it's much better aligned with all other 
>>>>>>>>>> formats like JAR, EAR, WAR, etc and with the way we handle JAR 
>>>>>>>>>> extensions.
>>>>>>>>>
>>>>>>>>> I think you don't understand what I mean here. The issue is not that
>>>>>>>>> it's complex to support it, adding support in 4.2 for META-INF will
>>>>>>>>> not change the fact that you will get an error in older version with
>>>>>>>>> your XAR.
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> It doesn't look complex to add either, it's a matter of excluding 
>>>>>>>>>> META-INF files from the parser and to use the Maven Archiver (see 
>>>>>>>>>> http://maven.apache.org/shared/maven-archiver/).
>>>>>>>>
>>>>>>>> Making the XAR format depends on Maven is not exactly something
>>>>>>>> generic or even very nice. Core extension scanner is looking at the
>>>>>>>> pom located in jar file among other things in order to find as much as
>>>>>>>> it can but lets not forget that this is a hack and nothing else.
>>>>>>>
>>>>>>> Whatever the solution we need consistency IMO. If your proposal is to 
>>>>>>> create an extension.xml file located in META-INF/xwiki and that we 
>>>>>>> would put in all our extension types then I'm all for it too.
>>>>>>>
>>>>>>> I don't like mixing extension information with packaging information. 
>>>>>>> For me package.xml shouldn't contain extension information.
>>>>>>
>>>>>> It's exactly the same thing. The package.xml file is the XAR way to
>>>>>> provide informations about the file and is generated from the pom.xml.
>>>>>> It already provide the a subset of extension informations (name,
>>>>>> version, license,  etc.) so the proposal here is about adding more
>>>>>> things.
>>>>>
>>>>> For me the package.xml should probably even be removed or at least a lot 
>>>>> of information should be removed. There's no point in listing the files 
>>>>> explicitly for example. Same for whether it's a backup pack or not.
>>>>>
>>>>> And a lot of the information currently in package.xml should be moved to 
>>>>> META-INF/xwiki/extension.xml such as author, license, version, name, 
>>>>> description.
>>>>>
>>>>> So I'm definitely with you about creating a XWiki-specific descriptor 
>>>>> (not tied to maven) located in META-INF/xwiki/extension.xml for all our 
>>>>> extensions, but beefing up package.xml goes in the wrong direction IMO.
>>>>>
>>>>> At the very least I'd like that we agree about where we'd like to go 
>>>>> (I've made a proposal with META-INF/xwiki/extension.xml) and then discuss 
>>>>> how to get there and what it takes. If it means going through 
>>>>> intermediary steps, then fine, the important part for me being to agree 
>>>>> on where we want to go.
>>>>
>>>> Maybe but that's a different subject and IMO it sounds like creating a
>>>> new packaging format for wiki pages.
>>>
>>> There are 2 topics:
>>> * Create a generic format for all xwiki extensions (the 
>>> META-INF/xwiki/extension.xml), nothing to do with wiki pages
>>> * Modify the existing XAR format descriptor (package.xml) to remove stuff 
>>> that are 1) not needed (like the list of files and 2) can be found in the 
>>> extension information (i.e. in  META-INF/xwiki/extension.xml)
>>>
>>> So far you/we have decided that the xwiki extension format will be the 
>>> pom.xml format which is why we are using it in our JAR file to discover 
>>> extensions.
>>
>> We never decided such thing.
>
> It's a de facto choice since this is currently how our artifacts provide 
> extension information for the Extension Manager (we even have custom pom 
> properties for that).

No it's not, it's how Maven Repository provide extension information
for Extension Manager. When you install an extension from XWiki
Repository there is not a single line of code reading at any pom.xml.

>
>> Again the core extension scanner try to
>> find all it can from the jar located and among other things it check
>> if there is pom.xml because that's a format in which it can find
>> extension informations usually but there is others and for some JAR it
>> does not exists. The only other thing that look at pom.xml is the
>> Maven Reposirory handler (and I actually plan to move the core scanner
>> part which looks at pom descriptor to the Maven handler when I get
>> some time). Extension Manager in general does not officially depends
>> in any way on Maven, you don't have to build you extension with Maven
>> for it to be supported by Extension Manager and I hope you will never
>> have to.
>>
>> So if you want to start designing a new packaging format no problem
>> and it's actually listed in
>> http://dev.xwiki.org/xwiki/bin/view/Design/ExtensionManageXWikiPackage
>> but it's a totally different subject and in no way a priority. The way
>> standard to provide informations about the package in a XAR is
>> package.xml so I'm just proposing to add one more informations. You
>> are talking about packing format that does not have anything to do
>> with XAR, the fact that you change everything and still call it XAR is
>> only you point of view.
>
> I know you're on a tight schedule for 4.2 and I don't want to block you so 
> I'm going to vote +0 for now but I'm still of the view that it isn't the 
> right place for the future. Let's hope it doesn't cause us more harm (but it 
> should be ok because removing one or several properties in the future is 
> going to be roughly the same cost).
>
> Thanks
> -Vincent
>
>>> Based on that it's not logical to invent a new way to add extension 
>>> information even if the existing package.xml contains already some 
>>> information that happens (by pure coincidence) to be the same as the one 
>>> needed by the extension manager (for ex the version in package.xml could be 
>>> a completely different version than the extension version).
>>>
>>> Based on this the logic is to add the pom.xml file to the XAR.
>>>
>>> Now you said that you didn't think using the Maven format is good. Fine. 
>>> This is a change from what we had decided so far and I'm ready to accept 
>>> that we may want to dissociate from Maven; hence my proposal about the 
>>> META-INF/xwiki/extension.xml file.
>>>
>>> So we have 2 choices for me:
>>> * continue with the current rule of using pom.xml files as containing 
>>> extension information
>>> * decide to bite the bullet and invent a new format for holding extension 
>>> information
>>>
>>> Those are the 2 *good* choices for me. Ofc we need to handle backward 
>>> compat as best as we can but that's doable.
>>>
>>> You'd like to do the 3rd choice which IMO is a quick and dirty solution. 
>>> I'd accept it but only as a quick hack for 4.2 and that we would need to 
>>> correct ASAP.
>>>
>>>> I need something for 4.2 and
>>>> adding the id in package.xml along with the other existing extension
>>>> informations is quick, easy, fully retro compatible and does not
>>>> really introduce anything new.
>>>
>>> Sure but it does introduce something new: the new information you add to 
>>> package.xml. And this is exactly like a public API; once it's there we have 
>>> to support it and be retro compatible. So we have to be careful because 
>>> it's a pain to change after.
>>>
>>> I'm curious to know what others think about this.
>>>
>>> Thanks
>>> -Vincent
>>>
>>>>> Thanks
>>>>> -Vincent
>>>>>
>>>>>>> Thanks
>>>>>>> -Vincent
>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> -Vincent
>>>>>>>>>>
>>>>>>>>>>>> It would be more generic and similar to how JARs are handled.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks
>>>>>>>>>>>> -Vincent
>>>>>>>>>>>>
>>>>>>>>>>>>> The idea is to be able to know what a XAR is exactly like we have 
>>>>>>>>>>>>> the
>>>>>>>>>>>>> pom.xml packaged with the jar file for example.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Among other things it will cover the following use cases:
>>>>>>>>>>>>> * when someone import a XAR with the standard UI, automatically
>>>>>>>>>>>>> register it in the extension index if it happen to be an extension
>>>>>>>>>>>>> (i.e. if we find extension informations in its package.xml)
>>>>>>>>>>>>> * wiki manager and workspaces can properly register actual 
>>>>>>>>>>>>> extension
>>>>>>>>>>>>> when creating their default template from a XAR the first time 
>>>>>>>>>>>>> (this
>>>>>>>>>>>>> is for example required to be able to upgrade a farm with EM where
>>>>>>>>>>>>> pretty much all the wiki as been created from this default 
>>>>>>>>>>>>> template)
>>>>>>>>>>>>>
>>>>>>>>>>>>> In both cases the idea is to support as much current behaviours 
>>>>>>>>>>>>> as we
>>>>>>>>>>>>> can and still be able to use the full power of Extension Manager.
>>>>>>>>>>>>>
>>>>>>>>>>>>> There should not be any backward compatibility issue here since it
>>>>>>>>>>>>> does not really change anything in the XAR structure.
>>>>>>>>>>>>>
>>>>>>>>>>>>> WDYT ?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Here is my +1
>>> _______________________________________________
>>> 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

Reply via email to