On Nov 18, 2011, at 8:29 AM, Thomas Mortagne wrote:

> 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.

ok I see. So we'll do a XWQL query on the extension id and then get the 
matching document and its URL. Cool.

+1 for 3) too then.

Now is http://xwiki.org/documentation a good prefix?

Other ideas:
- http://xwiki.org/doc
- http://doc.xwiki.org
- http://xwiki.org/module

I don't have any strong opinion on this.

IMO the redirect page should be a page on 
extensions:ExtensionCode.LocateExtension or 
extensions:ExtensionCode.ExtensionDocumentationRedirect

I'll try to set this up.

Thanks
-Vincent
> 
>> 
>> 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

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to