From 4f54188c6171bf7fa1cb7f854fb4d004a0437147 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Tue, 24 Oct 2017 15:26:44 +0200 Subject: [PATCH] Normalize global-requirements.txt This enforces consistent spacing in global-requirements.txt and sorts the specifiers to be always in a specific order (namely minimum bound first, then exceptions, then upper bound). Add test coverage for this normalisation. Change-Id: If41732bfe4476e422bc6b9f9f896eb978db8be84 --- blacklist.txt | 2 +- global-requirements.txt | 186 ++++++++++++------------ openstack_requirements/cmds/validate.py | 12 ++ 3 files changed, 106 insertions(+), 94 deletions(-) diff --git a/blacklist.txt b/blacklist.txt index 94314b6b51..0a7ff223be 100644 --- a/blacklist.txt +++ b/blacklist.txt @@ -3,7 +3,7 @@ astroid bandit flake8 -flake8_docstrings +flake8-docstrings flake8-import-order hacking mccabe diff --git a/global-requirements.txt b/global-requirements.txt index 8cbb37e2cb..07c46fd22c 100644 --- a/global-requirements.txt +++ b/global-requirements.txt @@ -9,24 +9,24 @@ automaton>=1.9.0 # Apache-2.0 beautifulsoup4>=4.6.0 # MIT Babel>=2.3.4,!=2.4.0 # BSD bcrypt>=3.1.3 # Apache-2.0 -betamax>=0.7.0 # Apache-2.0 +betamax>=0.7.0 # Apache-2.0 betamax-matchers>=0.4.0 # Apache-2.0 boto>=2.32.1 # MIT -botocore>=1.5.1 # Apache-2.0 -cassandra-driver>=2.1.4,!=3.6.0 # Apache-2.0 -castellan>=0.14.0 # Apache-2.0 +botocore>=1.5.1 # Apache-2.0 +cassandra-driver>=2.1.4,!=3.6.0 # Apache-2.0 +castellan>=0.14.0 # Apache-2.0 ceilometermiddleware>=1.1.0 # Apache-2.0 -cachetools>=2.0.0 # MIT License +cachetools>=2.0.0 # MIT License cffi>=1.1.2 # MIT cliff>=2.8.0,!=2.9.0 # Apache-2.0 cmd2>=0.6.7 # MIT cotyledon>=1.3.0 # Apache-2.0 -construct>=2.8.10 # MIT +construct>=2.8.10 # MIT PuLP>=1.4.1 # MIT -contextlib2>=0.4.0 # PSF License -croniter>=0.3.4 # MIT License +contextlib2>=0.4.0 # PSF License +croniter>=0.3.4 # MIT License cryptography>=1.9,!=2.0 # BSD/Apache-2.0 -cursive>=0.1.2 # Apache-2.0 +cursive>=0.1.2 # Apache-2.0 ddt>=1.0.1 # MIT debtcollector>=1.2.0 # Apache-2.0 decorator>=3.4.0 # BSD @@ -34,10 +34,10 @@ dib-utils>=0.0.8 # Apache-2.0 diskimage-builder>=1.1.2,!=1.6.0,!=1.7.0,!=1.7.1 # Apache-2.0 Django>=1.8,<2.0 # BSD django-babel>=0.5.1 # BSD -django_compressor>=2.0 # MIT +django-compressor>=2.0 # MIT django-floppyforms>=1.0,<2 # BSD django-formtools>=1.0 # BSD -django_openstack_auth>=3.5.0 # Apache-2.0 +django-openstack-auth>=3.5.0 # Apache-2.0 dnspython>=1.14.0;python_version=='2.7' # http://www.dnspython.org/LICENSE dnspython3>=1.12.0,!=1.13.0,!=1.14.0;python_version>='3.0' # http://www.dnspython.org/LICENSE # Note(tonyb): We don't actually directly depend on docutils but we pull it in @@ -47,36 +47,36 @@ docutils>=0.11 # OSI-Approved Open Source, Public Domain dogpile.cache>=0.6.2 # BSD dogtag-pki>=10.3.5.1 # LGPLv3+ dulwich>=0.15.0 # Apache-2.0 -elasticsearch>=2.0.0,<=3.0.0 # Apache-2.0 +elasticsearch>=2.0.0,<=3.0.0 # Apache-2.0 enum34>=1.0.4;python_version=='2.7' or python_version=='2.6' or python_version=='3.3' # BSD # NOTE: New versions of eventlet should not be accepted lightly # as they have earned a reputation of frequently breaking things. # NOTE(sdague): before allowing in >= 0.21 please be sure # https://github.com/eventlet/eventlet/issues/401 is resolved -eventlet!=0.18.3,>=0.18.2,!=0.20.1,<0.21.0 # MIT +eventlet>=0.18.2,!=0.18.3,!=0.20.1,<0.21.0 # MIT exabgp>=4.0.1 # BSD extras>=0.0.3 # MIT -falcon>=1.0.0 # Apache-2.0 +falcon>=1.0.0 # Apache-2.0 Flask>=0.10,!=0.11,<1.0 # BSD flask-keystone>=0.2 # Apache-2.0 -flask-oslolog>=0.1 # Apache-2.0 -Flask-RESTful>=0.3.5 # BSD -Flask-SQLAlchemy>=2.0 # BSD -fortiosclient>=0.0.2 # Apache-2.0 +flask-oslolog>=0.1 # Apache-2.0 +Flask-RESTful>=0.3.5 # BSD +Flask-SQLAlchemy>=2.0 # BSD +fortiosclient>=0.0.2 # Apache-2.0 futures>=3.0;python_version=='2.7' or python_version=='2.6' # BSD futurist>=1.2.0 # Apache-2.0 funcsigs>=1.0.0;python_version=='2.7' or python_version=='2.6' # Apache-2.0 -gitdb>=0.6.4 # BSD License (3 clause) -glance_store>=0.22.0 # Apache-2.0 -google-api-python-client>=1.4.2 # Apache-2.0 -graphviz>=0.4,!=0.5.0 # MIT License +gitdb>=0.6.4 # BSD License (3 clause) +glance-store>=0.22.0 # Apache-2.0 +google-api-python-client>=1.4.2 # Apache-2.0 +graphviz>=0.4,!=0.5.0 # MIT License greenlet>=0.4.10 # MIT -GitPython>=1.0.1 # BSD License (3 clause) +GitPython>=1.0.1 # BSD License (3 clause) gunicorn>=19.0.0 # MIT happybase>=0.5,!=0.7,!=1.0.0;python_version=='2.7' # MIT -heat-translator>=0.4.0 # Apache-2.0 +heat-translator>=0.4.0 # Apache-2.0 httplib2>=0.9.1 # MIT -icalendar>=3.10 # BSD +icalendar>=3.10 # BSD influxdb>=2.9.2 # MIT instack-undercloud>=7.0.0 # Apache-2.0 ironic-lib>=2.5.0 # Apache-2.0 @@ -96,14 +96,14 @@ krest>=1.3.1 # Apache-2.0 kubernetes>=1.0.0 # Apache-2.0 kuryr-lib>=0.5.0 # Apache-2.0 packaging>=16.5 # Apache-2.0 -pylev>=1.3.0 # BSD -pypowervm>=1.1.7 # Apache-2.0 +pylev>=1.3.0 # BSD +pypowervm>=1.1.7 # Apache-2.0 pyScss>=1.3.4,!=1.3.5 # MIT License django-pyscss>=2.0.2 # BSD License (2 clause) kombu>=4.0.0,!=4.0.2 # BSD ldap3>=1.0.2 # LGPLv3 deprecation>=1.0 # Apache-2.0 -libvirt-python>=3.5.0 # LGPLv2+ +libvirt-python>=3.5.0 # LGPLv2+ lxml>=3.4.1,!=3.7.0 # BSD Mako>=0.4.0 # MIT marathon>=0.8.6,!=0.9.1 # MIT @@ -112,7 +112,7 @@ mistral-lib>=0.3.0 # Apache-2.0 mitmproxy>=1.0.2;python_version>'3.0' # MIT monasca-common>=1.4.0 # Apache-2.0 monasca-statsd>=1.1.0 # Apache-2.0 -monotonic>=0.6 # Apache-2.0 +monotonic>=0.6 # Apache-2.0 msgpack-python>=0.4.0 # Apache-2.0 munch>=2.1.0 # MIT murano-pkg-check>=0.3.0 # Apache-2.0 @@ -120,7 +120,7 @@ mypy>=0.501;python_version>='3.2' # MIT ndg-httpsclient>=0.4.2;python_version<'3.0' # BSD netaddr>=0.7.18 # BSD netifaces>=0.10.4 # MIT -netmiko>=1.2.5 # MIT +netmiko>=1.2.5 # MIT # Pinned to 1.0 branch until projects update, see: # https://bugs.launchpad.net/openstack-requirements/+bug/1718576 networkx>=1.10,<2.0 # BSD @@ -133,24 +133,24 @@ ordereddict>=1.1 # MIT osc-lib>=1.7.0 # Apache-2.0 oslo.cache>=1.26.0 # Apache-2.0 oslo.config>=4.6.0 # Apache-2.0 -oslo.concurrency>=3.20.0 # Apache-2.0 +oslo.concurrency>=3.20.0 # Apache-2.0 oslo.context>=2.14.0,!=2.19.1 # Apache-2.0 oslo.db>=4.27.0 # Apache-2.0 oslo.i18n>=3.15.3 # Apache-2.0 oslo.log>=3.30.0 # Apache-2.0 -oslo.messaging>=5.29.0 # Apache-2.0 -oslo.middleware>=3.31.0 # Apache-2.0 +oslo.messaging>=5.29.0 # Apache-2.0 +oslo.middleware>=3.31.0 # Apache-2.0 oslo.policy>=1.23.0 # Apache-2.0 oslo.privsep>=1.23.0 # Apache-2.0 oslo.reports>=1.18.0 # Apache-2.0 oslo.rootwrap>=5.8.0 # Apache-2.0 # NOTE(mriedem): oslo.serialization 2.19.1 is blocked for bug 1593641 -oslo.serialization>=2.18.0,!=2.19.1 # Apache-2.0 -oslo.service>=1.24.0 # Apache-2.0 -oslo.utils>=3.28.0 # Apache-2.0 -oslo.vmware>=2.17.0 # Apache-2.0 -oslo.versionedobjects>=1.28.0 # Apache-2.0 -osprofiler>=1.4.0 # Apache-2.0 +oslo.serialization>=2.18.0,!=2.19.1 # Apache-2.0 +oslo.service>=1.24.0 # Apache-2.0 +oslo.utils>=3.28.0 # Apache-2.0 +oslo.vmware>=2.17.0 # Apache-2.0 +oslo.versionedobjects>=1.28.0 # Apache-2.0 +osprofiler>=1.4.0 # Apache-2.0 os-apply-config>=0.1.31 # Apache-2.0 os-brick>=1.15.2 # Apache-2.0 os-client-config>=1.28.0 # Apache-2.0 @@ -161,11 +161,11 @@ os-refresh-config>=0.1.10 # Apache-2.0 os-service-types>=1.1.0 # Apache-2.0 os-testr>=1.0.0 # Apache-2.0 os-traits>=0.3.2 # Apache-2.0 -os-vif>=1.7.0 # Apache-2.0 -ovs>=2.7.0 # Apache-2.0 -os-win>=2.0.0 # Apache-2.0 +os-vif>=1.7.0 # Apache-2.0 +ovs>=2.7.0 # Apache-2.0 +os-win>=2.0.0 # Apache-2.0 os-xenapi>=0.3.1 # Apache-2.0 -paramiko>=2.0.0 # LGPLv2.1+ +paramiko>=2.0.0 # LGPLv2.1+ Parsley>=1.2 # MIT pathlib2>=2.1.0 # MIT passlib>=1.7.0 # BSD @@ -174,7 +174,7 @@ PasteDeploy>=1.5.0 # MIT paunch>=1.0.0 # Apache-2.0 pbr>=2.0.0,!=2.1.0 # Apache-2.0 pecan>=1.0.0,!=1.0.2,!=1.0.3,!=1.0.4,!=1.2 # BSD -pexpect>=3.1,!=3.3 # ISC License +pexpect>=3.1,!=3.3 # ISC License pifpaf>=0.10.0 # Apache-2.0 pika>=0.10.0 # BSD pika-pool>=0.1.3 # BSD @@ -187,25 +187,25 @@ pyasn1>=0.1.8,!=0.2.3 # BSD pyasn1-modules>=0.0.6 # BSD pycadf>=1.1.0,!=2.0.0 # Apache-2.0 pycrypto>=2.6 # Public Domain -PyECLib>=1.3.1 # BSD +PyECLib>=1.3.1 # BSD pyghmi>=1.0.22 # Apache-2.0 -pyinotify>=0.9.6;sys_platform!='win32' and sys_platform!='darwin' and sys_platform!='sunos5' # MIT +pyinotify>=0.9.6;sys_platform!='win32' and sys_platform!='darwin' and sys_platform!='sunos5' # MIT PyJWT>=1.0.1 # MIT -pykafka>=2.5.0 # Apache 2.0 License +pykafka>=2.5.0 # Apache 2.0 License pykmip>=0.5.0 # Apache 2.0 License -pyldap>=2.4.20 # PSF +pyldap>=2.4.20 # PSF pylxd>=2.2.2 # Apache-2.0 pymemcache>=1.2.9,!=1.3.0 # Apache 2.0 License pymod2pkg>=0.7.0,!=0.8.0 # Apache-2.0 pymongo>=3.0.2,!=3.1 # Apache-2.0 PyMySQL>=0.7.6 # MIT License python-etcd>=0.4.3 # MIT License -etcd3>=0.5.2 # Apache-2.0 -etcd3gw>=0.2.0 # Apache-2.0 +etcd3>=0.5.2 # Apache-2.0 +etcd3gw>=0.2.0 # Apache-2.0 typing>=3.5.2.2 # PSF voluptuous>=0.8.9 # BSD License pydot3>=1.0.8 # MIT License -pydotplus>=2.0.2 # MIT License +pydotplus>=2.0.2 # MIT License crc16>=0.1.1 # LGPLv3+ pyzabbix>=0.7.4 # LGPL statsd>=3.2.1 # MIT @@ -215,7 +215,7 @@ weakrefmethod>=1.0.2;python_version=='2.7' # PSF # uuid-dev and swig pyngus>=2.2.0 # Apache-2.0 -pyOpenSSL>=16.2.0 # Apache-2.0 +pyOpenSSL>=16.2.0 # Apache-2.0 pyparsing>=2.1.0 # MIT pyroute2>=0.4.21;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) pysnmp>=4.2.3 # BSD @@ -232,13 +232,13 @@ pysaml2>=4.0.2,<4.0.3 # Apache-2.0 # as that has implications for testing in the gate. aodhclient>=0.9.0 # Apache-2.0 gnocchiclient>=3.3.1 # Apache-2.0 -tricircleclient>=0.1.1 # Apache-2.0 +tricircleclient>=0.1.1 # Apache-2.0 python-barbicanclient>=4.0.0,!=4.5.0,!=4.5.1 # Apache-2.0 python-ceilometerclient>=2.5.0 # Apache-2.0 python-cinderclient>=3.2.0 # Apache-2.0 python-congressclient>=1.3.0,<2000 # Apache-2.0 python-designateclient>=2.7.0 # Apache-2.0 -python-freezerclient>=1.3.0 # Apache-2.0 +python-freezerclient>=1.3.0 # Apache-2.0 python-heatclient>=1.10.0 # Apache-2.0 python-hnvclient>=0.1.0 # Apache-2.0 python-glanceclient>=2.8.0 # Apache-2.0 @@ -247,20 +247,20 @@ python-ironic-inspector-client>=1.5.0 # Apache-2.0 python-ironicclient>=1.14.0 # Apache-2.0 python-karborclient>=0.6.0 # Apache-2.0 python-keystoneclient>=3.8.0 # Apache-2.0 -python-kingbirdclient>=0.1.0 # Apache-2.0 +python-kingbirdclient>=0.1.0 # Apache-2.0 python-magnumclient>=2.0.0 # Apache-2.0 python-masakariclient>=3.0.1 # Apache-2.0 python-manilaclient>=1.16.0 # Apache-2.0 python-mistralclient>=3.1.0 # Apache-2.0 python-muranoclient>=0.8.2 # Apache-2.0 -python-monascaclient>=1.7.0 # Apache-2.0 +python-monascaclient>=1.7.0 # Apache-2.0 python-neutronclient>=6.3.0 # Apache-2.0 python-novaclient>=9.1.0 # Apache-2.0 python-octaviaclient>=1.0.0 # Apache-2.0 python-openstackclient>=3.12.0 # Apache-2.0 -python-rsdclient>=0.1.0 # Apache-2.0 +python-rsdclient>=0.1.0 # Apache-2.0 python-saharaclient>=1.2.0 # Apache-2.0 -python-searchlightclient>=1.0.0 #Apache-2.0 +python-searchlightclient>=1.0.0 #Apache-2.0 python-senlinclient>=1.1.0 # Apache-2.0 python-smaugclient>=0.0.5 # Apache-2.0 python-solumclient>=1.2.7 # Apache-2.0 @@ -282,14 +282,14 @@ PyYAML>=3.10 # MIT qpid-python>=0.26;python_version=='2.7' # Apache-2.0 reno>=2.5.0 # Apache-2.0 requests>=2.14.2 # Apache-2.0 -requests-aws>=0.1.4 # BSD License (3 clause) +requests-aws>=0.1.4 # BSD License (3 clause) requests-kerberos>=0.6 # ISC requestsexceptions>=1.2.0 # Apache-2.0 rfc3986>=0.3.1 # Apache-2.0 Routes>=2.3.1 # MIT rtslib-fb>=2.1.43,!=2.1.60,!=2.1.61 # Apache-2.0 -ryu>=4.14 # Apache-2.0 -semantic_version>=2.3.1 # BSD +ryu>=4.14 # Apache-2.0 +semantic-version>=2.3.1 # BSD fasteners>=0.7.0 # Apache-2.0 scrypt>=0.8.0 # BSD simplejson>=3.5.1 # MIT @@ -303,26 +303,26 @@ scikit-learn>=0.17.1 # BSD SQLAlchemy>=1.0.10,!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8 # MIT SQLAlchemy-Utils>=0.30.11 # BSD License sqlalchemy-migrate>=0.11.0 # Apache-2.0 -sqlparse>=0.2.2 # BSD +sqlparse>=0.2.2 # BSD stevedore>=1.20.0 # Apache-2.0 systemd-python>=234 # LGPLv2+ -sysv_ipc>=0.6.8 # BSD License +sysv-ipc>=0.6.8 # BSD License suds-jurko>=0.6 # LGPLv3+ sympy>=0.7.6 # BSD taskflow>=2.7.0 # Apache-2.0 tempest>=16.1.0 # Apache-2.0 tempest-lib>=1.0.0 # Apache-2.0 -tooz>=1.58.0 # Apache-2.0 +tooz>=1.58.0 # Apache-2.0 tosca-parser>=0.8.1 # Apache-2.0 tripleo-common>=7.1.0 # Apache-2.0 urllib3>=1.21.1 # MIT -unicodecsv>=0.8.0;python_version<'3.0' # BSD +unicodecsv>=0.8.0;python_version<'3.0' # BSD warlock>=1.2.0,!=1.3.0,<2 # Apache-2.0 WebOb>=1.7.1 # MIT -websocket-client>=0.33.0 # LGPLv2+ +websocket-client>=0.33.0 # LGPLv2+ websockify>=0.8.0 # LGPLv3 wheel>=0.24.0 # MIT -PyMI>=1.0.0;sys_platform=='win32' # Apache 2.0 License +PyMI>=1.0.0;sys_platform=='win32' # Apache 2.0 License wmi>=0.5;sys_platform=='win32' # MIT WSME>=0.8.0 # MIT xattr>=0.9.2 # MIT @@ -330,13 +330,13 @@ XenAPI>=1.2 # LGPL XStatic>=1.0.0 # MIT License XStatic-Angular>=1.5.8.0 # MIT License XStatic-Angular-Bootstrap>=2.2.0.0 # MIT License -XStatic-Angular-Gettext>=2.3.8.0 # MIT License +XStatic-Angular-Gettext>=2.3.8.0 # MIT License XStatic-Angular-lrdragndrop>=1.0.2.2 # MIT License -XStatic-Angular-Schema-Form>=0.8.13.0 # MIT +XStatic-Angular-Schema-Form>=0.8.13.0 # MIT XStatic-angular-ui-router>=0.3.1.2 # MIT XStatic-Bootstrap-Datepicker>=1.3.1.0 # Apache 2.0 License XStatic-Bootstrap-SCSS>=3.3.7.1 # Apache 2.0 License -XStatic-bootswatch>=3.3.7.0 # MIT License +XStatic-bootswatch>=3.3.7.0 # MIT License XStatic-D3>=3.5.17.0 # BSD License (3 clause) XStatic-Font-Awesome>=4.7.0.0 # SIL OFL 1.1 License, MIT License XStatic-Hogan>=2.0.0.2 # Apache 2.0 License @@ -348,23 +348,23 @@ XStatic-JQuery.TableSorter>=2.14.5.1 # MIT License XStatic-jquery-ui>=1.10.4.1 # MIT License XStatic-JSEncrypt>=2.3.1.1 # MIT License XStatic-Magic-Search>=0.2.5.1 # Apache 2.0 License -XStatic-mdi>=1.4.57.0 # SIL OPEN FONT LICENSE Version 1.1 -XStatic-objectpath>=1.2.1.0 # MIT +XStatic-mdi>=1.4.57.0 # SIL OPEN FONT LICENSE Version 1.1 +XStatic-objectpath>=1.2.1.0 # MIT XStatic-Rickshaw>=1.5.0.0 # BSD License (prior) -XStatic-roboto-fontface>=0.5.0.0 # Apache 2.0 License +XStatic-roboto-fontface>=0.5.0.0 # Apache 2.0 License XStatic-smart-table>=1.4.13.2 # MIT License XStatic-Spin>=1.2.5.2 # MIT License -XStatic-term.js>=0.0.7.0 # MIT License -XStatic-tv4>=1.2.7.0 # MIT +XStatic-term.js>=0.0.7.0 # MIT License +XStatic-tv4>=1.2.7.0 # MIT XStatic-Angular-FileUpload>=12.0.4.0 # MIT License yaql>=1.1.3 # Apache 2.0 License zhmcclient>=0.9.0 # Apache 2.0 License # Testing tools below, which are typically in test-requires.txt -bashate>=0.5.1 # Apache-2.0 +bashate>=0.5.1 # Apache-2.0 cliff-tablib>=1.0 # Apache-2.0 -couchdb>=0.8 # Apache-2.0 +couchdb>=0.8 # Apache-2.0 coverage>=4.0,!=4.4 # Apache-2.0 demjson>=2.2.2 # GLGPLv3+ docker>=2.4.2 # Apache-2.0 @@ -375,7 +375,7 @@ freezegun>=0.3.6 # Apache-2.0 gabbi>=1.35.0 # Apache-2.0 kafka-python>=1.3.1 # Apache-2.0 keyring>=5.5.1 # MIT/PSF -ldappool>=2.0.0 # MPL +ldappool>=2.0.0 # MPL # Do not make mock conditional on Python version: we depend on newer code than # in [most] releases of the Python std library. mock>=2.0.0 # BSD @@ -388,25 +388,25 @@ nose-exclude>=0.3.0 # LGPL nosehtmloutput>=0.0.3 # Apache-2.0 nosexcover>=1.0.10 # BSD openstack-doc-tools>=1.5.0 # Apache-2.0 -openstack.nose_plugin>=0.7 # Apache-2.0 +openstack.nose-plugin>=0.7 # Apache-2.0 openstacksdk>=0.9.18 # Apache-2.0 os-api-ref>=1.4.0 # Apache-2.0 oslosphinx>=4.7.0 # Apache-2.0 oslotest>=1.10.0 # Apache-2.0 -ovsdbapp>=0.6.0 # Apache-2.0 +ovsdbapp>=0.6.0 # Apache-2.0 proboscis>=1.2.5.3 # Apache-2.0 psycopg2>=2.6.2 # LGPL/ZPL pysendfile>=2.0.0 # MIT python-consul>=0.4.7 # MIT License python-subunit>=0.0.18 # Apache-2.0/BSD -python-pytun>=2.2.1 # MIT -pyzmq>=14.3.1 # LGPL+BSD +python-pytun>=2.2.1 # MIT +pyzmq>=14.3.1 # LGPL+BSD redis>=2.10.0 # MIT hiredis>=0.2.0 # BSD requests-mock>=1.1.0 # Apache-2.0 tenacity>=3.2.1 # Apache-2.0 -retrying>=1.2.3,!=1.3.0 # Apache-2.0 -spec_cleaner>=0.8.2,!=0.9.3 # BSD +retrying>=1.2.3,!=1.3.0 # Apache-2.0 +spec-cleaner>=0.8.2,!=0.9.3 # BSD selenium>=2.50.1 # Apache-2.0 # While setuptools cannot deal with pre-installed incompatible versions, # setting a lower bound is not harmful - it makes error messages cleaner. DO @@ -425,7 +425,7 @@ sphinxcontrib-seqdiag>=0.8.4 # BSD sphinxcontrib-pecanwsme>=0.8.0 # Apache-2.0 sphinxcontrib-fulltoc>=1.2.0 # Apache-2.0 sphinxmark>=0.1.14 # Apache-2.0 -stestr>=1.0.0 # Apache-2.0 +stestr>=1.0.0 # Apache-2.0 sushy>=0.1.0 # Apache-2.0 testrepository>=0.0.18 # Apache-2.0/BSD testresources>=2.0.0 # Apache-2.0/BSD @@ -434,19 +434,19 @@ testtools>=1.4.0 # MIT trollius>=1.0 # Apache-2.0 ujson>=1.35 # BSD unittest2>=1.1.0 # BSD -virtualbmc>=1.0.0 # Apache-2.0 +virtualbmc>=1.0.0 # Apache-2.0 virtualenv>=13.1.0 # MIT -wrapt>=1.7.0 # BSD License +wrapt>=1.7.0 # BSD License WebTest>=2.0.27 # MIT Werkzeug>=0.7 # BSD License whereto>=0.3.0 # Apache-2.0 xmltodict>=0.10.1 # MIT -wsgi_intercept>=1.4.1 # MIT License -xvfbwrapper>=0.1.3 #license: MIT -zake>=0.1.6 # Apache-2.0 -zuul-sphinx>=0.1.2 # Apache-2.0 -shade>=1.17.0 # Apache-2.0 -sadisplay>=0.4.8 # BSD +wsgi-intercept>=1.4.1 # MIT License +xvfbwrapper>=0.1.3 #license: MIT +zake>=0.1.6 # Apache-2.0 +zuul-sphinx>=0.1.2 # Apache-2.0 +shade>=1.17.0 # Apache-2.0 +sadisplay>=0.4.8 # BSD # Indirect dependencies that need blocking daiquiri>=1.2.1 diff --git a/openstack_requirements/cmds/validate.py b/openstack_requirements/cmds/validate.py index 92c4fb56a9..6ea27e305b 100644 --- a/openstack_requirements/cmds/validate.py +++ b/openstack_requirements/cmds/validate.py @@ -67,6 +67,18 @@ def main(): print(msg) error_count += 1 + # Check that global requirements are uniformly formatted + print('\nValidating uniform formatting on %s' % args.global_requirements) + with open(args.global_requirements, 'rt') as f: + for line in f: + if line == '\n': + continue + req = requirement.parse_line(line) + normed_req = req.to_line(comment_prefix=' ', sort_specifiers=True) + if line.rstrip() != normed_req.rstrip(): + print("-%s\n+%s" % (line.rstrip(), normed_req.rstrip())) + error_count += 1 + # Check that all of the items in the global-requirements list # appear in exactly one of the constraints file or the blacklist. print('\nChecking %s' % args.blacklist)