Group requirements into sections and sort

We add the script used to do this. This script will grow in complexity
in future changes as we add logic to e.g. remove old version constraints
that are no longer necessary. There's probably more sorting to be done
here, but that can always be tacked on with a follow-up.

Psst, reviewers: you can ensure we haven't lost/gained any dependencies
with this little script:

  #!/usr/bin/env python3
  import pathlib
  import subprocess
  import sys

  previous = subprocess.check_output(
      ['git', 'show', 'HEAD~:global-requirements.txt']
  ).decode(sys.stdout.encoding)
  current = pathlib.Path('global-requirements.txt').read_text()

  assert sorted(
      x for x in previous.split('\n') if x and not x.startswith('#')
  ) == sorted(
      x for x in current.split('\n') if x and not x.startswith('#')
  )

We haven't checked _this_ in since it's trivial and not broadly useful
here.

Change-Id: If836960167fe66534034a8a512ea63553649c3ff
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
Stephen Finucane 2024-04-17 12:04:00 +01:00
parent 07d44b297b
commit 258e59dd69
2 changed files with 439 additions and 330 deletions

View File

@ -1,3 +1,5 @@
## section:general
alembic!=1.2.0,!=1.6.3 # MIT alembic!=1.2.0,!=1.6.3 # MIT
amqp!=2.1.4,!=5.0.4 # BSD amqp!=2.1.4,!=5.0.4 # BSD
ansible-runner!=1.3.5 # Apache 2.0 ansible-runner!=1.3.5 # Apache 2.0
@ -6,42 +8,32 @@ apscheduler # MIT License
autobahn # MIT License autobahn # MIT License
automaton # Apache-2.0 automaton # Apache-2.0
autopage # Apache-2.0 autopage # Apache-2.0
beautifulsoup4 # MIT
Babel!=2.4.0 # BSD Babel!=2.4.0 # BSD
bcrypt # Apache-2.0 bcrypt # Apache-2.0
beautifulsoup4 # MIT
betamax # Apache-2.0 betamax # Apache-2.0
blockdiag!=2.0.0 # Apache-2.0
boto # MIT boto # MIT
boto3 # Apache-2.0 boto3 # Apache-2.0
botocore # Apache-2.0 botocore # Apache-2.0
cassandra-driver!=3.6.0 # Apache-2.0
castellan # Apache-2.0
# ceilometermiddleware might not show up with a search of setup.cfg and
# requirements files, but some projects use it via being installed by devstack
ceilometermiddleware # Apache-2.0
cachetools # MIT License cachetools # MIT License
cassandra-driver!=3.6.0 # Apache-2.0
cffi # MIT cffi # MIT
cliff!=2.9.0,!=2.17.0 # Apache-2.0
cmd2!=0.8.3 # MIT cmd2!=0.8.3 # MIT
confluent-kafka!=1.4.0 # Apache-2.0 confluent-kafka!=1.4.0 # Apache-2.0
confspirator # Apache-2.0 confspirator # Apache-2.0
cotyledon # Apache-2.0
construct # MIT construct # MIT
cotyledon # Apache-2.0
croniter # MIT License croniter # MIT License
cryptography!=2.0 # BSD/Apache-2.0 cryptography!=2.0 # BSD/Apache-2.0
cursive # Apache-2.0 cursive # Apache-2.0
datetimerange # MIT datetimerange # MIT
ddt # MIT
debtcollector # Apache-2.0
decorator # BSD decorator # BSD
defusedxml # PSF defusedxml # PSF
dib-utils # Apache-2.0
diskimage-builder!=1.6.0,!=1.7.0,!=1.7.1 # Apache-2.0
distro # Apache-2.0
Django<4.3 # BSD
django-compressor # MIT django-compressor # MIT
django-debreach # BSD django-debreach # BSD
django-formtools # BSD django-formtools # BSD
django-pyscss # BSD License (2 clause)
Django<4.3 # BSD
# eventlet is not compatibile with 2.0.0: https://github.com/eventlet/eventlet/issues/619 # eventlet is not compatibile with 2.0.0: https://github.com/eventlet/eventlet/issues/619
dnspython!=2.0.0,!=2.2.0 # http://www.dnspython.org/LICENSE dnspython!=2.0.0,!=2.2.0 # http://www.dnspython.org/LICENSE
dogpile.cache!=0.9.1,!=1.1.7 # BSD dogpile.cache!=0.9.1,!=1.1.7 # BSD
@ -54,19 +46,16 @@ enmerkar # BSD
# as they have earned a reputation of frequently breaking things. # as they have earned a reputation of frequently breaking things.
eventlet!=0.18.3,!=0.20.1,!=0.21.0,!=0.23.0,!=0.25.0,!=0.32.0,!=0.34.1,!=0.34.2,!=0.34.3,!=0.35.0,!=0.36.0 # MIT eventlet!=0.18.3,!=0.20.1,!=0.21.0,!=0.23.0,!=0.25.0,!=0.32.0,!=0.34.1,!=0.34.2,!=0.34.3,!=0.35.0,!=0.36.0 # MIT
exabgp!=4.0.6 # BSD exabgp!=4.0.6 # BSD
extras # MIT
falcon # Apache-2.0 falcon # Apache-2.0
# https://github.com/harlowja/fasteners/issues/36
fasteners!=0.15,!=0.16 # Apache-2.0
Flask!=0.11 # BSD Flask!=0.11 # BSD
Flask-RESTful # BSD Flask-RESTful # BSD
futurist # Apache-2.0 GitPython # BSD License (3 clause)
glance-store!=0.29.0 # Apache-2.0
google-api-python-client # Apache-2.0 google-api-python-client # Apache-2.0
graphviz!=0.5.0 # MIT License graphviz!=0.5.0 # MIT License
greenlet!=0.4.14 # MIT greenlet!=0.4.14 # MIT
GitPython # BSD License (3 clause)
gunicorn # MIT gunicorn # MIT
heat-translator # Apache-2.0
horizon # Apache-2.0
httplib2 # MIT httplib2 # MIT
httpx # BSD httpx # BSD
hvac # Apache-2.0 hvac # Apache-2.0
@ -78,61 +67,311 @@ infinisdk # BSD-3
influxdb!=5.3.0 # MIT influxdb!=5.3.0 # MIT
influxdb-client # MIT influxdb-client # MIT
infoblox-client # Apache-2.0 infoblox-client # Apache-2.0
ironic-lib!=4.6.0 # Apache-2.0
iso8601 # MIT iso8601 # MIT
jira # BSD License (2 clause) jaeger-client # Apache-2.0
Jinja2 # BSD License (3 clause) Jinja2 # BSD License (3 clause)
jira # BSD License (2 clause)
jmespath # MIT jmespath # MIT
jsonpatch!=1.20 # BSD jsonpatch!=1.20 # BSD
jsonpath-rw # Apache-2.0
jsonpath-rw-ext # Apache-2.0
jsonschema # MIT jsonschema # MIT
kazoo # Apache-2.0 kazoo # Apache-2.0
keystoneauth1 # Apache-2.0
keystonemiddleware # Apache-2.0
krest # Apache-2.0
kubernetes # Apache-2.0
kuryr-lib # Apache-2.0
packaging!=20.5,!=20.6,!=20.7 # Apache-2.0
pyScss!=1.3.5 # MIT License
django-pyscss # BSD License (2 clause)
kombu!=4.0.2 # BSD kombu!=4.0.2 # BSD
kubernetes # Apache-2.0
ldap3 # LGPLv3 ldap3 # LGPLv3
libvirt-python!=4.1.0,!=4.2.0 # LGPLv2+ libvirt-python!=4.1.0,!=4.2.0 # LGPLv2+
lxml!=3.7.0 # BSD lxml!=3.7.0 # BSD
Mako # MIT Mako # MIT
msgpack # Apache-2.0
munch # MIT
ncclient # Apache-2.0
netaddr # BSD
netifaces!=0.10.0,!=0.10.1 # MIT
netmiko # MIT
networkx!=2.8.4 # BSD
oauthlib # BSD
opentelemetry-exporter-otlp # Apache-2.0
opentelemetry-sdk # Apache-2.0
ovs # Apache-2.0
packaging!=20.5,!=20.6,!=20.7 # Apache-2.0
paramiko!=2.9.0,!=2.9.1 # LGPLv2.1+
passlib # BSD
Paste # MIT
PasteDeploy # MIT
pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,!=1.4.0 # BSD
pexpect!=3.3 # ISC License
pika # BSD
Pillow # PIL License
Pint # BSD
platformdirs # MIT License
PrettyTable!=3.4.0 # BSD
prometheus-client # Apache-2.0
protobuf # BSD License (3 clause)
psutil # BSD
pyasn1!=0.2.3 # BSD
pyasn1-lextudio # BSD
pyasn1-modules # BSD
pyasn1-modules-lextudio # BSD
pycadf!=2.0.0 # Apache-2.0
pycdlib # LGPLv2+
PyECLib # BSD
pyghmi!=1.4.0,!=1.5.11 # Apache-2.0
PyJWT # MIT
pykmip # Apache 2.0 License
pylxd # Apache-2.0
pymemcache!=1.3.0 # Apache 2.0 License
PyMI;sys_platform=='win32' # Apache 2.0 License
pymongo!=3.1 # Apache-2.0
PyMySQL # MIT License
pyngus # Apache-2.0
pyOpenSSL # Apache-2.0
pyparsing # MIT
pyroute2!=0.5.4,!=0.5.5,!=0.7.1;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2)
pysaml2!=4.0.3,!=4.0.4,!=4.0.5,!=4.0.5rc1,!=4.1.0,!=4.2.0,!=4.3.0,!=4.4.0,!=4.6.0 # Apache-2.0
pyScss!=1.3.5 # MIT License
pysnmp-lextudio # BSD
pystache # MIT
# Only required for sasl/binary protocol
python-binary-memcached # MIT
python-dateutil # BSD
python-gnupg # BSD License
python-ldap # PSF
python-memcached # PSF
pytz # MIT
pyudev # LGPLv2.1+
pywinrm # MIT
PyYAML # MIT
pyzabbix # LGPL
rbd-iscsi-client # Apache-2.0
requests!=2.20.0,!=2.24.0 # Apache-2.0
requests-aws # BSD License (3 clause)
requests-kerberos # ISC
requestsexceptions # Apache-2.0
rfc3986 # Apache-2.0
Routes # MIT
rtslib-fb # Apache-2.0
ruamel.yaml # MIT
salt!=2019.2.1,!=2019.2.2 # Apache-2.0
scikit-learn # BSD
scipy # BSD
# https://github.com/holgern/py-scrypt/issues/16
scrypt!=0.8.21 # BSD
semantic-version # BSD
setproctitle # BSD
# NOTE(yamahata):
# bug work around of sqlalchemy
# https://bitbucket.org/zzzeek/sqlalchemy/issues/3952/
# The fix which is in git master branch is planned for 1.1.9
SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8 # MIT
sqlalchemy-filters # Apache-2.0
sqlalchemy-migrate # Apache-2.0
SQLAlchemy-Utils # BSD License
sqlparse # BSD
sshtunnel # MIT
statsd # MIT
suds-community # LGPLv3+
sympy # BSD
systemd-python # LGPLv2+
sysv-ipc # BSD License
uhashring # BSD
urllib3 # MIT
voluptuous # BSD License
warlock # Apache-2.0
WebOb # MIT
websocket-client # LGPLv2+
websockify # LGPLv3
wmi;sys_platform=='win32' # MIT
xattr;sys_platform!='win32' # MIT
XStatic # MIT License
XStatic-Angular # MIT License
XStatic-Angular-Bootstrap # MIT License
XStatic-Angular-FileUpload # MIT License
XStatic-Angular-Gettext # MIT License
XStatic-Angular-lrdragndrop # MIT License
XStatic-Angular-Schema-Form # MIT
xstatic-angular-uuid # MIT License
xstatic-angular-vis # MIT License
XStatic-Bootstrap-Datepicker # Apache 2.0 License
XStatic-Bootstrap-SCSS # Apache 2.0 License
XStatic-bootswatch # MIT License
XStatic-D3 # BSD License (3 clause)
XStatic-Dagre # MIT License
XStatic-Dagre-D3 # MIT License
xstatic-filesaver # MIT License
XStatic-Font-Awesome<4.8.0 # SIL OFL 1.1 License, MIT License
XStatic-Graphlib # MIT License
XStatic-Hogan # Apache 2.0 License
XStatic-Jasmine # MIT License
XStatic-jQuery # MIT License
XStatic-JQuery-Migrate # MIT License
XStatic-jquery-ui # MIT License
XStatic-JQuery.quicksearch # MIT License
XStatic-JQuery.TableSorter # MIT License
xstatic-js-yaml # MIT License
XStatic-JSEncrypt # MIT License
xstatic-json2yaml # MIT License
XStatic-lodash # MIT License
XStatic-mdi # SIL OPEN FONT LICENSE Version 1.1
XStatic-moment # MIT License
XStatic-Moment-Timezone # MIT License
XStatic-objectpath # MIT
XStatic-Rickshaw # BSD License (prior)
XStatic-roboto-fontface # Apache 2.0 License
XStatic-smart-table # MIT License
XStatic-Spin # MIT License
XStatic-term.js # MIT License
XStatic-tv4 # MIT
# NOTE(anilvenkata): This is required for profiling oslo.service processes
Yappi!=0.98,!=0.99 # MIT
zeroconf # LGPL
zipp # MIT
zstd # BSD License (2 clause)
zVMCloudConnector;sys_platform!='win32' # Apache 2.0 License
## section:testing
bashate # Apache-2.0
coverage!=4.4 # Apache-2.0
ddt # MIT
django-nose # BSD
docker # Apache-2.0
fixtures # Apache-2.0/BSD
freezegun # Apache-2.0
# The following issue with urllib3 should be fixed to use gabbi 2.5.0.
# https://github.com/urllib3/urllib3/issues/2534
# Also see https://github.com/cdent/gabbi/issues/309
gabbi<2.5.0 # Apache-2.0
keyring # MIT/PSF
ldappool # MPL
# Do not make mock conditional on Python version: we depend on newer code than
# in [most] releases of the Python std library.
# https://github.com/testing-cabal/mock/issues/487 for 4.0.[0-1] blacklist
mock!=4.0.0,!=4.0.1 # BSD
moto # Apache-2.0
mypy # MIT
nodeenv # BSD
nose # LGPL
openstack-doc-tools # Apache-2.0
os-testr # Apache-2.0
oslotest # Apache-2.0
ovsdbapp # Apache-2.0
pifpaf # Apache-2.0
psycopg2 # LGPL/ZPL
psycopg2-binary # LGPL/ZPL
py-pure-client # BSD
pysendfile;sys_platform!='win32' # MIT
pytest # MIT
pytest-cov # MIT
pytest-django # BSD (3 clause)
pytest-html #MPL-2.0
pytest-xdist # MIT
python-consul # MIT License
python-subunit # Apache-2.0/BSD
pyzmq # LGPL+BSD
redis!=4.0.0 # MIT
requests-mock # Apache-2.0
retrying!=1.3.0 # Apache-2.0
sadisplay # BSD
selenium<4.0.0 # Apache-2.0
stestr!=2.3.0,!=3.0.0 # Apache-2.0
sushy!=1.9.0 # Apache-2.0
tabulate # MIT
tenacity # Apache-2.0
testrepository # Apache-2.0/BSD
testresources # Apache-2.0/BSD
testscenarios # Apache-2.0/BSD
testtools # MIT
types-paramiko # Apache-2.0
typing # PSF
typing-extensions # PSF
tzdata # MIT
virtualbmc # Apache-2.0
virtualenv!=16.3.0 # MIT
WebTest # MIT
Werkzeug!=2.2.0 # BSD License
whereto # Apache-2.0
wrapt # BSD License
wsgi-intercept # MIT License
xmltodict # MIT
xvfbwrapper #license: MIT
## section:docs
blockdiag!=2.0.0 # Apache-2.0
doc8 # Apache-2.0
pydot # MIT License
pydotplus # MIT License
Pygments # BSD license
rst2txt # BSD
sphinx!=1.6.6,!=1.6.7,!=2.1.0,!=3.0.0,!=3.4.2 # BSD
sphinxcontrib-actdiag # BSD
sphinxcontrib-apidoc # BSD
sphinxcontrib-blockdiag # BSD
sphinxcontrib-httpdomain # BSD
sphinxcontrib-nwdiag # BSD
sphinxcontrib-pecanwsme # Apache-2.0
sphinxcontrib-programoutput # BSD license
sphinxcontrib-seqdiag # BSD
sphinxcontrib-svg2pdfconverter # BSD License
sphinxcontrib.datatemplates # BSD License
## section:openstack-general
##
## Projects under openstack governance (excluding clients and docs, which
## have their own section)
castellan # Apache-2.0
# NOTE(tonyb): Generally adding OpenSatck services isn't allowed but some
# consumers of ceilometer use it like a library so until there is a
# ceilometer-lib (or similar) this is our best option.
ceilometer # Apache-2.0
# ceilometermiddleware might not show up with a search of setup.cfg and
# requirements files, but some projects use it via being installed by devstack
ceilometermiddleware # Apache-2.0
cliff!=2.9.0,!=2.17.0 # Apache-2.0
debtcollector # Apache-2.0
dib-utils # Apache-2.0
diskimage-builder!=1.6.0,!=1.7.0,!=1.7.1 # Apache-2.0
etcd3gw!=0.2.2,!=0.2.3,!=0.2.6 # Apache-2.0
futurist # Apache-2.0
glance-store!=0.29.0 # Apache-2.0
heat-translator # Apache-2.0
horizon # Apache-2.0
ironic-lib!=4.6.0 # Apache-2.0
keystoneauth1 # Apache-2.0
keystonemiddleware # Apache-2.0
kuryr-lib # Apache-2.0
metalsmith # Apache-2.0 metalsmith # Apache-2.0
microversion-parse # Apache-2.0 microversion-parse # Apache-2.0
mistral-lib # Apache-2.0 mistral-lib # Apache-2.0
monasca-common # Apache-2.0 monasca-common # Apache-2.0
monasca-statsd # Apache-2.0 monasca-statsd # Apache-2.0
msgpack # Apache-2.0
munch # MIT
murano-pkg-check # Apache-2.0 murano-pkg-check # Apache-2.0
mypy # MIT
ncclient # Apache-2.0
netaddr # BSD
netifaces!=0.10.0,!=0.10.1 # MIT
netmiko # MIT
networking-bagpipe # Apache-2.0 networking-bagpipe # Apache-2.0
networking-bgpvpn # Apache-2.0 networking-bgpvpn # Apache-2.0
networking-l2gw # Apache-2.0 networking-l2gw # Apache-2.0
networking-odl # Apache-2.0 networking-odl # Apache-2.0
networking-sfc # Apache-2.0 networking-sfc # Apache-2.0
networkx!=2.8.4 # BSD neutron # Apache-2.0
neutron-lib # Apache-2.0
neutron-dynamic-routing # Apache-2.0 neutron-dynamic-routing # Apache-2.0
neutron-fwaas # Apache-2.0 neutron-fwaas # Apache-2.0
neutron # Apache-2.0 neutron-lib # Apache-2.0
oauth2client!=4.0.0 # Apache-2.0
oauthlib # BSD
octavia-lib # Apache-2.0 octavia-lib # Apache-2.0
openstackdocstheme!=2.1.0,!=2.1.1 # Apache-2.0 os-apply-config # Apache-2.0
os-brick!=2.8.0 # Apache-2.0
os-client-config # Apache-2.0
os-collect-config # Apache-2.0
os-ken # Apache-2.0
os-refresh-config # Apache-2.0
os-resource-classes # Apache-2.0
os-service-types # Apache-2.0
os-traits # Apache-2.0
os-vif!=1.8.0,!=1.12.0,!=3.0.0 # Apache-2.0
os-win # Apache-2.0
osc-lib # Apache-2.0 osc-lib # Apache-2.0
osc-placement # Apache-2.0 osc-placement # Apache-2.0
oslo.cache!=1.31.1,!=2.1.0 # Apache-2.0 oslo.cache!=1.31.1,!=2.1.0 # Apache-2.0
oslo.config!=4.3.0,!=4.4.0 # Apache-2.0
oslo.concurrency # Apache-2.0 oslo.concurrency # Apache-2.0
oslo.config!=4.3.0,!=4.4.0 # Apache-2.0
oslo.context # Apache-2.0 oslo.context # Apache-2.0
oslo.db # Apache-2.0 oslo.db # Apache-2.0
oslo.i18n # Apache-2.0 oslo.i18n # Apache-2.0
@ -151,121 +390,45 @@ oslo.service!=1.28.1 # Apache-2.0
oslo.upgradecheck # Apache-2.0 oslo.upgradecheck # Apache-2.0
# NOTE(lajoskatona): oslo.utils version between 3.39.1 and 3.40.1 excluded due to bug 1812922 # NOTE(lajoskatona): oslo.utils version between 3.39.1 and 3.40.1 excluded due to bug 1812922
oslo.utils!=3.39.1,!=3.40.0,!=3.40.1 # Apache-2.0 oslo.utils!=3.39.1,!=3.40.0,!=3.40.1 # Apache-2.0
oslo.vmware # Apache-2.0
oslo.versionedobjects # Apache-2.0 oslo.versionedobjects # Apache-2.0
oslo.vmware # Apache-2.0
osprofiler # Apache-2.0 osprofiler # Apache-2.0
os-apply-config # Apache-2.0
os-brick!=2.8.0 # Apache-2.0
os-client-config # Apache-2.0
os-collect-config # Apache-2.0
os-refresh-config # Apache-2.0
os-resource-classes # Apache-2.0
os-service-types # Apache-2.0
os-testr # Apache-2.0
os-traits # Apache-2.0
os-ken # Apache-2.0
os-vif!=1.8.0,!=1.12.0,!=3.0.0 # Apache-2.0
ovs # Apache-2.0
os-win # Apache-2.0
paramiko!=2.9.0,!=2.9.1 # LGPLv2.1+
passlib # BSD
Paste # MIT
PasteDeploy # MIT
pbr!=2.1.0 # Apache-2.0 pbr!=2.1.0 # Apache-2.0
pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,!=1.4.0 # BSD stevedore!=3.0.0 # Apache-2.0
pexpect!=3.3 # ISC License
pifpaf # Apache-2.0
pika # BSD
Pillow # PIL License
Pint # BSD
pip # MIT
platformdirs # MIT License
prometheus-client # Apache-2.0
protobuf # BSD License (3 clause)
PrettyTable!=3.4.0 # BSD
psutil # BSD
pyasn1!=0.2.3 # BSD
pyasn1-modules # BSD
pycadf!=2.0.0 # Apache-2.0
pycdlib # LGPLv2+
PyECLib # BSD
pyghmi!=1.4.0,!=1.5.11 # Apache-2.0
pyinotify;sys_platform!='win32' and sys_platform!='darwin' and sys_platform!='sunos5' # MIT
PyJWT # MIT
pykmip # Apache 2.0 License
python-gnupg # BSD License
python-ldap # PSF
pylxd # Apache-2.0
pymemcache!=1.3.0 # Apache 2.0 License
pymongo!=3.1 # Apache-2.0
PyMySQL # MIT License
pytest # MIT
pytest-cov # MIT
pytest-django # BSD (3 clause)
pytest-html #MPL-2.0
pytest-xdist # MIT
pywbem # LGPLv2.1+
pywinrm # MIT
salt!=2019.2.1,!=2019.2.2 # Apache-2.0
sshtunnel # MIT
storpool!=5.2.0,!=5.3.0 # Apache-2.0
storpool.spopenstack # Apache-2.0
dfs-sdk # Apache-2.0
tap-as-a-service # Apache-2.0 tap-as-a-service # Apache-2.0
etcd3gw!=0.2.2,!=0.2.3,!=0.2.6 # Apache-2.0 taskflow # Apache-2.0
typing # PSF tempest # Apache-2.0
typing-extensions # PSF tooz # Apache-2.0
voluptuous # BSD License tosca-parser # Apache-2.0
pydot # MIT License WSME # MIT
pydotplus # MIT License yaql # Apache 2.0 License
pyzabbix # LGPL
statsd # MIT
zVMCloudConnector;sys_platform!='win32' # Apache 2.0 License
jaeger-client # Apache-2.0
opentelemetry-exporter-otlp # Apache-2.0
opentelemetry-sdk # Apache-2.0
python-linstor # LGPLv3 ## section:openstack-clients
##
## Clients for openstack services. None of these should have an upper bound
## as that has implications for testing in the gate.
pyngus # Apache-2.0
pyOpenSSL # Apache-2.0
pyparsing # MIT
pyroute2!=0.5.4,!=0.5.5,!=0.7.1;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2)
# pysnmp library is not maintained since 4 years, it is
# not recommended to use it, use its fork pysnmp-lextudio instead
# in conjunction with its dependencies pyasn1-lextudio and
# pyasn1-modules-lextudio
pysnmp # BSD
pysnmp-lextudio # BSD
pyasn1-lextudio # BSD
pyasn1-modules-lextudio # BSD
pystache # MIT
pysaml2!=4.0.3,!=4.0.4,!=4.0.5,!=4.0.5rc1,!=4.1.0,!=4.2.0,!=4.3.0,!=4.4.0,!=4.6.0 # Apache-2.0
# OpenStack clients. None of these should have an upper bound
# as that has implications for testing in the gate.
aodhclient # Apache-2.0 aodhclient # Apache-2.0
gnocchiclient # Apache-2.0 gnocchiclient # Apache-2.0
openstacksdk # Apache-2.0
python-barbicanclient # Apache-2.0 python-barbicanclient # Apache-2.0
python-blazarclient # Apache-2.0 python-blazarclient # Apache-2.0
python-cinderclient!=4.0.0 # Apache-2.0 python-cinderclient!=4.0.0 # Apache-2.0
python-cyborgclient # Apache-2.0
python-cloudkittyclient # Apache-2.0 python-cloudkittyclient # Apache-2.0
python-cyborgclient # Apache-2.0
python-designateclient # Apache-2.0 python-designateclient # Apache-2.0
python-freezerclient # Apache-2.0 python-freezerclient # Apache-2.0
python-heatclient # Apache-2.0
python-glanceclient # Apache-2.0 python-glanceclient # Apache-2.0
python-heatclient # Apache-2.0
python-ironic-inspector-client # Apache-2.0 python-ironic-inspector-client # Apache-2.0
python-ironicclient!=2.5.2,!=2.7.1,!=3.0.0 # Apache-2.0 python-ironicclient!=2.5.2,!=2.7.1,!=3.0.0 # Apache-2.0
python-keystoneclient!=2.1.0 # Apache-2.0 python-keystoneclient!=2.1.0 # Apache-2.0
python-magnumclient # Apache-2.0 python-magnumclient # Apache-2.0
python-masakariclient # Apache-2.0
python-manilaclient # Apache-2.0 python-manilaclient # Apache-2.0
python-masakariclient # Apache-2.0
python-mistralclient!=3.2.0 # Apache-2.0 python-mistralclient!=3.2.0 # Apache-2.0
python-muranoclient # Apache-2.0
python-monascaclient # Apache-2.0 python-monascaclient # Apache-2.0
python-muranoclient # Apache-2.0
python-neutronclient # Apache-2.0 python-neutronclient # Apache-2.0
python-novaclient # Apache-2.0 python-novaclient # Apache-2.0
python-observabilityclient # Apache-2.0 python-observabilityclient # Apache-2.0
@ -282,154 +445,48 @@ python-watcherclient # Apache-2.0
python-zaqarclient # Apache-2.0 python-zaqarclient # Apache-2.0
python-zunclient # Apache-2.0 python-zunclient # Apache-2.0
python-memcached # PSF ## section:openstack-docs
python-dateutil # BSD ##
## Docs-related projects under openstack governance
# Only required for sasl/binary protocol openstackdocstheme!=2.1.0,!=2.1.1 # Apache-2.0
python-binary-memcached # MIT
uhashring # BSD
pytz # MIT
pyudev # LGPLv2.1+
PyYAML # MIT
rbd-iscsi-client # Apache-2.0
reno # Apache-2.0
requests!=2.20.0,!=2.24.0 # Apache-2.0
requests-aws # BSD License (3 clause)
requests-kerberos # ISC
requestsexceptions # Apache-2.0
rfc3986 # Apache-2.0
rsd-lib # Apache-2.0
Routes # MIT
rtslib-fb # Apache-2.0
rst2txt # BSD
ruamel.yaml # MIT
semantic-version # BSD
# https://github.com/harlowja/fasteners/issues/36
fasteners!=0.15,!=0.16 # Apache-2.0
# https://github.com/holgern/py-scrypt/issues/16
scrypt!=0.8.21 # BSD
simplejson # MIT
six # MIT
scipy # BSD
scikit-learn # BSD
setproctitle # BSD
# NOTE(yamahata):
# bug work around of sqlalchemy
# https://bitbucket.org/zzzeek/sqlalchemy/issues/3952/
# The fix which is in git master branch is planned for 1.1.9
SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8 # MIT
SQLAlchemy-Utils # BSD License
sqlalchemy-migrate # Apache-2.0
sqlalchemy-filters # Apache-2.0
sqlparse # BSD
stevedore!=3.0.0 # Apache-2.0
storops # Apache-2.0
systemd-python # LGPLv2+
sysv-ipc # BSD License
suds-community # LGPLv3+
sympy # BSD
taskflow # Apache-2.0
tempest # Apache-2.0
tooz # Apache-2.0
tosca-parser # Apache-2.0
urllib3 # MIT
warlock # Apache-2.0
WebOb # MIT
websocket-client # LGPLv2+
websockify # LGPLv3
wheel # MIT
PyMI;sys_platform=='win32' # Apache 2.0 License
wmi;sys_platform=='win32' # MIT
WSME # MIT
xattr;sys_platform!='win32' # MIT
xstatic-angular-uuid # MIT License
xstatic-angular-vis # MIT License
xstatic-filesaver # MIT License
xstatic-js-yaml # MIT License
xstatic-json2yaml # MIT License
XStatic # MIT License
XStatic-Angular # MIT License
XStatic-Angular-Bootstrap # MIT License
XStatic-Angular-Gettext # MIT License
XStatic-Angular-lrdragndrop # MIT License
XStatic-Angular-Schema-Form # MIT
XStatic-Bootstrap-Datepicker # Apache 2.0 License
XStatic-Bootstrap-SCSS # Apache 2.0 License
XStatic-bootswatch # MIT License
XStatic-D3 # BSD License (3 clause)
XStatic-Dagre # MIT License
XStatic-Dagre-D3 # MIT License
XStatic-Font-Awesome<4.8.0 # SIL OFL 1.1 License, MIT License
XStatic-Graphlib # MIT License
XStatic-Hogan # Apache 2.0 License
XStatic-Jasmine # MIT License
XStatic-jQuery # MIT License
XStatic-JQuery-Migrate # MIT License
XStatic-JQuery.quicksearch # MIT License
XStatic-JQuery.TableSorter # MIT License
XStatic-jquery-ui # MIT License
XStatic-JSEncrypt # MIT License
XStatic-lodash # MIT License
XStatic-mdi # SIL OPEN FONT LICENSE Version 1.1
XStatic-moment # MIT License
XStatic-Moment-Timezone # MIT License
XStatic-objectpath # MIT
XStatic-Rickshaw # BSD License (prior)
XStatic-roboto-fontface # Apache 2.0 License
XStatic-smart-table # MIT License
XStatic-Spin # MIT License
XStatic-term.js # MIT License
XStatic-tv4 # MIT
XStatic-Angular-FileUpload # MIT License
yaql # Apache 2.0 License
zeroconf # LGPL
zstd # BSD License (2 clause)
# Testing tools below, which are typically in test-requires.txt
bashate # Apache-2.0
coverage!=4.4 # Apache-2.0
docker # Apache-2.0
django-nose # BSD
doc8 # Apache-2.0
Pygments # BSD license
fixtures # Apache-2.0/BSD
freezegun # Apache-2.0
# The following issue with urllib3 should be fixed to use gabbi 2.5.0.
# https://github.com/urllib3/urllib3/issues/2534
# Also see https://github.com/cdent/gabbi/issues/309
gabbi<2.5.0 # Apache-2.0
kafka-python # Apache-2.0
keyring # MIT/PSF
ldappool # MPL
# Do not make mock conditional on Python version: we depend on newer code than
# in [most] releases of the Python std library.
# https://github.com/testing-cabal/mock/issues/487 for 4.0.[0-1] blacklist
mock!=4.0.0,!=4.0.1 # BSD
moto # Apache-2.0
nodeenv # BSD
nose # LGPL
openstack-doc-tools # Apache-2.0
openstacksdk # Apache-2.0
os-api-ref # Apache-2.0 os-api-ref # Apache-2.0
oslosphinx # Apache-2.0 oslosphinx # Apache-2.0
oslotest # Apache-2.0 reno # Apache-2.0
ovsdbapp # Apache-2.0 sphinx-feature-classification # Apache-2.0
psycopg2 # LGPL/ZPL zuul-sphinx # Apache-2.0
psycopg2-binary # LGPL/ZPL
## section:openstack-testing
##
## Projects under openstack governance (excluding clients, which have their
## own section)
# NOTE(dhellmann): We need to include this package for testing the
# release jobs that propose constraint updates, even though it is not
# a real requirement of any of our software.
openstack-release-test
## section:cinder-libs
##
## Third party libraries for cinder storage drivers
dfs-sdk # Apache-2.0
distro # Apache-2.0
krest # Apache-2.0
purestorage # BSD purestorage # BSD
py-pure-client # BSD
pysendfile;sys_platform!='win32' # MIT
python-3parclient # Apache-2.0 python-3parclient # Apache-2.0
python-consul # MIT License python-linstor # LGPLv3
python-subunit # Apache-2.0/BSD pywbem # LGPLv2.1+
pyzmq # LGPL+BSD rsd-lib # Apache-2.0
redis!=4.0.0 # MIT storops # Apache-2.0
requests-mock # Apache-2.0 storpool!=5.2.0,!=5.3.0 # Apache-2.0
tenacity # Apache-2.0 storpool.spopenstack # Apache-2.0
retrying!=1.3.0 # Apache-2.0
selenium<4.0.0 # Apache-2.0 ## section:internal
##
## Tooling-related caps and blacklists.
pip # MIT
# While setuptools cannot deal with pre-installed incompatible versions, # While setuptools cannot deal with pre-installed incompatible versions,
# setting a lower bound is not harmful - it makes error messages cleaner. DO # setting a lower bound is not harmful - it makes error messages cleaner. DO
# NOT set an upper bound on setuptools, as that will lead to uninstallable # NOT set an upper bound on setuptools, as that will lead to uninstallable
@ -438,51 +495,24 @@ selenium<4.0.0 # Apache-2.0
# Blacklist setuptools 36.2.0 due to https://github.com/pypa/setuptools/issues/1086 # Blacklist setuptools 36.2.0 due to https://github.com/pypa/setuptools/issues/1086
# Blacklist setuptools 48.0.0, 49.0.0 due to https://github.com/pypa/setuptools/issues/2232 # Blacklist setuptools 48.0.0, 49.0.0 due to https://github.com/pypa/setuptools/issues/2232
setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,!=48.0.0,!=49.0.0 # PSF/ZPL setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,!=48.0.0,!=49.0.0 # PSF/ZPL
sphinx!=1.6.6,!=1.6.7,!=2.1.0,!=3.0.0,!=3.4.2 # BSD wheel # MIT
sphinxcontrib-actdiag # BSD
sphinxcontrib-apidoc # BSD ## section:deprecated
sphinxcontrib-blockdiag # BSD ##
sphinxcontrib-httpdomain # BSD ## Libraries that are no longer supported upstream and which we should
sphinxcontrib-nwdiag # BSD ## work to remove usage of.
sphinxcontrib-seqdiag # BSD
sphinxcontrib-pecanwsme # Apache-2.0 extras # MIT
sphinx-feature-classification # Apache-2.0 jsonpath-rw # Apache-2.0
sphinxcontrib.datatemplates # BSD License jsonpath-rw-ext # Apache-2.0
sphinxcontrib-programoutput # BSD license kafka-python # Apache-2.0
sphinxcontrib-svg2pdfconverter # BSD License oauth2client!=4.0.0 # Apache-2.0
stestr!=2.3.0,!=3.0.0 # Apache-2.0 pyinotify;sys_platform!='win32' and sys_platform!='darwin' and sys_platform!='sunos5' # MIT
sushy!=1.9.0 # Apache-2.0 # pysnmp library is not maintained since 4 years, it is
tabulate # MIT # not recommended to use it, use its fork pysnmp-lextudio instead
testrepository # Apache-2.0/BSD # in conjunction with its dependencies pyasn1-lextudio and
testresources # Apache-2.0/BSD # pyasn1-modules-lextudio
testscenarios # Apache-2.0/BSD pysnmp # BSD
testtools # MIT simplejson # MIT
types-paramiko # Apache-2.0 six # MIT
tzdata # MIT
virtualbmc # Apache-2.0
virtualenv!=16.3.0 # MIT
wrapt # BSD License
WebTest # MIT
Werkzeug!=2.2.0 # BSD License
whereto # Apache-2.0
xmltodict # MIT
wsgi-intercept # MIT License
xvfbwrapper #license: MIT
zake # Apache-2.0 zake # Apache-2.0
zuul-sphinx # Apache-2.0
sadisplay # BSD
# NOTE(tonyb): Generally adding OpenStack services isn't allowed but some
# consumers of ceilometer use it like a library so until there is a
# ceilometer-lib (or similar) this is our best option.
ceilometer # Apache-2.0
# NOTE(dhellmann): We need to include this package for testing the
# release jobs that propose constraint updates, even though it is not
# a real requirement of any of our software.
openstack-release-test
# NOTE(anilvenkata): This is required for profiling oslo.service processes
Yappi!=0.98,!=0.99 # MIT
zipp # MIT

