1) Granularity of user visible plugins listed in available and installed lists as described in Pavel's document. The categories are important and should be documented in dev howto somewhere, ie having a list of "well-known" categories, so that 3rd party who implements a module, say, to support ClearCase, will put it under the same category we put our CVS, Subversion and Mercurial The list of plugins, their names, and categories in Pavel's proposal will have to go through several iterations but the basic idea is correct. It speaks in term of features the users care about. OWNER: Pavel to define the final list and get it reviewed and implemented, for all modules in NetBeans and also supervise what gets into stable update center --%----%----%----%----%----%-- 2) Updates If updates are available we inform the users and let them decide to update now or later. All or nothing. No checkboxes. We agreed that the download size and changelog are the most important information at that moment, not the list of modules being updated. Showing the description of the modules without showing the changelog is weird. But displaying changelog will not be implemented in 6.0, we are out of time. Showing the changelog shouldn't be a big deal, having a changelog from all updated modules is a big logistic headache and would need time for our developers to practice. I also don't even want to think about localization of changelog at this moment If no updates are available we should move the Updates tab somewhere else. This tab is empty most of the time, so it should not be selected when the user opens the Plugin Manager. OTOH if updates are available this is the most important information and should be highlighted OWNER: Jano to come up with the new UI. Keep it simple OWNER: Jirka/Radek to implement it --%----%----%----%----%----%-- 3) How grouping should be implemented We agreed to use the "kit" module or pick an existing module which naturally fits this purpose. Per Pavel's proposal This means nothing special has to be done to the UC catalog, nothing special has to be done in generating that catalog. Back to pre-6.0 state. No <feature> element in DTD This makes many of the open issues listed in http://wiki.netbeans.org/wiki/view/NB6PluginManagerIssues irrelevant. That document lists several issues which still need to be resolved like setting file permissions (e.g. jruby executables). They are not related to the changes we do in AU client per se --%----%----%----%----%----%-- 4) How to flag a module not to be shown in the AutoUpdate client UI We agreed that it's not a good idea to overload the meaning of "autoload". We even have examples of modules which should be shown in AU UI but must be regular modules not autoload for technical reasons. So we will use an explicit "flag" for this purpose. Several alternatives were discussed 4a) An explicit flag in module manifest to indicate that module not to be shown in AU UI OpenIDE-Module-Show-In-AutoUpdate-Client: [true | false] This attribute is retained after the module is installed and gets propagated into NBM's info.xml and UC catalog xml. The AU client has enough information to decide to show or not to show 4b) An explicit flag in *another* module (perhaps the kit module) to turn on/off visibility of the other modules. 4c) Overload the meaning of module category. If the category is empty string or "Library" then do not show DECISION: we go with 4a TASKS * Without any work anywhere else the developer can just go ahead and put this new attribute in <module>/manifest.mf but it would be better if we do it this way extend the module build infrastructure (ie harness) so that it looks for a property "show.in.autoupdate.client=true/false" in nbproject/project.properties and generates the corresponding OpenIDE-Module-Show-In-AutoUpdate-Client: [true | false] in MANIFEST.MF If show.in.autoupdate.client is missing then generates true (show) for regular modules and false (hide) for autoload modules. I feel that eager modules should be shown by default Of course if the developer already specifies OpenIDE-Module-Show-In-AutoUpdate-Client in <module>/manifest.mf then it takes precedence validate-catalog ant task should be adapted accordingly to recognize this new manifest attribute OWNER: Jesse * Enhance apisupport to show a corresponding checkbox in module's project customizer and generates OWNER: Jesse * Dev documentation OWNER: Jesse * AU client looks for this new attribute in module.jar:/META-INF/MANIFEST.MF, catalog.xml or info.xml and behaves accordingly OWNER: Jirka/Radek --%----%----%----%----%----%-- 5) Special case for modules in platform cluster Do not show in AU. Just Platform (I am not completely sure about javahelp and swing-layout but if I have to decide now, I would stick with "don't show") Implementation-wise: it's probably easier and less work if AU client just looks for the cluster name and if it's platform* then make a special case. But it's a bit irregular. No strong opinion We also have a short list of "fixed" modules, they all belong to platform. Don't show --%----%----%----%----%----%-- 5) How to deal with updates of "invisible" modules Walk the dependency tree of currently installed modules and show all the nearest visible ancestors. Not just one ancenstor, walk up the tree, If there is no ancestor then we have to ignore the flag above and show it. (Up or down, ancestor or descendant depends on how we draw the tree :-) But a few paragraphs above we said we won't let users to choose which modules to update and which not, so "show" here only means static text describing what's going to be upgraded --%----%----%----%----%----%-- 6) Manual install We have to show all modules even when the "don't show me" flag is present. Those modules then won't show up in the list of installed modules. Bug but P3 for 6.0 I think --%----%----%----%----%----%-- 7) Activate/deactivate, install/uninstall I think the logic stays the same as of now. Even though in term of code the list of modules which forms a "feature" will have to be constructed the other way. See Grouping section --%----%----%----%----%----%-- 8) Relationship b/w modules shown in AU and components shown in installer Component names in installer should be used as category names in AU (I have strong temptation to move xml1/ out of base ide component and thus out of "basic" download option. ruby and c/c++ are not that excited about wsdl, cannot rule out it won't happen in 6.0) --%----%----%----%----%----%-- 9) Plugin and NBM View Modes Gone. Only one mode. Implementation wise it's will be the NBM mode. We have to show category column --%----%----%----%----%----%-- 10) Origin of modules in New Plugins Pavel's proposal also talks about things like Plugin Portal UC. I haven't thought enough about it and we didn't discuss it in the meeting. For now enough to say it's somewhat orthogonal. Personally the biggest showstopper I have now for Plugin Portal UC is those modules have zero if not negative quality. Many of them don't even install in 5.5 for me --%----%----%----%----%----%-- 11) Getting stats about which components are implemented This was mentioned somewhere if we break the 1-1 mapping b/w installable components in installer and installable units in AU then it's impossible to get stats about which components are installed by users. Well, we don't optimize for stats --%----%----%----%----%----%-- 11) We need all above implemented for beta1 Because of the current bug situation I know beta1 will move, this gives us a little more time. There is some additional work required but the changes described here also turn some existing code into dead code and serious open issues into irrelevant so I hope they cancel out each other --%----%----%----%----%----%-- Hope I haven't forgot anything important and you have enough to proceed with the work. THANKS -t Someone or me (preferably someone) needs to incorporate what we said here into the document in wiki. We need to let nb-tech and other people know about this plan. I'll be locked down in meetings the next week. So please...