From e536825d440c753925cbfe64e7fceafc526fff30 Mon Sep 17 00:00:00 2001 From: beierlm Date: Thu, 13 Jan 2022 13:24:08 -0500 Subject: [PATCH] Bug 1850: LTS Support Updates base to Ubuntu 20.04 Updates python to 3.8 Updates pip dependencies to more recent versions Adds apt cache to stage 2 dockerfile Fixes bug 1850 Change-Id: I29dcb5862b26021cecb4e581bd3cbd870682c968 Signed-off-by: beierlm --- Dockerfile | 8 +- requirements-dev.txt | 46 +++--- requirements.in | 6 +- requirements.txt | 323 +++++++++++++++++-------------------------- tox.ini | 19 ++- 5 files changed, 171 insertions(+), 231 deletions(-) diff --git a/Dockerfile b/Dockerfile index b949260..6411021 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,13 @@ # devops-stages/stage-build.sh # -FROM ubuntu:18.04 +FROM ubuntu:20.04 + +ARG APT_PROXY +RUN if [ ! -z $APT_PROXY ] ; then \ + echo "Acquire::http::Proxy \"$APT_PROXY\";" > /etc/apt/apt.conf.d/proxy.conf ;\ + echo "Acquire::https::Proxy \"$APT_PROXY\";" >> /etc/apt/apt.conf.d/proxy.conf ;\ + fi RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get -y install \ diff --git a/requirements-dev.txt b/requirements-dev.txt index a16fb90..53d6e71 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,4 +1,20 @@ -bitarray==1.8.1 +####################################################################################### +# Copyright ETSI Contributors and Others. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +####################################################################################### +bitarray==2.3.5 # via # -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master # pyangbind @@ -22,7 +38,7 @@ idna==2.10 # requests jinja2==2.11.3 # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master -lxml==4.6.3 +lxml==4.7.1 # via # -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master # pyang @@ -31,15 +47,15 @@ markupsafe==1.1.1 # via # -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master # jinja2 -git+https://osm.etsi.org/gerrit/osm/IM.git@master#egg=osm-im +osm-im @ git+https://osm.etsi.org/gerrit/osm/IM.git@master # via -r requirements-dev.in -git+https://osm.etsi.org/gerrit/osm/osmclient.git@master#egg=osm-osmclient +osmclient @ git+https://osm.etsi.org/gerrit/osm/osmclient.git@master # via -r requirements-dev.in packaging==20.9 # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master prettytable==2.1.0 # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master -pyang==2.4.0 +pyang==2.5.2 # via # -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master # pyangbind @@ -57,13 +73,13 @@ pyyaml==5.4.1 # via # -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master # -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master -regex==2021.3.17 +regex==2021.11.10 # via # -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master # pyangbind requests==2.25.1 # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master -six==1.15.0 +six==1.16.0 # via # -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master # pyangbind @@ -77,19 +93,3 @@ wcwidth==0.2.5 # via # -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master # prettytable -####################################################################################### -# Copyright ETSI Contributors and Others. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. -####################################################################################### diff --git a/requirements.in b/requirements.in index e72b2cc..9bac01f 100644 --- a/requirements.in +++ b/requirements.in @@ -13,12 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. ## -bitarray==1.8.1 -charm-tools +bitarray haikunator pyangbind python-openstackclient -regex==2021.3.17 +pyyaml<6 +regex requests robotframework robotframework-jsonlibrary diff --git a/requirements.txt b/requirements.txt index d8870a3..c0c3d65 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,82 +1,94 @@ +####################################################################################### +# Copyright ETSI Contributors and Others. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +####################################################################################### appdirs==1.4.4 - # via - # openstacksdk - # virtualenv -argcomplete==1.12.2 + # via openstacksdk +argcomplete==2.0.0 # via yq -attrs==20.3.0 - # via cmd2 +async-generator==1.10 + # via + # trio + # trio-websocket +attrs==21.4.0 + # via + # cmd2 + # outcome + # trio +autopage==0.4.0 + # via cliff bcrypt==3.2.0 # via paramiko -bitarray==1.8.1 +bitarray==2.3.5 # via # -r requirements.in # pyangbind -blessings==1.6 - # via charm-tools -certifi==2020.12.5 - # via requests -cffi==1.14.5 +certifi==2021.10.8 + # via + # requests + # urllib3 +cffi==1.15.0 # via # bcrypt # cryptography # pynacl -chardet==4.0.0 +charset-normalizer==2.0.10 # via requests -charm-tools==2.8.3 - # via -r requirements.in -cheetah3==3.2.6.post1 - # via charm-tools -cliff==3.7.0 +cliff==3.10.0 # via # osc-lib # python-openstackclient -cmd2==1.5.0 +cmd2==2.3.3 # via cliff -colander==1.7.0 - # via charm-tools -colorama==0.4.4 - # via cmd2 -coverage==5.5 +coverage==6.2 # via robotframework-jsonlibrary -cryptography==3.4.7 +cryptography==36.0.1 # via # openstacksdk # paramiko - # secretstorage -debtcollector==2.2.0 + # pyopenssl + # urllib3 +debtcollector==2.4.0 # via # oslo.config # oslo.utils # python-keystoneclient -decorator==5.0.6 +decorator==5.1.1 # via # dogpile.cache # jsonpath-rw # openstacksdk -dict2colander==0.2 - # via charm-tools -distlib==0.3.1 +distlib==0.3.4 # via virtualenv -distro==1.5.0 - # via lazr.restfulclient -dogpile.cache==1.1.2 +dogpile.cache==1.1.4 # via openstacksdk enum34==1.1.10 # via pyangbind -filelock==3.0.12 +filelock==3.4.2 # via virtualenv +h11==0.12.0 + # via wsproto haikunator==2.1.0 # via -r requirements.in -httplib2==0.19.1 +idna==3.3 # via - # launchpadlib - # lazr.restfulclient -idna==2.10 - # via requests -iso8601==0.1.14 + # requests + # trio + # urllib3 +iso8601==1.0.2 # via - # colander # keystoneauth1 # openstacksdk # oslo.utils @@ -86,48 +98,26 @@ jmespath==0.10.0 # via openstacksdk jsonpatch==1.32 # via openstacksdk -jsonpath-rw-ext==1.2.2 - # via robotframework-jsonlibrary jsonpath-rw==1.4.0 # via # jsonpath-rw-ext # robotframework-jsonlibrary -jsonpointer==2.1 +jsonpath-rw-ext==1.2.2 + # via robotframework-jsonlibrary +jsonpointer==2.2 # via jsonpatch -jsonschema==2.5.1 - # via charm-tools -jujubundlelib==0.5.6 - # via - # charm-tools - # theblues -keyring==20.0.1 - # via - # charm-tools - # launchpadlib -keystoneauth1==4.3.1 +keystoneauth1==4.4.0 # via # openstacksdk # osc-lib # python-cinderclient # python-keystoneclient # python-novaclient -launchpadlib==1.10.13 - # via charm-tools -lazr.restfulclient==0.14.3 - # via launchpadlib -lazr.uri==1.0.5 - # via - # launchpadlib - # wadllib -libcharmstore==0.0.9 - # via charm-tools -lxml==4.6.3 +lxml==4.7.1 # via # pyang # pyangbind -macaroonbakery==1.3.1 - # via theblues -msgpack==1.0.2 +msgpack==1.0.3 # via oslo.serialization munch==2.5.0 # via openstacksdk @@ -135,13 +125,11 @@ netaddr==0.8.0 # via # oslo.config # oslo.utils -netifaces==0.10.9 +netifaces==0.11.0 # via # openstacksdk # oslo.utils -oauthlib==3.1.0 - # via lazr.restfulclient -openstacksdk==0.55.0 +openstacksdk==0.61.0 # via # osc-lib # python-openstackclient @@ -149,11 +137,11 @@ os-service-types==1.7.0 # via # keystoneauth1 # openstacksdk -osc-lib==2.3.1 +osc-lib==2.4.2 # via python-openstackclient -oslo.config==8.5.0 +oslo.config==8.7.1 # via python-keystoneclient -oslo.i18n==5.0.1 +oslo.i18n==5.1.0 # via # osc-lib # oslo.config @@ -162,11 +150,11 @@ oslo.i18n==5.0.1 # python-keystoneclient # python-novaclient # python-openstackclient -oslo.serialization==4.1.0 +oslo.serialization==4.2.0 # via # python-keystoneclient # python-novaclient -oslo.utils==4.8.0 +oslo.utils==4.12.0 # via # osc-lib # oslo.serialization @@ -174,23 +162,15 @@ oslo.utils==4.8.0 # python-keystoneclient # python-novaclient # python-openstackclient -otherstuf==1.1.0 - # via charm-tools -packaging==20.9 +outcome==1.1.0 + # via trio +packaging==21.3 # via oslo.utils -paramiko==2.7.2 +paramiko==2.9.2 # via # robotframework-sshlibrary # scp -parse==1.19.0 - # via stuf -path.py==12.5.0 - # via charm-tools -path==15.1.2 - # via path.py -pathspec==0.3.4 - # via charm-tools -pbr==5.5.1 +pbr==5.8.0 # via # cliff # debtcollector @@ -207,135 +187,112 @@ pbr==5.5.1 # python-novaclient # python-openstackclient # stevedore - # testresources +platformdirs==2.4.1 + # via virtualenv pluggy==0.13.1 # via tox ply==3.11 # via jsonpath-rw -prettytable==2.1.0 +prettytable==3.0.0 # via # cliff # python-cinderclient # python-novaclient -protobuf==3.15.8 - # via macaroonbakery -py==1.10.0 +py==1.11.0 # via tox -pyang==2.4.0 +pyang==2.5.2 # via pyangbind pyangbind==0.8.1 # via -r requirements.in -pycparser==2.20 +pycparser==2.21 # via cffi -pymacaroons==0.13.0 - # via macaroonbakery -pynacl==1.4.0 - # via - # macaroonbakery - # paramiko - # pymacaroons -pyparsing==2.4.7 +pynacl==1.5.0 + # via paramiko +pyopenssl==21.0.0 + # via urllib3 +pyparsing==3.0.6 # via # cliff - # httplib2 # oslo.utils # packaging pyperclip==1.8.2 # via cmd2 -pyrfc3339==1.1 - # via macaroonbakery -python-cinderclient==7.4.0 +python-cinderclient==8.2.0 # via python-openstackclient -python-keystoneclient==4.2.0 +python-keystoneclient==4.4.0 # via python-openstackclient -python-novaclient==17.4.0 +python-novaclient==17.6.0 # via python-openstackclient -python-openstackclient==5.5.0 +python-openstackclient==5.7.0 # via -r requirements.in -pytz==2021.1 +pytz==2021.3 # via # oslo.serialization # oslo.utils - # pyrfc3339 pyyaml==5.4.1 # via - # charm-tools + # -r requirements.in # cliff - # jujubundlelib # openstacksdk # oslo.config # yq -regex==2021.3.17 +regex==2022.1.18 # via # -r requirements.in # pyangbind -requests==2.25.1 +requests==2.27.1 # via # -r requirements.in - # charm-tools # keystoneauth1 - # macaroonbakery # oslo.config # python-cinderclient # python-keystoneclient # robotframework-requests - # theblues requestsexceptions==1.4.0 # via openstacksdk -requirements-parser==0.2.0 - # via charm-tools -rfc3986==1.4.0 +rfc3986==2.0.0 # via oslo.config -robotframework-jsonlibrary==0.3.1 - # via -r requirements.in -robotframework-pythonlibcore==2.2.1 - # via robotframework-seleniumlibrary -robotframework-requests==0.8.2 - # via -r requirements.in -robotframework-seleniumlibrary==5.1.3 - # via -r requirements.in -robotframework-sshlibrary==3.6.0 - # via -r requirements.in -robotframework==4.0.1 +robotframework==4.1.3 # via # -r requirements.in # robotframework-jsonlibrary # robotframework-requests # robotframework-seleniumlibrary # robotframework-sshlibrary -ruamel.yaml==0.15.100 - # via charm-tools -scp==0.13.3 +robotframework-jsonlibrary==0.3.1 + # via -r requirements.in +robotframework-pythonlibcore==3.0.0 + # via robotframework-seleniumlibrary +robotframework-requests==0.9.2 + # via -r requirements.in +robotframework-seleniumlibrary==6.0.0 + # via -r requirements.in +robotframework-sshlibrary==3.8.0 + # via -r requirements.in +scp==0.14.2 # via robotframework-sshlibrary -secretstorage==2.3.1 - # via - # charm-tools - # keyring -selenium==3.141.0 +selenium==4.1.0 # via robotframework-seleniumlibrary -simplejson==3.17.2 +simplejson==3.17.6 # via # osc-lib # python-cinderclient -six==1.15.0 +six==1.16.0 # via # bcrypt - # debtcollector # jsonpath-rw # keystoneauth1 - # launchpadlib - # lazr.restfulclient - # macaroonbakery # munch - # oslo.i18n - # protobuf # pyangbind - # pymacaroons - # pynacl + # pyopenssl # python-keystoneclient # tox # virtualenv -stevedore==3.3.0 +sniffio==1.2.0 + # via trio +sortedcontainers==2.4.0 + # via trio +stevedore==3.5.0 # via # cliff # dogpile.cache @@ -346,61 +303,33 @@ stevedore==3.3.0 # python-keystoneclient # python-novaclient # python-openstackclient -stuf==0.9.16 - # via otherstuf -testresources==2.0.1 - # via launchpadlib -theblues==0.5.2 - # via libcharmstore toml==0.10.2 # via yq tox==3.0.0 # via robotframework-jsonlibrary -translationstring==1.4 - # via colander -urllib3==1.26.4 +trio==0.19.0 + # via + # selenium + # trio-websocket +trio-websocket==0.9.2 + # via selenium +urllib3[secure]==1.26.8 # via # requests # selenium verboselogs==1.7 # via -r requirements.in -vergit==1.0.2 - # via charm-tools -virtualenv==20.4.3 - # via - # charm-tools - # tox -wadllib==1.3.5 - # via - # launchpadlib - # lazr.restfulclient +virtualenv==20.13.0 + # via tox wcwidth==0.2.5 # via # cmd2 # prettytable -wrapt==1.12.1 +wrapt==1.13.3 # via debtcollector +wsproto==1.0.0 + # via trio-websocket xmltodict==0.12.0 # via yq -yq==2.12.0 +yq==2.13.0 # via -r requirements.in - -# The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools -####################################################################################### -# Copyright ETSI Contributors and Others. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. -####################################################################################### diff --git a/tox.ini b/tox.ini index 4f67210..05ace87 100644 --- a/tox.ini +++ b/tox.ini @@ -23,7 +23,7 @@ toxworkdir = /tmp/.tox [testenv] usedevelop = True -basepython = python3 +basepython = python3.8 setenv = VIRTUAL_ENV={envdir} PYTHONDONTWRITEBYTECODE = 1 deps = -r{toxinidir}/requirements.txt @@ -72,13 +72,18 @@ commands = ####################################################################################### [testenv:pip-compile] -deps = pip-tools==5.5.0 +deps = pip-tools==6.4.0 +skip_install = true +whitelist_externals = bash + [ commands = - - sh -c 'for file in requirements*.in ; do pip-compile -rU --no-header $file ;\ - out=`echo $file | sed "s/.in/.txt/"` ; \ - head -16 tox.ini >> $out ;\ - done' -whitelist_externals = sh + - bash -c "for file in requirements*.in ; do \ + UNSAFE="" ; \ + if [[ $file =~ 'dist' ]] ; then UNSAFE='--allow-unsafe' ; fi ; \ + pip-compile -rU --no-header $UNSAFE $file ;\ + out=`echo $file | sed 's/.in/.txt/'` ; \ + sed -i -e '1 e head -16 tox.ini' $out ;\ + done" ####################################################################################### -- 2.17.1