Installing Development Tools

This section contains instructions on how to install development tools that CSLE uses, such as test libraries and static code analyzers.

To install all Python build tools at once, run the following commands:

csle/simulation-system/libs/csle-base; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-collector; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-ryu; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-common; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-attacker; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-defender; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-system-identification; pip install -r requirements_dev.txt
csle/simulation-system/libs/gym-csle-stopping-game; pip install -r requirements_dev.txt
csle/simulation-system/libs/gym-csle-apt-game; pip install -r requirements_dev.txt
csle/simulation-system/libs/gym-csle-cyborg; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-agents; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-rest-api; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-cli; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-cluster; pip install -r requirements_dev.txt
csle/simulation-system/libs/gym-csle-intrusion-response-game; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-tolerance; pip install -r requirements_dev.txt
csle/simulation-system/libs/csle-attack-profiler; pip install -r requirements_dev.txt 

Listing 124: Command to install the Python build tool.

It is also possible to install all development tools at once by running the script simulation-system/libs/local_install_dev.sh

Alternatively, install each development library separately by following the commands below.

The Python build tool, which is used to package Python libraries, can be installed by running the command:

pip install -q build

Listing 125: Command to install the Python build tool.

The twine tool (a tool for publishing Python packages to PyPi) can be installed by running the command:

python3 -m pip install --upgrade twine

Listing 126: Command to install `twine`.

The flake8 Python linter can be installed by running the command:

python -m pip install flake8

Listing 127: Command to install `flake8`.

The mypy static type checker and associated type libraries for Python can be installed by running the command:

python3 -m pip install -U mypy mypy-extensions mypy-protobuf types-PyYAML types-protobuf types-paramiko types-requests types-urllib3

Listing 128: Command to install `mypy`.

The pytest and associated test libraries for Python can be installed by running the command:

pip install -U pytest mock pytest-mock pytest-cov pytest-grpc

Listing 129: Command to install `pytest` and `mock`.

Ruby and its bundler, which are used to generate the CSLE documentation page , can be installed by running the commands:

sudo apt-get install ruby ruby-dev
sudo gem install bundler

Listing 130: Commands to install Ruby and its bundler.

The sphinx Python library for automatic generation of API documentation can be installed by running the commands:

The `sphinx` Python library for automatic generation of API documentation can be installed by running the commands:

Listing 131: Commands to install `sphinx`.

Lastly, the tox Python library for automatic testing can be installed by running the command:

pip install tox

Listing 132: Command to install `tox`.