From cf55b6a0ba835bb87111a85eeb38ddedd3970404 Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Wed, 11 Dec 2019 16:40:32 -0500 Subject: [PATCH] Bootstrap venv creation with flit and poetry this is in addition to pip and setuptools installs add in --ignore-installed and --no-build-isolation flags reasoning is that we are not installing needed packages for building --- Makefile | 25 +++++++++++--------- requirements/requirements_ansible.in | 4 ++-- requirements/requirements_setup_requires.txt | 6 ++--- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index 39d9c984de..88774dc2a1 100644 --- a/Makefile +++ b/Makefile @@ -137,9 +137,8 @@ virtualenv_ansible: fi; \ if [ ! -d "$(VENV_BASE)/ansible" ]; then \ virtualenv -p python $(VENV_BASE)/ansible && \ - $(VENV_BASE)/ansible/bin/pip install $(PIP_OPTIONS) pip==19.3.1 setuptools==41.6.0 wheel==0.33.6 && \ - $(VENV_BASE)/ansible/bin/pip install $(PIP_OPTIONS) flit poetry twine; \ # undeclared setup_requires - fi; \ # TODO: re-enable system site packages + $(VENV_BASE)/ansible/bin/pip install $(PIP_OPTIONS) pip==19.3.1 setuptools==41.6.0 wheel==0.33.6; \ + fi; \ fi virtualenv_ansible_py3: @@ -148,10 +147,9 @@ virtualenv_ansible_py3: mkdir $(VENV_BASE); \ fi; \ if [ ! -d "$(VENV_BASE)/ansible" ]; then \ - $(PYTHON) -m venv $(VENV_BASE)/ansible && \ - $(VENV_BASE)/ansible/bin/pip install $(PIP_OPTIONS) pip==19.3.1 setuptools==41.6.0 wheel==0.33.6 && \ - $(VENV_BASE)/ansible/bin/pip install $(PIP_OPTIONS) flit poetry twine; \ # undeclared setup_requires - fi; \ # TODO: re-enable system site packages + virtualenv -p $(PYTHON) $(VENV_BASE)/ansible; \ + $(VENV_BASE)/ansible/bin/pip install $(PIP_OPTIONS) pip==19.3.1 setuptools==41.6.0 wheel==0.33.6; \ + fi; \ fi virtualenv_awx: @@ -160,25 +158,29 @@ virtualenv_awx: mkdir $(VENV_BASE); \ fi; \ if [ ! -d "$(VENV_BASE)/awx" ]; then \ - $(PYTHON) -m venv --system-site-packages $(VENV_BASE)/awx; \ + virtualenv -p $(PYTHON) $(VENV_BASE)/awx; \ + $(VENV_BASE)/awx/bin/pip install $(PIP_OPTIONS) pip==19.3.1 setuptools==41.6.0 wheel==0.33.6 && \ + $(VENV_BASE)/awx/bin/pip install $(PIP_OPTIONS) poetry==0.12.17 flit; \ fi; \ fi requirements_ansible: virtualenv_ansible if [[ "$(PIP_OPTIONS)" == *"--no-index"* ]]; then \ - cat requirements/requirements_ansible.txt requirements/requirements_ansible_local.txt | $(VENV_BASE)/ansible/bin/pip install $(PIP_OPTIONS) -r /dev/stdin ; \ + cat requirements/requirements_ansible.txt requirements/requirements_ansible_local.txt | $(VENV_BASE)/ansible/bin/pip install $(PIP_OPTIONS) --ignore-installed --no-build-isolation -r /dev/stdin ; \ else \ cat requirements/requirements_ansible.txt requirements/requirements_ansible_git.txt | $(VENV_BASE)/ansible/bin/pip install $(PIP_OPTIONS) --no-binary $(SRC_ONLY_PKGS) -r /dev/stdin ; \ fi $(VENV_BASE)/ansible/bin/pip uninstall --yes -r requirements/requirements_ansible_uninstall.txt + rm $(shell ls -d $(VENV_BASE)/ansible/lib/python* | head -n 1)/no-global-site-packages.txt requirements_ansible_py3: virtualenv_ansible_py3 if [[ "$(PIP_OPTIONS)" == *"--no-index"* ]]; then \ - cat requirements/requirements_ansible.txt requirements/requirements_ansible_local.txt | $(VENV_BASE)/ansible/bin/pip3 install $(PIP_OPTIONS) -r /dev/stdin ; \ + cat requirements/requirements_ansible.txt requirements/requirements_ansible_local.txt | $(VENV_BASE)/ansible/bin/pip3 install $(PIP_OPTIONS) --ignore-installed --no-build-isolation -r /dev/stdin ; \ else \ cat requirements/requirements_ansible.txt requirements/requirements_ansible_git.txt | $(VENV_BASE)/ansible/bin/pip3 install $(PIP_OPTIONS) --no-binary $(SRC_ONLY_PKGS) -r /dev/stdin ; \ fi $(VENV_BASE)/ansible/bin/pip3 uninstall --yes -r requirements/requirements_ansible_uninstall.txt + rm $(shell ls -d $(VENV_BASE)/ansible/lib/python* | head -n 1)/no-global-site-packages.txt requirements_ansible_dev: if [ "$(VENV_BASE)" ]; then \ @@ -188,12 +190,13 @@ requirements_ansible_dev: # Install third-party requirements needed for AWX's environment. requirements_awx: virtualenv_awx if [[ "$(PIP_OPTIONS)" == *"--no-index"* ]]; then \ - cat requirements/requirements.txt requirements/requirements_local.txt | $(VENV_BASE)/awx/bin/pip install $(PIP_OPTIONS) -r /dev/stdin ; \ + cat requirements/requirements.txt requirements/requirements_local.txt | $(VENV_BASE)/awx/bin/pip install $(PIP_OPTIONS) --ignore-installed --no-build-isolation -r /dev/stdin ; \ else \ cat requirements/requirements.txt requirements/requirements_git.txt | $(VENV_BASE)/awx/bin/pip install $(PIP_OPTIONS) --no-binary $(SRC_ONLY_PKGS) -r /dev/stdin ; \ fi echo "include-system-site-packages = true" >> $(VENV_BASE)/awx/lib/python$(PYTHON_VERSION)/pyvenv.cfg $(VENV_BASE)/awx/bin/pip uninstall --yes -r requirements/requirements_tower_uninstall.txt + rm $(shell ls -d $(VENV_BASE)/awx/lib/python* | head -n 1)/no-global-site-packages.txt requirements_awx_dev: $(VENV_BASE)/awx/bin/pip install -r requirements/requirements_dev.txt diff --git a/requirements/requirements_ansible.in b/requirements/requirements_ansible.in index 2214efea44..7c9d53abd7 100644 --- a/requirements/requirements_ansible.in +++ b/requirements/requirements_ansible.in @@ -53,8 +53,6 @@ ovirt-engine-sdk-python==4.3.0 # minimum set inside Ansible facts module requ pycurl==7.43.0.1 # higher versions will not install without SSL backend specified # AWX usage psutil==5.4.3 # same as AWX requirement -pip==19.3.1 # see upgrade blockers -setuptools==41.6.0 # see upgrade blockers # VMware pyvmomi==6.7.3 # WinRM @@ -64,3 +62,5 @@ requests requests-credssp==1.0.2 # For windows authentication awx/issues/1144 # OpenStack openstacksdk==0.31.1 +pip==19.3.1 # see upgrade blockers +setuptools==41.6.0 # see upgrade blockers \ No newline at end of file diff --git a/requirements/requirements_setup_requires.txt b/requirements/requirements_setup_requires.txt index 89cfac9e1d..82e6dbdc32 100644 --- a/requirements/requirements_setup_requires.txt +++ b/requirements/requirements_setup_requires.txt @@ -5,16 +5,14 @@ pytest-runner isort virtualenv m2r -twine # from python-daemon -wheel==0.33.6 cffi>=1.1 wheel>=0.33.6 backports.functools_lru_cache more-itertools==5.0.0 -poetry +poetry==0.12.17 functools32<4.0.0,>=3.2.3; python_version >= "2.7" and python_version < "2.8" flit; python_version >= "3.5" twine; python_version >= "3.6" incremental>=16.10.1; python_version >= "3.6" lxml>=3.0; python_version >= "3.6" -pkgconfig; python_version >= "3.6" \ No newline at end of file +pkgconfig; python_version >= "3.6"