chanzuckerberg / cellxgene

An interactive explorer for single-cell transcriptomics data
https://chanzuckerberg.github.io/cellxgene/
MIT License
626 stars 116 forks source link

Investigate options for app installers [SPIKE] #2577

Closed atolopko-czi closed 1 year ago

atolopko-czi commented 2 years ago

Determine options for providing a cross-platform app installer to allowing simper installation of CELLxGENE Annotate for users that are not familiar with Python and pip-based installation steps.

atolopko-czi commented 2 years ago

@MaximilianLombardo Linux packages (.rpm, .deb) and OS X (.pkg) are assumed, but is Windows on or off the table here?

atolopko-czi commented 2 years ago

Successfully used pyinstaller to build a single-file executable for cellxgene desktop. So far, only tested launch, and not annotate command, which may require more troubleshooting (though unlikely, since MLflow takes on most of the complexity of model invocation).

We will need to build an executable for every supported OS platform and CPU architecture. Currently, only built & tested on OS X M1. This makes releases somewhat burdensome.

Pyinstaller does not create OS packages, e.g., .rpm, .deb, or .pkg. So that becomes another step in the release process, if desired. But if simply downloading an executable is sufficient, we may not require this level of installation convenience.

Minor code changes & build command in this PR.

Also required patches to "vendor" packages code anndata and flatbuffers to address python package dynamic import logics, which otherwise breaks the executable at run-time.

Notes

ambrosejcarr commented 2 years ago

Windows should be in-scope: image.png

atolopko-czi commented 2 years ago

@MaximilianLombardo How much further do we want to take this, if at all? Trying to create a Windows exe? Building pkg/deb/rpm?

atolopko-czi commented 1 year ago

Saving work in progress so we can delete the branch: patch.txt