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. 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 > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

