This repository has been archived by the owner on Aug 29, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 15
Software Installation Approach
Marco Zühlke edited this page Mar 21, 2017
·
3 revisions
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
Setup resources, for each platform:
- 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
- Create Electron resources
- use a web packager like webpack, https://github.com/webpack/webpack (recommended by most JS developers)
- use the electron packager https://github.com/electron-userland/electron-packager
- Using a Docker container, https://www.docker.com/
- For Windows, we could use NullSoft Install System, http://nsis.sourceforge.net/Main_Page
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)