From: beierlm Date: Wed, 26 Jan 2022 15:30:44 +0000 (-0500) Subject: Bug 1842: LTS Support X-Git-Tag: v10.1.0-rc1^0 X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FMON.git;a=commitdiff_plain;h=5adef48c5cab27989825f0b550270cff3a1cdd46 Bug 1842: 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 1842 Change-Id: Iefa3c72fe200ecf4f0b4081db76d203ac38a50e7 Signed-off-by: beierlm --- diff --git a/Dockerfile b/Dockerfile index 74b9c36..c597522 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,6 +23,12 @@ 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 \ debhelper \ @@ -33,5 +39,5 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ python3-dev \ python3-setuptools -RUN python3 -m easy_install pip==21.0.1 -RUN pip3 install tox==3.22.0 +RUN python3 -m easy_install pip==21.3.1 +RUN pip install tox==3.24.5 diff --git a/requirements-dev.txt b/requirements-dev.txt index cce38f5..6b08485 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,8 +1,24 @@ --e git+https://osm.etsi.org/gerrit/osm/N2VC.git@v10.0#egg=n2vc +####################################################################################### +# 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. +####################################################################################### +-e git+https://osm.etsi.org/gerrit/osm/N2VC.git@master#egg=n2vc # via -r requirements-dev.in --e git+https://osm.etsi.org/gerrit/osm/common.git@v10.0#egg=osm-common +-e git+https://osm.etsi.org/gerrit/osm/common.git@master#egg=osm-common # via -r requirements-dev.in -aiokafka==0.7.0 +aiokafka==0.7.2 # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=v10.0 async-timeout==3.0.1 # via @@ -12,42 +28,42 @@ bcrypt==3.2.0 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # paramiko -cachetools==4.2.1 +cachetools==4.2.4 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # google-auth -certifi==2020.12.5 +certifi==2021.10.8 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # kubernetes # requests -cffi==1.14.5 +cffi==1.15.0 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # bcrypt # cryptography # pynacl -chardet==4.0.0 +charset-normalizer==2.0.10 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # requests -cryptography==3.4.7 +cryptography==36.0.1 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # paramiko dataclasses==0.6 # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=v10.0 -google-auth==1.28.0 +google-auth==2.3.3 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # kubernetes -idna==2.10 +idna==3.3 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # requests -juju==2.8.4 +juju==2.9.4 # via -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 -jujubundlelib==0.5.6 +jujubundlelib==0.5.7 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # theblues @@ -55,8 +71,10 @@ kafka-python==2.0.2 # via # -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=v10.0 # aiokafka -kubernetes==10.0.1 - # via -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 +kubernetes==21.7.0 + # via + # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 + # juju macaroonbakery==1.3.1 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 @@ -68,29 +86,29 @@ mypy-extensions==0.4.3 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # typing-inspect -oauthlib==3.1.0 +oauthlib==3.1.1 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # requests-oauthlib -paramiko==2.7.2 +paramiko==2.9.2 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # juju -protobuf==3.15.6 +protobuf==3.19.3 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # macaroonbakery -pyasn1-modules==0.2.8 - # via - # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 - # google-auth pyasn1==0.4.8 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # juju # pyasn1-modules # rsa -pycparser==2.20 +pyasn1-modules==0.2.8 + # via + # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 + # google-auth +pycparser==2.21 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # cffi @@ -100,12 +118,12 @@ pymacaroons==0.13.0 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # macaroonbakery -pymongo==3.11.3 +pymongo==3.12.3 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=v10.0 # motor -pynacl==1.4.0 +pynacl==1.5.0 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # macaroonbakery @@ -116,11 +134,11 @@ pyrfc3339==1.1 # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # juju # macaroonbakery -python-dateutil==2.8.1 +python-dateutil==2.8.2 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # kubernetes -pytz==2021.1 +pytz==2021.3 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # pyrfc3339 @@ -131,57 +149,54 @@ pyyaml==5.4.1 # juju # jujubundlelib # kubernetes -requests-oauthlib==1.3.0 - # via - # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 - # kubernetes -requests==2.25.1 +requests==2.27.1 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # kubernetes # macaroonbakery # requests-oauthlib # theblues +requests-oauthlib==1.3.0 + # via + # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 + # kubernetes retrying-async==1.2.0 # via -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 -rsa==4.7.2 +rsa==4.8 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # google-auth -six==1.15.0 +six==1.16.0 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # bcrypt # google-auth # kubernetes # macaroonbakery - # protobuf # pymacaroons - # pynacl # python-dateutil - # websocket-client theblues==0.5.2 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # juju -toposort==1.6 +toposort==1.7 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # juju -typing-extensions==3.7.4.3 +typing-extensions==4.0.1 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # typing-inspect -typing-inspect==0.6.0 +typing-inspect==0.7.1 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # juju -urllib3==1.26.4 +urllib3==1.26.8 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # kubernetes # requests -websocket-client==0.58.0 +websocket-client==1.2.3 # via # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=v10.0 # kubernetes @@ -192,19 +207,3 @@ websockets==7.0 # The following packages are considered to be unsafe in a requirements file: # 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/requirements-dist.txt b/requirements-dist.txt index 7393626..8192b48 100644 --- a/requirements-dist.txt +++ b/requirements-dist.txt @@ -1,10 +1,3 @@ -setuptools-version-command==2.2 - # via -r requirements-dist.in -stdeb==0.10.0 - # via -r requirements-dist.in - -# The following packages are considered to be unsafe in a requirements file: -# setuptools ####################################################################################### # Copyright ETSI Contributors and Others. # @@ -21,3 +14,13 @@ stdeb==0.10.0 # See the License for the specific language governing permissions and # limitations under the License. ####################################################################################### +setuptools-version-command==99.9 + # via -r requirements-dist.in +stdeb==0.10.0 + # via -r requirements-dist.in + +# The following packages are considered to be unsafe in a requirements file: +setuptools==59.8.0 + # via + # -r requirements-dist.in + # setuptools-version-command diff --git a/requirements-test.txt b/requirements-test.txt index 871fdef..9c6fd21 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,27 +1,3 @@ -certifi==2020.12.5 - # via requests -chardet==4.0.0 - # via requests -coverage==5.5 - # via - # -r requirements-test.in - # nose2 -idna==2.10 - # via requests -mock==4.0.3 - # via -r requirements-test.in -nose2==0.10.0 - # via -r requirements-test.in -requests-mock==1.8.0 - # via -r requirements-test.in -requests==2.25.1 - # via requests-mock -six==1.15.0 - # via - # nose2 - # requests-mock -urllib3==1.26.4 - # via requests ####################################################################################### # Copyright ETSI Contributors and Others. # @@ -38,3 +14,27 @@ urllib3==1.26.4 # See the License for the specific language governing permissions and # limitations under the License. ####################################################################################### +certifi==2021.10.8 + # via requests +charset-normalizer==2.0.10 + # via requests +coverage==6.2 + # via + # -r requirements-test.in + # nose2 +idna==3.3 + # via requests +mock==4.0.3 + # via -r requirements-test.in +nose2==0.10.0 + # via -r requirements-test.in +requests==2.27.1 + # via requests-mock +requests-mock==1.9.3 + # via -r requirements-test.in +six==1.16.0 + # via + # nose2 + # requests-mock +urllib3==1.26.8 + # via requests diff --git a/requirements.in b/requirements.in index 51603ff..bc9b4d6 100644 --- a/requirements.in +++ b/requirements.in @@ -28,6 +28,6 @@ python-keystoneclient python-neutronclient python-novaclient pyvcloud==23.0.* -pyyaml +pyyaml==5.4.1 requests six diff --git a/requirements.txt b/requirements.txt index 22bf875..c7449b2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,27 +1,43 @@ -aiokafka==0.7.0 +####################################################################################### +# 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. +####################################################################################### +aiokafka==0.7.2 # via -r requirements.in appdirs==1.4.4 # via openstacksdk -attrs==20.3.0 +attrs==21.4.0 # via cmd2 -certifi==2020.12.5 +autopage==0.4.0 + # via cliff +certifi==2021.10.8 # via requests -cffi==1.14.5 +cffi==1.15.0 # via cryptography -chardet==4.0.0 +charset-normalizer==2.0.10 # via requests -cliff==3.7.0 +cliff==3.10.0 # via # gnocchiclient # osc-lib # python-neutronclient -cmd2==1.5.0 +cmd2==2.3.3 # via cliff -colorama==0.4.4 - # via cmd2 -cryptography==3.4.7 +cryptography==36.0.1 # via openstacksdk -debtcollector==2.2.0 +debtcollector==2.3.0 # via # gnocchiclient # oslo.config @@ -30,23 +46,23 @@ debtcollector==2.2.0 # oslo.utils # python-keystoneclient # python-neutronclient -decorator==4.4.2 +decorator==5.1.1 # via # dogpile.cache # openstacksdk -dogpile.cache==1.1.2 +dogpile.cache==1.1.4 # via openstacksdk -futurist==2.3.0 +futurist==2.4.0 # via gnocchiclient gnocchiclient==7.0.7 # via -r requirements.in -humanfriendly==9.1 +humanfriendly==10.0 # via # -r requirements.in # pyvcloud -idna==2.10 +idna==3.3 # via requests -iso8601==0.1.14 +iso8601==1.0.2 # via # gnocchiclient # keystoneauth1 @@ -59,26 +75,27 @@ jmespath==0.10.0 # via openstacksdk jsonpatch==1.32 # via openstacksdk -jsonpointer==2.1 +jsonpointer==2.2 # via jsonpatch kafka-python==2.0.2 # via aiokafka -keystoneauth1==4.3.1 +keystoneauth1==4.4.0 # via # gnocchiclient # openstacksdk # osc-lib # python-ceilometerclient + # python-cinderclient # python-keystoneclient # python-neutronclient # python-novaclient -lxml==4.6.3 +lxml==4.7.1 # via # -r requirements.in # pyvcloud -monotonic==1.5 +monotonic==1.6 # via gnocchiclient -msgpack==1.0.2 +msgpack==1.0.3 # via oslo.serialization munch==2.5.0 # via openstacksdk @@ -87,11 +104,11 @@ netaddr==0.8.0 # oslo.config # oslo.utils # python-neutronclient -netifaces==0.10.9 +netifaces==0.11.0 # via # openstacksdk # oslo.utils -openstacksdk==0.55.0 +openstacksdk==0.61.0 # via # os-client-config # osc-lib @@ -101,45 +118,49 @@ os-service-types==1.7.0 # via # keystoneauth1 # openstacksdk -osc-lib==2.3.1 +osc-lib==2.4.2 # via python-neutronclient -oslo.config==8.5.0 +oslo.config==8.7.1 # via # oslo.log # python-keystoneclient -oslo.context==3.2.0 +oslo.context==3.4.0 # via oslo.log -oslo.i18n==5.0.1 +oslo.i18n==5.1.0 # via # osc-lib # oslo.config # oslo.log # oslo.utils # python-ceilometerclient + # python-cinderclient # python-keystoneclient # python-neutronclient # python-novaclient -oslo.log==4.4.0 +oslo.log==4.6.1 # via python-neutronclient -oslo.serialization==4.1.0 +oslo.serialization==4.2.0 # via # oslo.log # python-ceilometerclient # python-keystoneclient # python-neutronclient # python-novaclient -oslo.utils==4.8.0 +oslo.utils==4.12.0 # via # osc-lib # oslo.log # oslo.serialization # python-ceilometerclient + # python-cinderclient # python-keystoneclient # python-neutronclient # python-novaclient -packaging==20.9 - # via oslo.utils -pbr==5.5.1 +packaging==21.3 + # via + # oslo.utils + # pyvcloud +pbr==5.8.0 # via # cliff # debtcollector @@ -155,6 +176,7 @@ pbr==5.5.1 # oslo.serialization # oslo.utils # python-ceilometerclient + # python-cinderclient # python-keystoneclient # python-neutronclient # python-novaclient @@ -163,16 +185,17 @@ prettytable==0.7.2 # via # cliff # python-ceilometerclient + # python-cinderclient # python-novaclient -prometheus-client==0.9.0 +prometheus-client==0.12.0 # via -r requirements.in -pycparser==2.20 +pycparser==2.21 # via cffi -pygments==2.8.1 +pygments==2.11.2 # via pyvcloud pyinotify==0.9.6 # via oslo.log -pyparsing==2.4.7 +pyparsing==3.0.6 # via # cliff # oslo.utils @@ -181,24 +204,26 @@ pyperclip==1.8.2 # via cmd2 python-ceilometerclient==2.9.0 # via -r requirements.in -python-dateutil==2.8.1 +python-cinderclient==8.2.0 + # via -r requirements.in +python-dateutil==2.8.2 # via # gnocchiclient # oslo.log # pyvcloud -python-keystoneclient==4.2.0 +python-keystoneclient==4.4.0 # via # -r requirements.in # python-neutronclient -python-neutronclient==7.3.0 +python-neutronclient==7.7.0 # via -r requirements.in -python-novaclient==17.4.0 +python-novaclient==17.6.0 # via -r requirements.in -pytz==2021.1 +pytz==2021.3 # via # oslo.serialization # oslo.utils -pyvcloud==23.0.0 +pyvcloud==23.0.3 # via -r requirements.in pyyaml==5.4.1 # via @@ -207,24 +232,26 @@ pyyaml==5.4.1 # openstacksdk # oslo.config # pyvcloud -requests==2.25.1 +requests==2.27.1 # via # -r requirements.in # keystoneauth1 # oslo.config # python-ceilometerclient + # python-cinderclient # python-keystoneclient # python-neutronclient # pyvcloud requestsexceptions==1.4.0 # via openstacksdk -rfc3986==1.4.0 +rfc3986==1.5.0 # via oslo.config -simplejson==3.17.2 +simplejson==3.17.6 # via # osc-lib + # python-cinderclient # python-neutronclient -six==1.15.0 +six==1.16.0 # via # -r requirements.in # debtcollector @@ -232,11 +259,10 @@ six==1.15.0 # gnocchiclient # keystoneauth1 # munch - # oslo.i18n # python-ceilometerclient # python-dateutil # python-keystoneclient -stevedore==3.3.0 +stevedore==3.5.0 # via # cliff # dogpile.cache @@ -244,33 +270,18 @@ stevedore==3.3.0 # osc-lib # oslo.config # python-ceilometerclient + # python-cinderclient # python-keystoneclient # python-novaclient -ujson==4.0.2 +ujson==5.1.0 # via gnocchiclient unittest-xml-reporting==3.0.4 # via pyvcloud -urllib3==1.26.4 +urllib3==1.26.8 # via requests -vcd-api-schemas-type==9.1.2.dev10 +vcd-api-schemas-type==10.3.0.dev72 # via pyvcloud wcwidth==0.2.5 # via cmd2 -wrapt==1.12.1 +wrapt==1.13.3 # via debtcollector -####################################################################################### -# 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 db88368..bf0cdb9 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 @@ -82,13 +82,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" #######################################################################################