DC2: DIALS installer
Proposal | DIALS installer |
---|---|
Created | 2020-02-23 |
Status | Accepted |
- WP1: We can use
conda-pack
to 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-pack
to 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-pack
post 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
--download
option to bootstrap that- downloads and unpacks miniconda
- tells miniconda to resolve and download the environment (not: install)
- clones all sources repositories
- Add an
--offline
option 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.txt
into 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.