DC2: DIALS installer
| Proposal | DIALS installer |
|---|---|
| Created | 2020-02-23 |
| Status | Accepted |
- WP1: We can use
conda-packto pack up the environment.- This does not depend on anything else really, so we can start here.
- Having this would mean that we have a valid (non-relocated) conda environment in the installation, which would resolve eg. the readline/ncurses issues. So this has an immediate benefit.
- The installer should be able to run offline.
- Workflow would be:
- use
conda-packto pack up the correct environment - unpack that manually
- do the equivalent of the create-installer script using the
conda-pack‘d environment
- use
- And then on installation:
- unpack the
conda-pack‘d environment - run the
conda-packpost install fixer-upper - do the remainder of the DIALS installer bit
- done
- unpack the
- Also: disconnect the DIALS installer scripts from libtbx
- WP2: Support an offline developer installation. Currently this is covered by downloading a release.
- Add a
--downloadoption to bootstrap that- downloads and unpacks miniconda
- tells miniconda to resolve and download the environment (not: install)
- clones all sources repositories
- Add an
--offlineoption to bootstrap that- takes all the above files and does the base & build step
- Add a
- WP3: have a run-time spec and a development environment
- Split up eg.
linux.txtinto run/dev, and then there will be some overlap between platforms and it can probably be simplified - Not on the critical path.
- This would allow us to remove C compilers, alabaster, sphinx, scons, pytest, …, and make
- Split up eg.
- WP4: The installer should only install user installation, not development installation
- Not reasonable to provide an ‘upgrade’ path, as that would need to rebuild everything anyway. We can provide manual instructions for converting.
- With this we can remove all C++ source code and intermediate files
Ancillary:
- Make bootstrap print out ‘you’re in uncharted territory’ if you change the Python version on a release build that has otherwise pinned conda-forge packages. Unpin the CF packages.