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 <mark.beierl@canonical.com>
diff --git a/requirements-dev.txt b/requirements-dev.txt
index a16fb90..5ac49ea 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -1,82 +1,3 @@
-bitarray==1.8.1
-    # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master
-    #   pyangbind
-certifi==2020.12.5
-    # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
-    #   requests
-chardet==4.0.0
-    # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
-    #   requests
-click==7.1.2
-    # 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
-    # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
-    #   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
-    # 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
-    # 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
-    # via -r requirements-dev.in
-git+https://osm.etsi.org/gerrit/osm/osmclient.git@master#egg=osm-osmclient
-    # 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
-    # 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
-    # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
-pyparsing==2.4.7
-    # 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
-    # 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
-    # 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
-    # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master
-    #   pyangbind
-urllib3==1.26.4
-    # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
-    #   requests
-verboselogs==1.7
-    # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
-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.
 #
@@ -93,3 +14,82 @@
 # 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==2021.10.8
+    # via
+    #   -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
+    #   requests
+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==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==3.3
+    # via
+    #   -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
+    #   requests
+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.7.1
+    # via
+    #   -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master
+    #   pyang
+    #   pyangbind
+markupsafe==2.0.1
+    # via
+    #   -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
+    #   jinja2
+osm-im @ git+https://osm.etsi.org/gerrit/osm/IM.git@master
+    # via -r requirements-dev.in
+osmclient @ git+https://osm.etsi.org/gerrit/osm/osmclient.git@master
+    # via -r requirements-dev.in
+packaging==21.3
+    # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
+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.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.44.1
+    # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
+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.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.11.10
+    # via
+    #   -r https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=master
+    #   pyangbind
+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.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.8
+    # via
+    #   -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
+    #   requests
+verboselogs==1.7
+    # via -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
+wcwidth==0.2.5
+    # via
+    #   -r https://osm.etsi.org/gitweb/?p=osm/osmclient.git;a=blob_plain;f=requirements.txt;hb=master
+    #   prettytable