Bug 1850: LTS Support 05/11605/1
authorbeierlm <mark.beierl@canonical.com>
Wed, 26 Jan 2022 15:41:47 +0000 (10:41 -0500)
committerbeierlm <mark.beierl@canonical.com>
Mon, 31 Jan 2022 14:14:46 +0000 (09:14 -0500)
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 <mark.beierl@canonical.com>
Dockerfile
requirements-dev.txt
requirements.in
requirements.txt
tox.ini

index b949260..6411021 100644 (file)
 #   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 \
index a9bd0ac..84473cf 100644 (file)
@@ -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=v10.0
     #   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=v10.0
     #   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=v10.0
     #   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=v10.0
 enum34==1.1.10
     # via
     #   -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=v10.0
     #   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=v10.0
     #   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=v10.0
-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=v10.0
     #   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=v10.0
     #   jinja2
-git+https://osm.etsi.org/gerrit/osm/IM.git@v10.0#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@v10.0#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=v10.0
-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=v10.0
-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=v10.0
     #   pyangbind
 pyangbind==0.8.1
     # via -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=v10.0
-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=v10.0
-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=v10.0
     #   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=v10.0
 pyyaml==5.4.1
     # via
     #   -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=v10.0
     #   -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=v10.0
-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=v10.0
     #   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=v10.0
-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=v10.0
     #   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=v10.0
     #   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=v10.0
     #   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.
-#######################################################################################
index e72b2cc..d96fffb 100644 (file)
 # 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
index d8870a3..09bec59 100644 (file)
+#######################################################################################
+# 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 (file)
--- 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"
 
 
 #######################################################################################