From d69ff80573a257a75ac2ffd0e738ea78834d9dca Mon Sep 17 00:00:00 2001 From: Simon Li Date: Tue, 22 Sep 2020 14:12:32 +0100 Subject: [PATCH 1/3] Use pinned versions for all direct OMERO deps --- requirements-debian9.txt | 1 + requirements-default.txt | 1 + requirements-pinned.txt | 16 ++++++++++++++++ requirements-ubuntu1604.txt | 1 + setup.py | 35 +++++++++++++++++++++++------------ 5 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 requirements-debian9.txt create mode 100644 requirements-default.txt create mode 100644 requirements-pinned.txt create mode 100644 requirements-ubuntu1604.txt diff --git a/requirements-debian9.txt b/requirements-debian9.txt new file mode 100644 index 0000000..a6adc2a --- /dev/null +++ b/requirements-debian9.txt @@ -0,0 +1 @@ +tables==3.5.2 diff --git a/requirements-default.txt b/requirements-default.txt new file mode 100644 index 0000000..368a7c7 --- /dev/null +++ b/requirements-default.txt @@ -0,0 +1 @@ +tables==3.6.1 diff --git a/requirements-pinned.txt b/requirements-pinned.txt new file mode 100644 index 0000000..6a41c4a --- /dev/null +++ b/requirements-pinned.txt @@ -0,0 +1,16 @@ +omero-py==5.8.0 + +# https://github.com/ome/omero-py/blob/v5.8.0/setup.py#L217-L224 +appdirs==1.4.4 +future==0.18.2 +numpy==1.19.1 +Pillow==7.2.0 +PyYAML==5.3.1 +requests==2.24.0 +# To speed this up install a distribution-specific wheel before installing +# this package (wheels cannot be included in requirements) +zeroc-ice==3.6.5 + +# minimum requirements for 'omero admin start' +omero-certificates==0.2.0 +# tables==3.6.1 # Debian9/Ubuntu1604 won't work with 3.6.1 diff --git a/requirements-ubuntu1604.txt b/requirements-ubuntu1604.txt new file mode 100644 index 0000000..a6adc2a --- /dev/null +++ b/requirements-ubuntu1604.txt @@ -0,0 +1 @@ +tables==3.5.2 diff --git a/setup.py b/setup.py index ced6ce6..3e0667c 100755 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ Use is subject to license terms supplied in LICENSE.txt """ - +from glob import glob import os import sys @@ -25,6 +25,26 @@ def read(fname): return open(os.path.join(os.path.dirname(__file__), fname)).read() +def parse_requirements(fname): + """ + Utility function to parse requirements.txt files. + """ + with open(os.path.join(os.path.dirname(__file__), fname)) as f: + txt = f.read().splitlines() + return [ + line.strip() for line in txt if not line.strip().startswith('#')] + + +def get_extras_require(): + extras = {} + requirements_files = [os.path.basename(g) for g in glob( + os.path.join(os.path.dirname(__file__), 'requirements-*.txt'))] + for fname in requirements_files: + if fname != 'requirements-pinned.txt': + extras[fname[13:-4]] = parse_requirements(fname) + return extras + + setup(name="omero-server", version=osv, description="CLI plugin for managing an OMERO.server", @@ -48,17 +68,8 @@ def read(fname): license='GPLv2+', packages=find_packages(exclude=("test",))+["omero.plugins"], python_requires='>=3', - install_requires=[ - # requires Ice (use wheel for faster installs) - 'omero-py', - # minimum requirements for `omero admin start` - 'omero-certificates', - ], + install_requires=parse_requirements('requirements-pinned.txt'), include_package_data=True, tests_require=['pytest'], - extras_require={ - "debian9": ["tables<3.6"], - "ubuntu1604": ["tables<3.6"], - "default": ["tables"], - } + extras_require=get_extras_require(), ) From c7fa0704b006e7e3e272f29385b107d85e5643ba Mon Sep 17 00:00:00 2001 From: Simon Li Date: Tue, 22 Sep 2020 15:59:30 +0100 Subject: [PATCH 2/3] Include *.txt in Dockerfile --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 2021341..ac07d78 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,7 @@ USER tox COPY --chown=tox:tox *.py /src/ COPY --chown=tox:tox README.rst /src COPY --chown=tox:tox MANIFEST.in /src +COPY --chown=tox:tox *.txt /src/ COPY --chown=tox:tox omero /src/omero COPY --chown=tox:tox omeroserver /src/omeroserver WORKDIR /src From 8027e95ba9a9373543e7c35d174ecd2790f9ec50 Mon Sep 17 00:00:00 2001 From: Simon Li Date: Tue, 22 Sep 2020 16:08:57 +0100 Subject: [PATCH 3/3] MANIFEST.in: requirements-*.txt --- MANIFEST.in | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFEST.in b/MANIFEST.in index 42eb410..9756fe8 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1,2 @@ include LICENSE.txt +include requirements-*.txt