From 0077452e103bfe91ac6e15740101abb72eae1fa7 Mon Sep 17 00:00:00 2001 From: csine-nflx Date: Tue, 1 Sep 2020 15:26:23 -0700 Subject: [PATCH 1/6] fixing import order to fix travis builds --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 4ce03d70..471c5358 100644 --- a/setup.py +++ b/setup.py @@ -14,12 +14,12 @@ import json import os.path import datetime -from distutils import log -from distutils.core import Command from setuptools.command.develop import develop from setuptools.command.install import install from setuptools.command.sdist import sdist from setuptools import setup, find_packages +from distutils import log +from distutils.core import Command from subprocess import check_output import pip From 77b67f613f0d1fe491b4cca365b2ffd2935d7e38 Mon Sep 17 00:00:00 2001 From: csine-nflx Date: Tue, 1 Sep 2020 16:07:47 -0700 Subject: [PATCH 2/6] removing dependency on distutils from setup.py --- setup.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/setup.py b/setup.py index 471c5358..e6624198 100644 --- a/setup.py +++ b/setup.py @@ -9,20 +9,20 @@ Is a TLS management and orchestration tool. """ from __future__ import absolute_import -import sys -import json -import os.path import datetime - -from setuptools.command.develop import develop -from setuptools.command.install import install -from setuptools.command.sdist import sdist -from setuptools import setup, find_packages -from distutils import log -from distutils.core import Command +import json +import logging +import os.path +import sys from subprocess import check_output import pip +from setuptools import Command +from setuptools import setup, find_packages +from setuptools.command.develop import develop +from setuptools.command.install import install +from setuptools.command.sdist import sdist + if tuple(map(int, pip.__version__.split('.'))) >= (19, 3, 0): from pip._internal.network.session import PipSession from pip._internal.req import parse_requirements @@ -105,16 +105,16 @@ class BuildStatic(Command): pass def run(self): - log.info("running [npm install --quiet] in {0}".format(ROOT)) + logging.info("running [npm install --quiet] in {0}".format(ROOT)) try: check_output(['npm', 'install', '--quiet'], cwd=ROOT) - log.info("running [gulp build]") + logging.info("running [gulp build]") check_output([os.path.join(ROOT, 'node_modules', '.bin', 'gulp'), 'build'], cwd=ROOT) - log.info("running [gulp package]") + logging.info("running [gulp package]") check_output([os.path.join(ROOT, 'node_modules', '.bin', 'gulp'), 'package'], cwd=ROOT) except Exception as e: - log.warn("Unable to build static content") + logging.warn("Unable to build static content") setup( From 079e8ccf3b4590ba140712b0915826300e975dc7 Mon Sep 17 00:00:00 2001 From: csine-nflx Date: Tue, 1 Sep 2020 16:35:54 -0700 Subject: [PATCH 3/6] removing explicit dependencies on `import pip` and moving to pkg_resources --- setup.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index e6624198..94774bc4 100644 --- a/setup.py +++ b/setup.py @@ -16,18 +16,18 @@ import os.path import sys from subprocess import check_output -import pip +import pkg_resources from setuptools import Command from setuptools import setup, find_packages from setuptools.command.develop import develop from setuptools.command.install import install from setuptools.command.sdist import sdist -if tuple(map(int, pip.__version__.split('.'))) >= (19, 3, 0): +if tuple(map(int, pkg_resources.require("pip")[0].version.split('.'))) >= (19, 3, 0): from pip._internal.network.session import PipSession - from pip._internal.req import parse_requirements + from pip._internal.req.req_file import parse_requirements -elif tuple(map(int, pip.__version__.split('.'))) >= (10, 0, 0): +elif tuple(map(int, pkg_resources.require("pip")[0].version.split('.'))) >= (10, 0, 0): from pip._internal.download import PipSession from pip._internal.req import parse_requirements else: @@ -49,7 +49,7 @@ tests_require_g = parse_requirements("requirements-tests.txt", session=PipSessio docs_require_g = parse_requirements("requirements-docs.txt", session=PipSession()) dev_requires_g = parse_requirements("requirements-dev.txt", session=PipSession()) -if tuple(map(int, pip.__version__.split('.'))) >= (20, 1): +if tuple(map(int, pkg_resources.require("pip")[0].version.split('.'))) >= (20, 1): install_requires = [str(ir.requirement) for ir in install_requires_g] tests_require = [str(ir.requirement) for ir in tests_require_g] docs_require = [str(ir.requirement) for ir in docs_require_g] From 4ec0430a61c412878e1d78c75a5d8a6eb93b9dd4 Mon Sep 17 00:00:00 2001 From: csine-nflx Date: Tue, 1 Sep 2020 16:41:09 -0700 Subject: [PATCH 4/6] adding SETUP_TOOLS_USE_DISTUTILS to travis build file --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index f1abf3f3..b610a3dd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,7 @@ cache: env: global: - PIP_DOWNLOAD_CACHE=".pip_download_cache" + - SETUPTOOLS_USE_DISTUTILS=stdlib # do not load /etc/boto.cfg with Python 3 incompatible plugin # https://github.com/travis-ci/travis-ci/issues/5246#issuecomment-166460882 - BOTO_CONFIG=/doesnotexist From beba785b09f630731e3d2ec3dca7127e0bf236f6 Mon Sep 17 00:00:00 2001 From: csine-nflx Date: Tue, 1 Sep 2020 17:16:18 -0700 Subject: [PATCH 5/6] cleaning up requirements imports and adding comments to change to .travis.yml --- .travis.yml | 1 + setup.py | 46 ++++++++++++++++------------------------------ 2 files changed, 17 insertions(+), 30 deletions(-) diff --git a/.travis.yml b/.travis.yml index b610a3dd..f38555a0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,7 @@ cache: env: global: - PIP_DOWNLOAD_CACHE=".pip_download_cache" + # The following line is a temporary workaround for this issue: https://github.com/pypa/setuptools/issues/2230 - SETUPTOOLS_USE_DISTUTILS=stdlib # do not load /etc/boto.cfg with Python 3 incompatible plugin # https://github.com/travis-ci/travis-ci/issues/5246#issuecomment-166460882 diff --git a/setup.py b/setup.py index 94774bc4..a612cd18 100644 --- a/setup.py +++ b/setup.py @@ -16,24 +16,12 @@ import os.path import sys from subprocess import check_output -import pkg_resources from setuptools import Command from setuptools import setup, find_packages from setuptools.command.develop import develop from setuptools.command.install import install from setuptools.command.sdist import sdist -if tuple(map(int, pkg_resources.require("pip")[0].version.split('.'))) >= (19, 3, 0): - from pip._internal.network.session import PipSession - from pip._internal.req.req_file import parse_requirements - -elif tuple(map(int, pkg_resources.require("pip")[0].version.split('.'))) >= (10, 0, 0): - from pip._internal.download import PipSession - from pip._internal.req import parse_requirements -else: - from pip.download import PipSession - from pip.req import parse_requirements - ROOT = os.path.realpath(os.path.join(os.path.dirname(__file__))) # When executing the setup.py, we need to be able to import ourselves, this @@ -44,21 +32,18 @@ about = {} with open(os.path.join(ROOT, 'lemur', '__about__.py')) as f: exec(f.read(), about) # nosec: about file is benign -install_requires_g = parse_requirements("requirements.txt", session=PipSession()) -tests_require_g = parse_requirements("requirements-tests.txt", session=PipSession()) -docs_require_g = parse_requirements("requirements-docs.txt", session=PipSession()) -dev_requires_g = parse_requirements("requirements-dev.txt", session=PipSession()) +# Parse requirements files +with open('requirements.txt') as f: + install_requirements = f.read().splitlines() -if tuple(map(int, pkg_resources.require("pip")[0].version.split('.'))) >= (20, 1): - install_requires = [str(ir.requirement) for ir in install_requires_g] - tests_require = [str(ir.requirement) for ir in tests_require_g] - docs_require = [str(ir.requirement) for ir in docs_require_g] - dev_requires = [str(ir.requirement) for ir in dev_requires_g] -else: - install_requires = [str(ir.req) for ir in install_requires_g] - tests_require = [str(ir.req) for ir in tests_require_g] - docs_require = [str(ir.req) for ir in docs_require_g] - dev_requires = [str(ir.req) for ir in dev_requires_g] +with open('requirements-tests.txt') as f: + tests_requirements = f.read().splitlines() + +with open('requirements-docs.txt') as f: + docs_requirements = f.read().splitlines() + +with open('requirements-dev.txt') as f: + dev_requirements = f.read().splitlines() class SmartInstall(install): @@ -67,6 +52,7 @@ class SmartInstall(install): If the package indicator is missing, this will also force a run of `build_static` which is required for JavaScript assets and other things. """ + def _needs_static(self): return not os.path.exists(os.path.join(ROOT, 'lemur/static/dist')) @@ -128,11 +114,11 @@ setup( packages=find_packages(), include_package_data=True, zip_safe=False, - install_requires=install_requires, + install_requires=install_requirements, extras_require={ - 'tests': tests_require, - 'docs': docs_require, - 'dev': dev_requires, + 'tests': tests_requirements, + 'docs': docs_requirements, + 'dev': dev_requirements, }, cmdclass={ 'build_static': BuildStatic, From d5e51b3fc31c9d3138b1d3e035bdb7852610ca3e Mon Sep 17 00:00:00 2001 From: csine-nflx Date: Tue, 1 Sep 2020 17:20:34 -0700 Subject: [PATCH 6/6] Remove changes to .travis.yml, moving them to new PR --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f38555a0..f1abf3f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,8 +20,6 @@ cache: env: global: - PIP_DOWNLOAD_CACHE=".pip_download_cache" - # The following line is a temporary workaround for this issue: https://github.com/pypa/setuptools/issues/2230 - - SETUPTOOLS_USE_DISTUTILS=stdlib # do not load /etc/boto.cfg with Python 3 incompatible plugin # https://github.com/travis-ci/travis-ci/issues/5246#issuecomment-166460882 - BOTO_CONFIG=/doesnotexist