Installing BLISS

Installation at ESRF beamlines

At ESRF, it is recommended to follow Beamline Control Unit guidelines for software installation. In the case of BLISS, a special deployment procedure with Ansible tool has been put in place in order to facilitate the work on beamlines.

Updating BLISS installation

To update BLISS on an ESRF installation:

release version (bliss)

To update the “release” version in bliss Conda environement, update the conda package:

* `conda update --channel http://bcu-ci.esrf.fr/stable bliss`
* or `conda install bliss=X.Y.Z`

development version (bliss_dev)

For development, i.e in bliss_env Conda environement:

  • update bliss repository:

    cd local/bliss.git/

    git pull

  • install up-to-date dependencies:

    conda install --file ./requirements-conda.txt

  • Exit and re-enter into the conda environment to ensure using up-to-date modules.

  • Pip-install BLISS by creating a link in conda environment directory pointing to the git repository:

    pip install --no-deps -e .

Note

Take care to have Conda channels up-to-date. (with conda info) and correct if needed:

conda config --env --add channels esrf-bcu
conda config --env --append channels conda-forge
conda config --env --append channels tango-controls
conda config --env --append channels http://bcu-ci.esrf.fr/stable

Local code

At ESRF, it has been decided to put all beamline specific code in a dedicated git repository.

For more details, see: https://bliss.gitlab-pages.esrf.fr/ansible/local_code.html

Installation outside ESRF beamlines

Using a Conda environment

The use of Conda is recommended to install BLISS.

Creating a bliss_env Conda environment can be done like this (the name of the environment can - of course - be chosen freely):

ESRF BCU conda channels need to be configured, as well as channels providing BLISS dependencies

conda create --name bliss_env
conda activate bliss_env
conda config --env --add channels esrf-bcu
conda config --env --append channels conda-forge
conda config --env --append channels tango-controls

install “release” version from BLISS Conda package

To install Conda BLISS package (“release” version):

conda install --channel http://bcu-ci.esrf.fr/stable bliss

install development version from sources

Git repository is the reference point to install latest development version of BLISS.

git clone https://gitlab.esrf.fr/bliss/bliss
cd bliss/
conda install --file ./requirements-conda.txt
pip install --no-deps -e .

Without Conda environment

The first step is to clone the BLISS git repository to get the BLISS project source code:

git clone https://gitlab.esrf.fr/bliss/bliss
cd bliss/

The line above creates a bliss directory in current directory, containing the whole project source files.

BLISS has many dependencies. Most notably it requires additional, non-Python dependencies like the redis server for example.

BLISS provides a Python setuptools script. Finalize the installation using pip:

cd bliss/
pip install .

Note

For development, install with:

pip install -e .

The code will get deployed in Python site-packages directory as a symbolic link, thus removing the need to re-install each time a modification is made.

Use Bliss without Hardware

BLISS is distributed with a set of test_sessions which can be used to work without accessing real beamline hardware. In order to use the provided simulated beamline the following steps have to be taken:

1) Install BLISS in a conda environment or activate an existing conda env. in which BLISS is installed.

2) Install additional dependencies for the test environment

    conda install --file ./requirements-test-conda.txt

3) start a BEACON server using the provided test_configuration (path relative to root of bliss repository)

    beacon-server --db_path tests/test_configuration/ --tango_port 20000

4) to simulate a lima camera run also

    TANGO_HOST=localhost:20000 LimaCCDs simulator

Then, on Bliss shell, you can get access to this device with

TEST_SESSION[3]: limaDev = config.get("lima_simulator")

5) start a BLISS test_session

    BEACON_HOST=localhost TANGO_HOST=localhost:20000 bliss -s test_session

and enjoy or have a look at the following doc sections: