On Thu, Nov 17, 2011 at 8:50 PM, Vincent Massol <[email protected]> wrote:
>
> On Nov 17, 2011, at 11:34 AM, Thomas Mortagne wrote:
>
>> On Thu, Nov 17, 2011 at 11:04 AM, Vincent Massol <[email protected]> wrote:
>>>
>>> On Nov 17, 2011, at 10:55 AM, Thomas Mortagne wrote:
>>>
>>>> On Thu, Nov 17, 2011 at 9:57 AM, Vincent Massol <[email protected]> wrote:
>>>>> Hi devs,
>>>>>
>>>>> Since we're going to use Maven POM metadata to display extensions in the 
>>>>> Extension Manager UI it's important that we have all data filled and with 
>>>>> correct value.
>>>>>
>>>>> Sergiu pointed to me that currently our website <url> are wrong.
>>>>>
>>>>> This is because the top level POM has <url>http://xwiki.org</url> and 
>>>>> Maven automatically suffixes it with artifact Ids.
>>>>>
>>>>> For example for Commons Component API this gives us:
>>>>>
>>>>> <url>http://xwiki.org/xwiki-commons-pom/xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-api</url>
>>>>>
>>>>> which is not pointing to anything valid.
>>>>>
>>>>> I see 2 ways of fixing this:
>>>>>
>>>>> Solution 1
>>>>> ========
>>>>>
>>>>> Do as I started this morning, i.e. set the <url> explicitly. For example 
>>>>> I've set PHP Macro module URL this morning to 
>>>>> <url>http://extensions.xwiki.org/xwiki/bin/view/Extension/PHP+Macro</url> 
>>>>> and Commons Observation API (the 3 modules: parent + api + local) to  
>>>>> <url>http://extensions.xwiki.org/xwiki/bin/view/Extension/Observation+Module</url>.
>>>>>
>>>>> Pros:
>>>>> - Easy and we can point to wherever the documentation is located
>>>>>
>>>>> Cons:
>>>>> - Tedious
>>>>> - Fragile. If we rename a page on the wiki then the link is broken
>>>>>
>>>>
>>>> -0. Not a big fan of this solution., way too much work.
>>>>
>>>>> Solution 2
>>>>> ========
>>>>>
>>>>> Set the top level URL to something like:
>>>>>
>>>>> <url>http://xwiki.org/documentation?id=</url>
>>>>>
>>>>> For example for Commons Component API this will generate:
>>>>>
>>>>> <url>http://xwiki.org/documenation?id=/xwiki-commons-pom/xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-api</url>
>>>>>
>>>>> Then:
>>>>> * Have an apache redirection for /documentation to some wiki page such as 
>>>>> http://xwiki.org/xwiki/bin/view/Main/ModuleDocumentation
>>>>> * Have the logic inside that page to transform paths (such as 
>>>>> "/xwiki-commons-pom/xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-api"
>>>>>  into proper URLs). Since I don't think we can have a generic logic, I'd 
>>>>> simply put a big hashtable to start with.
>>>>>
>>>>> Pros:
>>>>> - Simple, no need to modify all poms. We only need to change the top 
>>>>> level pom <url> value
>>>>> - Much easier to keep up to date since when we rename pages all we need 
>>>>> to do is edit the ModuleDocumentation page. Actually when we support page 
>>>>> renames across wikis we could have the links in that page be 
>>>>> automatically renamed ;) With Solution 1, when you rename the URL you 
>>>>> need to re-release the module which is a big pain.
>>>>>
>>>>> Cons:
>>>>> - I can't see any really :) We just need to be sure that 
>>>>> http://xwiki.org/documentation is available.
>>>>>
>>>>> So I'm definitely for 2, WDYT?
>>>>
>>>> Solution 3
>>>> ========
>>>>
>>>> Set the top level URL to something like:
>>>>
>>>> <url>http://xwiki.org/documentation?id=${groupId}:${artifactId}</url>
>>>> (maybe 
>>>> <url>http://xwiki.org/documentation?id=${groupId}:${artifactId}&path=</url>
>>>> if we can't disable auto-completion).
>>>
>>> We can't disable auto-completion AFAIK - I've google it earlier today with 
>>> no luck (if by that you mean the fact that maven suffixes the base url with 
>>> the artifact ids).
>>>
>>>> And use the id to find the extensions page on extensions.xwiki.org
>>>> instead of maintaining a map.
>>>
>>> It's mostly the same thing since we can extract the last segment in the 
>>> path + we'll still need to maintain a map since we don't have web page for 
>>> all submodules. For ex for the 3 modules in commons observation it's the 
>>> same documentation URL.
>>
>> Assuming the artifactid is always unique and no other contrib
>> extensions has a common part after ":" in its id.
>>
>> This solution is about resolving the page instead of having to
>> maintain a static map, for the guy who will have to maintain this map
>> it's very different :)
>
> BTW I still don't get your proposal. How do you find the extension page from 
> the extension id?
>
> Or is your suggestion to rename all extension page to be named 
> .../Extension/${groupId}:${artifactId} ? (in which case it's a big change and 
> I'm not sure I like it because the URLs won't be nice, and there will be 
> differences in page names between extensions).
>
> What did I miss?

Extensions on extensions.xwiki.org are supposed to provide a there id
(it's a field in the class) to be valid extensions from EM/XR POV.

>
> Thanks
> -Vincent
>
>> No need to maintain a static Map for common documentations, better
>> creating page on extensions.xwiki.org for them and redirect or put a
>> link to the central right page. It's also possible to search for
>> "xwiki-commons-component" when "xwiki-commons-component-api" can't be
>> found, then try "xwiki-commons" etc. since this should work for most
>> of them right now and for all of them when maven folder/id refactoring
>> proposal from Sergiu will be implemented (because of the "s" we have
>> sometimes in parent ids).
>>
>>>
>>>> Pros:
>>>> - same as Solution 2 plus no need to maintain a map ;)
>>>
>>> See above.
>>>
>>>> Cons:
>>>> - the URL is not very nice
>>>
>>> Indeed, there's duplicated information.
>>>
>>> We could maybe add the groupId in the URL, **IF** variable expansion work 
>>> in <url>. I guess you tried it before proposing it right?
>>
>> Did not tried but I don't see why it would be the only place where
>> maven variables don't work the same way.
>>
>>>
>>> Thanks
>>> -Vincent
>>>
>>>>> Thanks
>>>>> -Vincent
>>> _______________________________________________
>>> 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