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

