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
This commit is contained in:
Shane McDonald 2019-12-11 16:40:32 -05:00 committed by AlanCoding
parent a2acf4d61f
commit cf55b6a0ba
No known key found for this signature in database
GPG Key ID: FD2C3C012A72926B
3 changed files with 18 additions and 17 deletions

View File

@ -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

View File

@ -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

View File

@ -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"
pkgconfig; python_version >= "3.6"