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?

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

Reply via email to