View on GitHub

DIALS // knowledgebase

community resources, howtos, meeting minutes

DC2: DIALS installer

Proposal DIALS installer
Created 2020-02-23
Status Accepted


  1. 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
    • 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
    • Also: disconnect the DIALS installer scripts from libtbx
  2. 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
  3. 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
  4. 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