Skip to content
This repository has been archived by the owner on Aug 29, 2023. It is now read-only.

Software Installation Approach

Marco Zühlke edited this page Mar 21, 2017 · 3 revisions

Python API only

For the Python API only, we distribute cate-core to conda / pip(?) host so that users can install Cate using::

$ pip install cate-core  

or::

$ conda install cate-core  

Developers should always be able to get the latest version and install from sources::

$ git clone https://github.com/CCI-Tools/cate-core.git
$ cd cate-core
$ python setup.py install

GUI Installer

Setup resources, for each platform:

  1. Create Python resources
  • Execute platform Python install script that creates an isolated miniconda env, see .travis.yml, including all dependencies (including test dependencies).
  • Call python setup.py install
  • Perform unit-level tests, incl. CLI tests
  • Uninstall test dependencies from isolated miniconda env
  1. Create Electron resources

Bundling the frontend and the backend installer

To get the complete software stack to the user two different installers are rquired:

  • The backend (python), created by using constructor to build a miniconda like installer
  • the frontend (web-based), created by electron-builder

We discussed about the advantages and disadvantages of shipping two installers to the user or of bundling them into a single one. We decided on shipping two distinctive installers for the frontend and the backend after weighting the following arguments:

bundle not bundle
➕ easier for users ➖ Users have to install core
➖ large GUI installer size ➕ can use core independent of GUI
➖ core will be installed with current user permissions ➕ can have updates of GUI independent of core, smaller installer size
➖ takes a lot of time to install core ➕ users can install core with extra privileges
➕ light weight installation

Size of installers:

  • backend 400 MB
  • frontend (<100MB)