NOTE: this UDT is available only up to EnSight 2019 R2. It has been removed in EnSight 2019 R3 and newer releases.
The EnSight package manager allows users to install extensions, docs, example datasets and many other add-on features to EnSight. These are released in the form of 'Packages'. Packages can be imported into or exported from EnSight through the use of .epz files or via the CEI hosted package repository. When the package manager starts up, it looks something like this:
The scrolling list includes the list of currently installed packages along with any packages available from the CEI package repository. Installed packages will have the 'Installed' status unless there is an update for the package available on the server, in which case the status will reflect the available update. Uninstalled packages on the server will be noted as such. To use this GUI, simply select a package from the list and select one of the options. A package can be uninstalled (removed from your local EnSight installation), updated with a new version from the repository or installed from the repository. Additionally, the help URL for that package will be opened in a web-browser if the package details are requested.
A package can be installed in one of two locations, under CEI_HOME or in the user's preferences directory. The CEI_HOME option makes the package available to all users who are using this installation of EnSight. The actual package top level directory will be placed inside of $CEI_HOME, assuming one has write access to that directory. The user's preferences case will install the package top level directory in the 'extensions' subdirectory in the preferences directory (in most cases, .ensightXXX/extensions).
In addition to the network package repository, packages can also be installed from .epz files on disk by either dropping the .epz file on this dialog or using the 'Install .epz file' button. One can create a .epz file from an installed package by selecting it in the list and clicking on 'Create .epz file'.
Whenever the installation status of a package changes, EnSight must be restarted to accurately reflect the nature of the modification. The list in the package dialog will be up to date, but the extensions in the packages will not have been restarted. The list of available packages and their status can be updated at any time by clicking on the 'Refresh list' button.
If EnSight cannot connect to the network repository, that section of the dialog will be disabled. For users that cannot access the repository from within EnSight, but would still like to be able to download and install packages, the packages can be downloaded directly from the server using a web browser and the Package Manager web page interface.
If you edit a package and wish to upload a new version, you can create an empty file named _development_.txt, in the directory with the package. Then you will have the option to upload the new package to the repository.
Just what is a 'package'? A package is strongly related to a 'product.xml' extension (ref). A 'product.xml' extension amounts to a directory containing a file with the name 'product.xml' that describes the materials included in that subdirectory. It contains references to documentation, EnSight Python extensions and session directories. A 'product.xml' subdirectory can be converted into an EnSight 'Package' by adding the <package> tag to the product.xml file inside of the <product> tag. A sample <package> tag takes the form:
<name>My Corp package</name>
Its presence declares the product to be a package and includes basic name/version/publishing information along with a "help" URL. When the package manager is started, it looks at all of the currently installed 'product's and scans their 'product.xml' files for the <package> tags. These are considered 'installed' packages. The tool also queries the CEI package repository looking for packages that it can provide, comparing the names and versions to determine if the package in the repository is a new package or contains an update to an existing package.
The system relies heavily on the 'name' of the package and the name of the directory containing the product.xml file being unique. Developers should choose those names carefully and should always increment the package version number (a float) when updating the package contents as that number is used to determine if the package would be considered an update to an existing package or not.