From fb76f0432a4ecc44acc5779be9cdcd352cc80734 Mon Sep 17 00:00:00 2001 From: beierlm Date: Wed, 26 Jan 2022 10:41:47 -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 Pin version of regexp to match IM Fixes bug 1850 Change-Id: Ic9a4a2d32593f1f64f5426c733609787925fe88c Signed-off-by: beierlm --- Dockerfile | 8 +- requirements-dev.txt | 72 ++++++------ requirements.in | 5 +- requirements.txt | 255 ++++++++++++++++++++++++------------------- tox.ini | 19 ++-- 5 files changed, 199 insertions(+), 160 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..5ac49ea 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,73 +1,89 @@ -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 -certifi==2020.12.5 +certifi==2021.10.8 # via # -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master # requests -chardet==4.0.0 +charset-normalizer==2.0.10 # via # -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master # requests -click==7.1.2 +click==8.0.3 # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master enum34==1.1.10 # via # -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master # pyangbind -idna==2.10 +idna==3.3 # via # -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master # requests -jinja2==2.11.3 +jinja2==3.0.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 # pyangbind -markupsafe==1.1.1 +markupsafe==2.0.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 +packaging==21.3 # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master -prettytable==2.1.0 +prettytable==3.0.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 pyangbind==0.8.1 # via -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master -pycurl==7.43.0.6 +pycurl==7.44.1 # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master -pyparsing==2.4.7 +pyparsing==3.0.6 # via # -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master # packaging -python-magic==0.4.22 +python-magic==0.4.24 # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master 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 +requests==2.27.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 -urllib3==1.26.4 +urllib3==1.26.8 # via # -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master # requests @@ -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..d96fffb 100644 --- a/requirements.in +++ b/requirements.in @@ -13,12 +13,13 @@ # See the License for the specific language governing permissions and # limitations under the License. ## -bitarray==1.8.1 +bitarray charm-tools haikunator pyangbind python-openstackclient -regex==2021.3.17 +pyyaml<6 +regex==2021.11.10 # from IM requests robotframework robotframework-jsonlibrary diff --git a/requirements.txt b/requirements.txt index d8870a3..09bec59 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,80 +1,110 @@ +####################################################################################### +# 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 - # via requests charm-tools==2.8.3 # via -r requirements.in +charset-normalizer==2.0.10 + # via requests 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 + # pyopenssl # secretstorage -debtcollector==2.2.0 + # 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 +distro==1.6.0 # via lazr.restfulclient -dogpile.cache==1.1.2 +dogpile.cache==1.1.5 # via openstacksdk enum34==1.1.10 # via pyangbind -filelock==3.0.12 +filelock==3.4.2 # via virtualenv +h11==0.13.0 + # via wsproto haikunator==2.1.0 # via -r requirements.in -httplib2==0.19.1 +httplib2==0.20.2 # via # launchpadlib # lazr.restfulclient -idna==2.10 - # via requests -iso8601==0.1.14 +idna==3.3 + # via + # requests + # trio + # urllib3 +iso8601==1.0.2 # via # colander # keystoneauth1 @@ -86,17 +116,17 @@ 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 +jujubundlelib==0.5.7 # via # charm-tools # theblues @@ -104,30 +134,30 @@ 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 +launchpadlib==1.10.15.1 # via charm-tools -lazr.restfulclient==0.14.3 +lazr.restfulclient==0.14.4 # via launchpadlib -lazr.uri==1.0.5 +lazr.uri==1.0.6 # 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 +165,13 @@ 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 +oauthlib==3.1.1 # via lazr.restfulclient -openstacksdk==0.55.0 +openstacksdk==0.61.0 # via # osc-lib # python-openstackclient @@ -149,11 +179,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 +192,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.1 # via # osc-lib # oslo.serialization @@ -176,21 +206,23 @@ oslo.utils==4.8.0 # 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==16.3.0 + # via path.py 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,34 +239,37 @@ 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 +protobuf==3.19.3 # 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 +pynacl==1.5.0 # via # macaroonbakery # paramiko # pymacaroons -pyparsing==2.4.7 +pyopenssl==21.0.0 + # via urllib3 +pyparsing==3.0.6 # via # cliff # httplib2 @@ -244,32 +279,33 @@ 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 + # -r requirements.in # charm-tools # cliff # jujubundlelib # openstacksdk # oslo.config # yq -regex==2021.3.17 +regex==2021.11.10 # via # -r requirements.in # pyangbind -requests==2.25.1 +requests==2.27.1 # via # -r requirements.in # charm-tools @@ -282,60 +318,61 @@ requests==2.25.1 # theblues requestsexceptions==1.4.0 # via openstacksdk -requirements-parser==0.2.0 +requirements-parser==0.5.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 +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 ruamel.yaml==0.15.100 # via charm-tools -scp==0.13.3 +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 @@ -348,8 +385,6 @@ stevedore==3.3.0 # python-openstackclient stuf==0.9.16 # via otherstuf -testresources==2.0.1 - # via launchpadlib theblues==0.5.2 # via libcharmstore toml==0.10.2 @@ -358,7 +393,15 @@ 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 +types-setuptools==57.4.7 + # via requirements-parser +urllib3[secure]==1.26.8 # via # requests # selenium @@ -366,41 +409,25 @@ verboselogs==1.7 # via -r requirements.in vergit==1.0.2 # via charm-tools -virtualenv==20.4.3 +virtualenv==20.13.0 # via # charm-tools # tox -wadllib==1.3.5 - # via - # launchpadlib - # lazr.restfulclient +wadllib==1.3.6 + # via lazr.restfulclient 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