ome / ansible-role-omero-web

Installs and configures OMERO.web and Nginx

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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