There are a number of utilities used to build and install the Science Pipelines stack. As we move to a more conda-based environment, we need to understand their roles and whether any additional utilities are needed.
Current Utilities
newinstall
- Goal: from system prerequisites, get to a point where packages can be eups distrib installed.
- Future: install miniconda; then conda install eups
- Need something to install environments
- newinstall does not do environment installation: newinstall + envconfig -t w_2020_13
envconfig
- Goal: select environment for stack
- Create new environment if it doesn't exist (with -t)
- Create new stack if environment changes
lsstsw deploy
- Goal: from system prerequisites, get to a point where packages can be built from clones
lsstsw rebuild
- Goal: set up environment, lsst-build prepare, lsst-build build, publish results [can be removed except for Jenkins]
- Builds package and all dependencies
- Uses lsst-build
lsst-build
- Goal: clone and build package and all dependencies
- Uses eupspkg
eupspkg
- Goal: build a particular package from source
Shared stack builder
- Goal: install a new release into the shared stack (also tooling to create a new shared stack?)
Use Cases
Brand new installation
- newinstall (if you have your own conda, then conda install -c conda-forge lsstinstall)
- source loadLSST.bash to activate conda
- lsstinstall -t weekly product
- envinstall -t weekly (looks up environment hash/label for the tag, installs that environment)
- source envconfig label
- eups distrib install -t weekly product
- echo envconfig label
New shell
- source conda/bin/activate (could be in loadLSST.bash)
- envconfig label
- setup whatever