omero-web Python 3 dependency versioning
manics opened this issue · comments
Since this role is meant to support reproducible deployments it should support pinning of python dependencies in virtualenvs. For instance, omero-web
depends on omero-py
One option is to have setup.py in omero-web and omero-py have generic ranges for dependencies and each Ansible role is reponsible for defining the full set of pinned dependencies.
Another option is to pin the versions in setup.py of the modules instead, perhaps as a [variant]
designed for use in reproducible installations, e.g. something like ome/omero-py#114
extras_require={
'linux/linux-dist/dist/pinned/reproducible/recommended': [
# These match the currently available binary wheels and should
# ensure omero-py can be installed without a compiler
# 'ipython==7.9.0',
'Jinja2==2.10.3',
'numexpr==2.7.0',
'numpy==1.17.3',
'Pillow==6.2.1',
'PyYAML==5.1.2',
'tables==3.6.1',
],
},
Another option would be a Pipfile-like approach where a requirements-in.txt lists the unversioned files, and then the output of pip freeze
records exact tested versions. (i.e. basically the same but outside of the setup.py file)
I've started a design issue since this affects multiple repos ome/design#103