Created under  DM-19765 - Getting issue details... STATUS  at the request of the Architecture team to enable a larger discuss about release management for the whole LSP.

Repositories directly developed as part of Portal Aspect implementation

RepositoryPurposeOrigin OrgLSST fork?Principal Language(s)Standard LSST build?pip installable?npm installable?DeploymentNeeded in users' Python/C++ coding environment?
fireflyCore code for Firefly, shared with IRSA, NED, etc.Caltech-IPACNoJavaScript (ES6), JavaNo; uses Gradlen/an/a, but see firefly-api-access Used in the construction of Docker images for server-side operations, layered on top of third-part Apache Tomcat docker images.No
firefly-api-accessProvides hooks to allow Firefly's Javascript code to be loaded starting from npm-style package loadingCaltech-IPACNoJavaScript
n/aYesUsed in the implementation of Jupyter widgets and JupyterLab extensions, in order to conform to requirements of expressing code dependencies via npm .No
firefly_clientCore Python library for user interaction with a Firefly serverCaltech-IPACYesPythonYesYesn/aRequired in LSST Stack deployments in which afw.display 's Firefly back end is to be usable.  Also used on the server side as part of implementing the Firefly JupyterLab extensions.Yes
jupyter_firefly_extensionsJupyterLab extensions that support Firefly integration with the JupyterLab environment, including the command menu and file-opening interactionsCaltech-IPACNoPython, JavaScript
YesYesPreloaded part of the LSP's JupyterLab environment and therefore required in the construction of the Docker images for the Nublado spawner. Depends on firefly_client.No; Python code is used to extend the JupyterLab server process, not the user's Python environment.
display_fireflyImplements afw.display back end supporting image displays in Firefly.lsstn/aPythonYesNo (loaded via LSST packaging mechanisms)n/aNot useful outside LSST Stack context.  Not used on the server side of the Science Platform. Depends on firefly_client.Yes; generally obtained via lsst_distrib.
suitImplements LSST Portal Aspect-specific behaviors added to the core Firefly library.  Defines the Portal web application.  Primarily JavaScript but also contains Java extensions (search processors) to the Firefly server side.lsstn/aJavaScript, Java
n/aNoUsed in the construction of server-side container images.  Not useful in a user context.No
suit-onlinehelpContains help content, as HTML, and a small amount of GWT GUI code to implement a help application that provides a navigation sidebar for the HTML content.lsstn/aHTML, Java
NoNoUsed to construct a container image with a Web server, the thin onlinehelp Web application, and the HTML pages of help content.No
firefly_widgetsImplements Jupyter (Notebook) widgets derived from Firefly capabilities.  Not actively maintained since the pause in Portal development.Caltech-IPACNoJavaScript, Python
Yes (but not actively updated)?Not updated to 2019 standards for Jupyter(Lab) extensibility frameworks.  Not intended for release in the foreseeable future unless IPAC resumes development.Yes (but only if it were updated / maintained)

Artifacts needed for deployment and normal utilization

