Skip to content

Resolve "Introduce a dependency manager"

Moritz Huebner requested to merge 173-introduce-a-dependency-manager into master

Closes #173 (closed)

@paul-lasky @colm.talbot @gregory.ashton Just to summarise what is going on in here:

  • The Pipfile contains a list of requirements, it replaces manually editing requirements.txt from now
  • In order to work with pipenv run 'pip install pipenv --user`
  • The Pipfile.lock has a list of the exact version of each dependency at a given commit
  • The requirements.txt lists those again
  • To update Pipfile.lock and requirements.txt, just run pipenv lock -r -> I can do this before any new release
  • lalsuite is listed as an optional requirement because there are only pre-releases available on Pypi. I created an issue on the lalsuite issue tracker about it.

This allows people in the future to make their research more reproducible. If somebody cannot reproduce the results from a python script that is using our code, they can go back to the exact same repository version and run it in a virtual environment that provides the exact same dependency versions. That workflow looks roughly like this.

git clone 'TKFKAT'
cd TKFKAT
git checkout 'abcd1234' # <- old commit hash
pipenv install --ignore-pipfile # <-  installs the dependencies from Pipfile.lock

And voila, you now have a virtual environment with all the old dependency versions.

Edited by Moritz Huebner

Merge request reports

Loading