Uncuple the installation process and reduce the number of lines, have a file just dedicated to that where the system dependencies are well defined.
Portability, easier usage of SIMPET, ready-to-use SIMPET (pulling the image from dockerhub), users or developers may not want to install all the system dependencies in their machines, etc.
I see this as prophylaxis, it might not offer a significant advantage over git clone but it makes installation easier.
Tracking those files are more secure (no SSH connections with hardcoded passwords and ports) and makes easier the installation of system dependencies.
There was a new necessary dependency.
It was buggy and it needed to incorporate the new installation procedure and set up the correct environment in order to run the test simulation.
How?
Through a makefile (used only for installation, checks and cleans) and keeping setup.py as test.py only for test simulation.
Adding a Dockerfile, a docker-compose.yaml and a .dockerignore (pretty standard stuff).
Adding STIR as a new project's git submodule with git submodule add and a .gitmodules file.
Just using Git LFS commands.
Does not need an explanation.
Installling system dependencies with make install (step Build), installing python 3.9 (step python3.9 Installation), setting LD_LIBRARY_PATH, adding format_converters to $PATH with $GITHUB_PATH and manually changing the paths in config.yaml with yq and ${{ github.workspace }}.
Testing?
Passing the GitHub Action (installs dependencies and runs a test simulation).
Anything Else?
In order to use the docker image:
Pull it from dockerhub: docker pull yerephy/simpet:0:1:0.
Launch the service from root folder project with: docker-compose up -d.
Run a bash shell insider the container: docker exec -it simpet bash.
Set up git filters inside the container: cd $HOME/simpet && make config-git.
Checkout the config file in order to apply smudge filter and set config.yaml automatically: rm config.yaml && git checkout config.yaml.
What?
requirements.txt
.Why?
git clone
but it makes installation easier.How?
makefile
(used only for installation, checks and cleans) and keepingsetup.py
astest.py
only for test simulation.Dockerfile
, adocker-compose.yaml
and a.dockerignore
(pretty standard stuff).git submodule add
and a.gitmodules
file.make install
(stepBuild
), installing python 3.9 (steppython3.9 Installation
), settingLD_LIBRARY_PATH
, addingformat_converters
to$PATH
with$GITHUB_PATH
and manually changing the paths inconfig.yaml
withyq
and${{ github.workspace }}
.Testing?
Passing the GitHub Action (installs dependencies and runs a test simulation).
Anything Else?
In order to use the docker image:
docker pull yerephy/simpet:0:1:0
.docker-compose up -d
.docker exec -it simpet bash
.cd $HOME/simpet && make config-git
.config.yaml
automatically:rm config.yaml && git checkout config.yaml
.make dummy-data
.python3.9 test.py
.