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