 |
Update Center 2.0 Release - Feature Wish List
General Requirements
| # | Description | Priority | Notes |
| GEN001 - Generic Update Center | There should not be any explicit dependency on GlassFish (Application Server). Update Center should work with other middle-ware products. | P1 | We also should not make any assumptions that all products are Java based. |
| GEN002 - Multi-Install Support | Update Center client should be able to work against one INSTALL_HOME at a time. Under the INSTALL_HOME, user should be able to install multiple middle-ware products. Update Center code should use the INSTALL_HOME property and should not assume any relative directory structure from where the client was initially launched. | P1 | Currently, Update Center is integrated under GlassFish. We may need to adjust configuration. This should mostly work. |
| GEN003 - User Experience Consistency | Update Center shipped with GlassFish and other middle-ware should offer uniform user experience. For example, using the update center shipped with GlassFish, it should be possible to install other middle-ware softwares that are part of SWI (Software Infrastructure) and vice-versa. | P1 | Need an uniform filesystem layout |
| GEN004 - Default Install Location | For each module, we should have a default install location under the INSTALL_HOME. User may not be asked to provide these details during installation. The goal would be to offer a very simple user experience. | P2 | -- |
| GEN005 - Support for Arbitrary Module Type | Add installers to handle other container types beyond Application Server container. Support for arbitrary types of modules may need to be added. | P1 | We may also expose a SPI to deliver installer with the module. |
| GEN006 - Updates for an Installed Middleware | It must be possible to send updates for an installed middle-ware/container. | P1 | Upgrade between major releases of the middle-ware may require seperate tools and manual steps. It should be possible to deliver minor releases (bug fixes, patches) where there are no major configuration changes. |
| GEN007 - Add Command Line Interface Support | CLI for basic package management and basic update center operations. | P1 | e.g. "apt-get foo" |
| GEN008 - Entitlement | It should be possible to send certain content to only certain set of clients. | P2 | User registration and entitlement checking might be made visible to users. |
| GEN009 - RSS Feed | Ability to send RSS feeds to the update center client. | P2 | This will allow us to send our blogs/articles/screencasts to users and make it compelling for users to try our technologies. |
| GEN010 - Provisioning Support | Integrate with a provisioning system where downloaded modules can be provisioned for a large data center environment. We may allow the possiblity of integration of a 3rd party provisioning system also. | P2 | Provisioning capabilities will be leveraged from other softwares. |
| GEN011 - OS Support | The update center must support all popular operating systems. | P2 | Solaris, Linux, Windows, MacOSX |
Packaging and Repository Requirements
| # | Description | Priority | Notes |
| PKG001 - Pre/Post Install Script Support | Support for allowing pre/post installation script. | P1 | -- |
| PKG002 - Versioning Support | Support multiple versions of the same module. It is likely that different middle-ware products may have dependency on different versions of the same module. | P1 | -- |
| PKG003 - Unpack Support | Add jar unpack support in base installer. Modules should be able to deliver packed jars. | P2 | -- |
| PKG004 - Dependency on Files | Ability to specify dependencies on raw files. For example, the ability to specify a dependency on "/usr/bin/sh". This is important for components which have a dependency on technology which may not be delivered via well-defined packages (or are delivered as a very small part of a very large package, and can optionally be delivered independently of the large package). In this case it is impossible to specify a requirement on another package. A dependency on a well-defined file location is more suitable. | P3 | For examples, see the Apache HTTPD RPM spec file, looking for Prereq's such as: Prereq: sh-utils, textutils, /usr/sbin/useradd, Prereq: /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv |
| PKG005 - Local Repository Support | Ability to setup local repositories. | P3 | Enterprise customers may want to set up local repositories of certified bits that should be used by their departments. |
| PKG006 - Pkg Automation | Need tools to help automate generation of packages. | P3 | Consider automated generation of both nbm packages and OS-native packages when necessary. |
| PKG007 - Requires OS Support | Support broader "requires OS" and introduce "requires processor" options. | P1 | To enable auto selection of OS and processor-specific content depending on the client platform. |
| PKG008 - Need better Dependency Mechanism | Current module dependency specification is weak for enterprise usecase. | P2 | No support for varying degrees of dependency. I.e. "Depends, Recommends, Suggests", only supports "==" and ">=" for version checks, "feature" dependencies are non-versioned. |
| PKG009 - Dealing with Shared Components and Different Containers | We need a clear strategy for dealing with shared components and different containers. | P1 | Some of the questions to anster are: Are we going to have different catalogs for different containers based on client's operating systems? How do you define shared components in that environment? How do we ensure that the containers will work together? |
Download and Installation Requirements
| # | Description | Priority | Notes |
| DI001 - Install Ordering | Installation of the modules must take dependency into consideration. All dependent modules must be installed befor the module. If a dependent module installation fail, the overall installation of the module should also fail. | P1 | -- |
| DI002 - Manual Install/Un-install/Update | Ability to install, un-install or update an installed package (CLI should provide these support). | P1 | This will address disconnected update support on a system that does not have Internet access. |
| DI003 - Small Initial Download with JNLP | Need a small bootstrap install image. May support Java Web Start based installation of Update Center. | P2 | |
| DI004 - Smart Download | Add smart download support. Sudden loss of connectivity should not require the download to start over again. | P2 | Integrate with SDM. |
| DI005 - Install Wizards | Integrate with a installer so that module installation can walk through the user with a set of wizards. | P2 | -- |
| DI006 - JNLP Install | Allow module installation to launch JNLP. | P2 | -- |
| DI007 - JDK Detection | Stand alone update center installation should detect JDK installed on the system. | P1 | Need something similar to Java EE SDK installer. |
| DI008 - Generic Addon Feature | Ensure that OpenSSO, Portlet Container, etc. add-on modules can be installed and updated by the generalized UC. | P2 | -- |
| DI009 - JAVA_HOME in Path | We should not require user to set JAVA_HOME in user's environment. | P1 | -- |
Updates
| # | Description | Priority | Notes |
| U001 - Backout Changes | Ability to rollback or backout to a previous installed snapshot of a module. | P1 | -- |
| U002 - Update Overwrites Editable Files | Updates should not change existing configurations set by user. User preferences (example, proxy) should not be changed by an update of update center. | P1 | -- |
| U003 - Sparse Update Support | Would be nice to have as an alternative to downloading an entire package again. | P2 | See Debian's use of this feature. |
Administration
| # | Description | Priority | Notes |
| ADM001 - Show Stability for a Module | Different modules may have different stability. The server repositories may be divided into stable/beta/early access/community/extras. Update Center client should clearly show the stability of a module. | P1 | -- |
| ADM002 - Search | Search for availability of modules by name or key words. | P2 | -- |
| ADM003 - Run-as Support | Current Update Center implementation supports non-root users. We need a clear story for root installation. | P3 | -- |
| ADM004 - Improve Error Messages | Dependency errors don't list failed dependencies, XML parsing errors don't state input file. Other errors don't appear to generate useful error messages (you just get "Install Failed"). | P2 | -- |
| ADM005 - Improve log file contents | Fix logging | P2 | Log file (updatecenter.log) is mostly empty. |
| ADM006 - Audit Trail | An audit trail of installations should be provided. | P3 | This may have information like module name, version number, data installed, etc. |
Update Center GUI
| # | Description | Priority | Notes |
| GUI001 - Progress Status | Current progress status is not very intuitive when user selects multiple modules to install. Often shows completely filled out yet the download has not completed. We should do a better progress status. | P1 | Mac has great progress status. |
| GUI002 - Better Look and Feel | We need x-design support to come up with better UI look and feel. | P2 | -- |
| GUI003 - Continuity | Need better continuity from end of install to next steps. | P2 | -- |
| GUI004 - User Ratings | Allow user to write reviews for a module and give ratings. | P3 | -- |
| GUI005 - Stats | Share statics such as number of downloads for a module. | P3 | User should be able to see most downloaded or modules with best user ratings. |
| GUI006 - Drag and Drop | Allow user to drag and drop catalogs instead of up and down buttons. | P3 | -- |
| GUI007 - Minimize Group | Allow user to minimize a group. Update center should remember user preferences. It should remember when a group is minized. | P3 | -- |
| GUI008 - Install Location | Show installation location of a installed module. | P3 | -- |
| GUI009 - Component Selection | Component selection ease of use. | P2 | For example, by default, hide underlying packages that are not usually of primary interest to admins. |
| GUI010 - UC GUI Size | GUI window size too large in some cases. | P3 | Auto adjust size based on desktop size. |
| GUI011 - Change Logs for an Update | Helps user decide whether or not an update should be installed. | P1 | -- |
| GUI012 - Module Size | Size rounds down rather than stating at least tenths of MBs. For example, a module with size 1,600,000 is listed as 1MB. | P2 | -- |
| GUI013 - List Files | Ability to list files contained in each package. | P3 | -- |
| GUI014 - List INSTALL_HOME | Consider uber UC that can provide a view to each of the INSTALL_HOMEs that are accessible to the user. | P3 | -- |
Update API
| # | Description | Priority | Notes |
| API001 - UC API | Expose the update center APIs so that it is possible to integrate update center with 3rd party softwares. | P2 | Several groups (e.g. OpenDS) have asked how they could enhance their own tooling to use an update center API to query whether updates are available, list the number of updates available and launch the update center GUI. |
| API002 - RSS Feed | RSS feed for available updates and additions. | P3 | -- |
Desktop Integration
| # | Description | Priority | Notes |
| DT001 - Multiple INSTALL_HOME | We should not have multiple desktop icons for different INSTALL_HOMEs. User should be able to right click and choose the INSTALL_HOME from the desktop icon. | P1 | This may require a re-start of the UC GUI. |
| DT002 - Start Menu | Enable packages to populate start menu | P2 | When desktop integration is desired, enable packages to update appropriate areas of at least the Start Menu. For example, when OpenDS packages are installed, if desktop integration is desired, let those packages populate the start items of interest such as Configure, Start, Stop, Status, etc. |
| DT003 - Distinguish Types of Updates | Distinguish types of updates and provide appropriate notifications via desktop tray icon. | P3 | Show security fix available for Apache HTTP. For example: Bug Fix Update, Security Update, New Feature |
| DT004 - Better Icon | Need snazier notification/tray icon | P2 | -- |
| DT005 - Update Notification Message | Clicking "You have N updates available" notification should bring updatecenter GUI up showing a dynamic UI "Updates" tab not "Available Software" tab. | P3 | -- |
File Layout
| # | Description | Priority | Notes |
| FL001 - Filesystem Layout Spec | Ensure all packages conform to Filesystem Layout Spec | P1 | Get upstream projects to buyback filesystem layout and wiring changes. By default, all projects distributed outside update center should not have a very different file layout. For example, GlassFish file layout does not have a "etc" or "var" directory. |
|