On Apr 11, 2012, at 5:28 PM, Eduard Moraru wrote: > On Wed, Apr 11, 2012 at 6:14 PM, Vincent Massol <[email protected]> wrote: > >> >> On Apr 11, 2012, at 4:11 PM, Vincent Massol wrote: >> >>> Hi, >>> >>> On Apr 11, 2012, at 3:31 PM, Eduard Moraru wrote: >>> >>>> Hi Vincent, >>>> >>>> On Thu, Apr 5, 2012 at 7:19 PM, Vincent Massol <[email protected]> >> wrote: >>>> >>>>> Hi devs, >>>>> >>>>> Now that we're starting to use the Extension Manager (EM) we need to be >>>>> careful about the Description and Names we use in our pom.xml since >> they're >>>>> used by the EM to display information to the user. They're also used >> by the >>>>> XR application to import extensions located in maven repository into >>>>> extensions.xwiki.org (EXO). >>>>> >>>>> Right now our names are of the type shown here: >>>>> https://gist.github.com/2311321 >>>>> >>>>> For example: >>>>> [INFO] XWiki Commons - Extension - Parent POM ............ SUCCESS >> [0.004s] >>>>> [INFO] XWiki Commons - Extension - API ................... SUCCESS >> [2.066s] >>>>> [INFO] XWiki Commons - Extension - Handler - Parent POM .. SUCCESS >> [0.017s] >>>>> [INFO] XWiki Commons - Extension - Handler - JAR ......... SUCCESS >> [0.133s] >>>>> [INFO] XWiki Commons - Extension - Repository - Parent POM SUCCESS >>>>> [0.004s] >>>>> [INFO] XWiki Commons - Extension - Repository - Aether ... SUCCESS >> [0.132s] >>>>> [INFO] XWiki Commons - Extension - Repository - XWiki .... SUCCESS >> [0.006s] >>>>> [INFO] XWiki Commons - Extension - Repository - XWiki model SUCCESS >>>>> [0.188s] >>>>> [INFO] XWiki Commons - Extension - Repository - XWiki api SUCCESS >> [0.010s] >>>>> [INFO] XWiki Commons - Extension - Repository - XWiki handler SUCCESS >>>>> [0.024s] >>>>> >>>>> These names are not nice names for users. Actually they're more IDs >> than >>>>> names. And having the users see those in our livetable on EXO isn't >> nice >>>>> for example. Nor is it nice if they see them in the EM UI. >>>>> >>>>> I thus propose that we change the way we use names in our pom.xml to >> use >>>>> English-readable names, without any "XWiki" prefix. >>>>> >>>>> For example, for the example show above we could have: >>>>> >>>>> Extensions >>>>> Extension API >>>>> Extension Handlers >>>>> JAR Extension Handler >>>>> Extension Repositories >>>>> Aether Extension Repository >>>>> XWiki Extension Repository >>>>> XWiki Extension Repository Model >>>>> XWiki Extension Repository API >>>>> XWiki Extension Repository Handler >>>>> >>>> >>>> I`m not trilled at all about seeing this in my maven console. We lose >> any >>>> (1) consistency of display and (2) module membership. >>>> >>>> (1) is pretty obvious since "Extensions" is at plural (and misleading >> btw, >>>> since it's just a parent module), "Extension API" is at singular, "JAR >>>> Extension Handler" is not prefixed by the module and so on. Plus, >> imagine >>>> if the extensions view is sorted by extension name (not currently >>>> implemented). >>>> >>>> About (2), I consider it to be useful extremely to a user to get an idea >>>> from a glance of where that "thing" (that his extension is or depends >> on) >>>> actually is and where it comes from. >>>> >>>> If you look at the other 3rd party extenions, you will see "Commons X" >> (ok, >>>> module X comes from Commons -- "Commons BeanUtils"), "Jetty :: X" (ok, >>>> module X comes from Jetty -- "Jetty :: IO Utility") and so on. I >> understand >>>> that this can be seen as a maven limitation, but all the other projects >> are >>>> working around it like we also did. >>>> >>>> On the other hand, projects like Commons are library projects that have >>>> pretty much a flat structure (<Project Name> <Module Name>). Since in >> XWiki >>>> pretty much everything is an extension, the Core Extensions section (EM >> UI) >>>> will be flooded with xwiki modules which are pretty complex in hierarchy >>>> and which will confuse the user when they are all displayed on the same >>>> level. >>>> >>>> I`m -0, towards -1 on the initial proposal. >>>> >>>> If we really think that we have a problem on this area, I propose that >> we >>>> introduce a convention for module names that both displays module >>>> membership but does not overdo it (a combination of what you propose and >>>> what we currently have): >>>> <ProjectName> - <Feature/ModuleName> - <SubModulePrettyName> >>>> >>>> Example: >>>> XWiki Commons - Extension - API >>>> XWiki Commons - Extension - Aether Repository >>>> XWiki Commons - Extension - XWiki Repository Model >>>> XWiki Commons - Extension - XWiki Repository Handler >>>> XWiki Platform - Annotations - UI >>>> XWiki Platform - Blog >>>> <-- has no submodule >>>> XWiki Rendering - Macro - HTML >>>> etc. >>>> >>>> The main idea was to make sure that we don`t have any extra levels in >>>> <SubModulePrettyName>. IMO, 3 levels is decent from a user's POV and >> should >>>> be enough for devs when structuring their code. If you think about it, >>>> that`s pretty much what we already do in the maven project structure. >>>> >>>> If the extensions view only displayed XWiki extensions (without 3rd >> party >>>> modules from other projects) then your initial proposal would have been >>>> relevant from the user's POV (though still not good for developers). >>>> >>>> Maven is at hart a development tool. Yes, we`ve decided to reuse it on >> the >>>> user side as well, but we should not trade a working dev practice for a >>>> pretty name that will not even be useful to the user anyway. I fail to >>>> envision a practical usecase for the development process where the maven >>>> console displays pretty names. It will just be a string blob that will >> make >>>> things harder. >>>> >>>> WDYT? >>> >>> <Answer on naming> >>> >>> I was the one who defined both the names we use in our pom.xml, the id >> in our pom.xml and our directory names. I have chosen to use a structure >> that represents the full name in all places: >>> >>> * For names: XWiki Commons - Extension - API >>> * For ids: xwiki-commons-extension-api >>> * For directories: xwiki-commons-extension-api/ >>> >>> I've been told that we prefer to use simpler names since the hierarchy >> already contains the information about the project. This proposal (which is >> not yet implemented but decided AFAIK) initially came from the fact that >> long directory names don't work on Windows. >>> >>> It's the same for names. You don't need to have the full "path" in a >> pom.xml name to know where it's coming from since it's contained in a >> pom.xml which has a location. >>> >>> * For names: Extension API >>> * For ids: xwiki-commons-extension-api (we need the full name for id >> since we use a fixed groupid ATM. We could drop the first path though if we >> really and have only "extension-api" since the group id is >> "org.xwiki.commons" but since this is a technical id I'm not sure it's a >> good idea and it's not the topic of this mail anyway ;)) >>> * For directories: api/ (more precisely: commons/extension/api/) >>> >>> Thus using short names is not shocking at all. To be honest I doubt >> anyone is really using the name when developing. Having a short name >> wouldn't be an issue. >> >> FTR Maven POM Reference (http://maven.apache.org/pom.html) says the >> following about the <name> element: >> >> " >> name: Projects tend to have conversational names, beyond the artifactId. >> The Sun engineers did not refer to their project as "java-1.5", but rather >> just called it "Tiger". Here is where to set that value. >> " >> >> The name is not supposed to be an id. There's artifactid for that. >> > > Again, an example of a top level project. Works well for small top level > projects too. But I don`t think it works that well for submodules of bigger > projects. > > Anyway, my vote is non-binding but I still think it will lose developer > value in favour of an insignificant user value.
Actually I think quite the opposite: this change is an insignificant change for the developer but a major advantage for the user. Again, having a user see "XWiki Rendering - Macros - HTML Macro" is way less nice than him seeing "HTML Macro", don't you agree about that? And again the path can be shown beneath as in: HTML Macro (coming from XWiki Rendering / Macros) <-- displayed in smaller letters and in light gray (for ex) Thanks -Vincent > Thanks, > Eduard > > >> >> Thanks >> -Vincent >> >>> </Answer on naming> >>> >>> I think the main point where I have not been clear is that there has >> never been any intention of having XWiki modules displayed flat in the >> Extensions Home Page livetable :) >>> >>> If that had been the intention then we would definitely have needed a >> long name to group stuff together. But again it's not the intention at all. >> Why not? Simply because it doesn't scale and would mean showing lots of >> stuff to users, flooding them. >>> >>> So we need to talk about what we're doing now and future⦠>>> >>> * Now: We only display modules that are either relevant to the user (ie >> that they can download) or modules that are used as documentation points. >> We're not planning to import all modules. The idea is to continue importing >> only extensions useful to users or top level modules to hold the >> documentation for that module. >>> >>> * Future: I think the best representation for the future will be the >> following: >>> - a treeview when you wish to browser everything. So to take the example >> of "XWiki Rendering - Macros - HTML Macro" it would be under the XWiki >> Rendering/Macros/HTML Macro tree nodes >>> - if you start typing letters in this treeview-livetable widget you'll >> see all the extensions matching the letters you type, in a flat view (no >> longer hierarchical) >>> - we will continue to have tags to provide categorizations of >> extensions: for example "'Macros", "Applications", "LDAP", "HTML", etc >>> - we will also need a view (probably the default - the treeview would be >> a tab to click to get it) which is a flat view listed by user ratings. So >> the most used extensions will get better ratings and will show at the top, >> thus making the more technical or less used extensions got at the bottom of >> the list. >>> - When displayed in flat view, we could easily display the location of >> the extension on the next line in smaller characters and in grey color >> instead of black for example (to make it less visible) >>> >>> To conclude: it's very important that we have a pretty name as the name. >> This is the intent of Maven's pom.xml <name> tag. The hierarchy is provided >> by the <parent> information and can easily be gathered and displayed, >> whether you are in maven (mvn dependency:tree, your IDE) or in the EM UI. >>> >>> >>>> P.S.: I`m +0 for the new proposal, since I am quite happy with the >> current >>>> setup. >>> >>> What new proposal? >>> >>> Thanks >>> -Vincent >>> >>>> Thanks, >>>> Eduard >>>> >>>> >>>>> The alternative is to introduce a custom property in our pom.xm that >> would >>>>> be used by the EM and XR but that's not a good solution because it >> means >>>>> even more maintenance work. >>>>> >>>>> While not using technical id as names in our pom.xml is not as nice >> when >>>>> displayed in the Maven Reactor I feel it's still the best solution we >> have. >>>>> >>>>> Here's my +1 >>>>> >>>>> Thanks >>>>> -Vincent _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