DesignationArtifact TypeDescriptionBuild notesServer-side relevanceUser-environment relevance
firefly-client PyPI projectPyPI project release (wheel and tarball)Installable package built from firefly_client repository.  Note the change from "_" in the repo name to "-" in the PyPI name.
Needed in order to provide the JupyterLab Firefly extensions.  Explicitly included in the Nublado Dockerfile script.Supports user Python interaction with the Portal Aspect or the JupyterLab Firefly extension.  Included in lsst-distrib via display_firefly, however, so few LSST users need to actually "pip install" it.
firefly-api-access npm releasenpm moduleInstallable JavaScript package to allow loading the main Firefly JavaScript code in a browser context.
Loaded, transitively, by jupyter_firefly_extensions.Essentially none (though it runs in the user's browser, the user is not involved in making that happen).
jupyter-firefly-extensions PyPI projectPyPI project release (wheel and tarball)Installable package built from Python part of jupyter_firefly_extensions repository.  Note the change from "_" in the repo name to "-" in the PyPI name.
Needed in order to provide the JupyterLab Firefly extensions.  "pip install" of this is explicitly included in the Nublado Dockerfile script.Not needed or useful in the LSP environment.  Might be of interest to remote users trying to reproduce the LSP capabilities.
jupyter_firefly_extensions npm releasenpm moduleInstallable package built from JavaScript part of jupyter_firefly_extensions repository.
Required in JupyterLab in order to implement the UI of the Firefly extensions.Essentially none (though it runs in the user's browser, the user is not involved in making that happen).
Unified Portal applicationDocker image

Provides the "interim Portal" application that represents the operational closeout of the SUIT effort in 2019.  Includes TAP search capabilities, ObsCore handling, the full set of "generic Firefly" display and exploratory data analysis facilities, IRSA search capabilities inherited from IPAC, and some generic FITS-file-opening functionality.  Includes the slate.html endpoint for user-configurable display layout, which is used by the Firefly back-end to afw.display and by the Firefly JupyterLab extensions.  Released as a fully configured Firefly web application.

Initially will continue to present the "legacy PDAC" search capabilities as well; these will be retired eventually.

Contains Tomcat 9 server and Java 10 runtime. To be upgraded to Java 11 for long-term support.


To be deployed at the "{instance}/portal/app" endpoint of LSP instances in the May/June 2019 time frame.Basically not useful outside the specific LSST server context.
lsst-demo applicationDocker image

Provides a "generic Firefly" capability including the slate.html endpoint for user-configurable display layout, as a fully configured Firefly web application.

Contains Tomcat 9 server and Java 10 runtime. To be upgraded to Java 11 for long-term support.


Deployed as a "bare Docker" application on the lsst-demo server.  Required to be preserved for the time being as the performance of Firefly under Kubernetes at NCSA is still unexpectedly slow for large files and this is being investigated.  While that is the case, lsst-demo is used, via an override in the Nublado configuration, as the target for afw.display interactions and the Firefly JupyterLab extensions from the Notebook Aspect.Of interest to users wanting to experiment with running a local "generic" Firefly server.  Not intended to be a functional part of the LSP in normal use.
Online help applicationDocker imageContains the help content for the Firefly online help system - which is integrated with the way Firefly applications provide contextual, deep-link, help from help icons in the UI - as well as a small amount of JavaScript (built from Java with GWT) and a Web server to support it.

Intended to be deployed within LSP Kubernetes.  Needs to be released in tandem with the Portal/Firefly application in order to match versions.

Not available yet (as of mid-May 2019).

None, essentially.
Legacy deployments
Firefly / Slate applicationDocker image

Provides a "generic Firefly" capability including the slate.html endpoint for user-configurable display layout, as a fully configured Firefly web application.

Contains Tomcat 9 server and Java 10 runtime. To be upgraded to Java 11 for long-term support.

Closely related, but not identical, to the lsst-demo application.


Deployed at the "{instance}/firefly" endpoint of LSP instances to support afw.display interactions and the Firefly JupyterLab extensions.  Soon (May/June 2019) to be superseded by the "unified application" above.  Of interest to users wanting to experiment with running a local "generic" Firefly server.  Not intended to be a functional part of the LSP in normal use.
Legacy Portal applicationDocker image

Provides the legacy "PDAC" portal functionality and the initial deployment of the TAP search capability as a fully configured Firefly web application.

Contains Tomcat 9 server and Java 10 runtime. To be upgraded to Java 11 for long-term support.


Deployed at the "{instance}/portal/suit" endpoint of LSP instances. Soon (May/June 2019) to be superseded by the "unified application" above.Basically not useful outside the specific LSST server context.

Approximate sketch of build flow

This sketch includes both SUIT-specific elements and elements of the LSST Stack and Nublado flows.

Key or otherwise non-obvious-for-LSST external dependencies

  • No labels