79
tools/lint.py Executable file
View File

@ -0,0 +1,79 @@
#! /usr/bin/env python
# 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.
import os
GLOBAL_REQS = os.path.join(
os.path.dirname(os.path.realpath(__file__)),
'..',
'global-requirements.txt',
)
def sort() -> None:
"""Sort global-requirements, respecting sections."""
section_headers: dict[str, str] = {}
section_deps: dict[str, list[tuple[str, str | None]]] = {}
section: str = ''
deps: list[tuple[str, str | None]] = []
comment: str = ''
with open(GLOBAL_REQS) as fh:
for line in fh.readlines():
if not line.strip():
continue
if line.startswith('## section:'):
if section:
section_deps[section] = sorted(
deps, key=lambda x: x[0].lower()
)
deps = []
section = line.removeprefix('## section:')
section_headers[section] = line
continue
if line.startswith('##'):
section_headers[section] += line
continue
if line.startswith('#'):
comment += line
continue
deps.append((line, comment or None))
comment = ''
section_deps[section] = sorted(
deps, key=lambda x: x[0].lower()
)
with open(GLOBAL_REQS, 'w') as fh:
for i, section in enumerate(section_deps):
if i != 0:
fh.write('\n')
fh.write(section_headers[section])
fh.write('\n')
for dep, dep_comment in section_deps[section]:
if dep_comment:
fh.write(dep_comment)
fh.write(dep)
if __name__ == '__main__':
sort()