From fdea9970c5bbd8f916b0a6a3561bb4307d48149b Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 8 Nov 2017 10:51:59 +1100 Subject: [PATCH] Add a global coinstallable lower-requirements set This is generated from the lower bounds of g-r.txt and to be maintained manually. There is a variant of check-uc called check-lc added that will verify those dependencies to be coinstallable and passing consistency checks. Change-Id: I99ad9f0b1d6c150bee6d6d35f84a74e99ab849b8 --- .zuul.d/jobs.yaml | 11 + .zuul.d/project.yaml | 1 + global-requirements.txt | 10 +- lower-constraints-xfails.txt | 6 + lower-constraints.txt | 539 +++++++++++++++++++++++++++++++++++ tox.ini | 9 +- 6 files changed, 570 insertions(+), 6 deletions(-) create mode 100644 lower-constraints-xfails.txt create mode 100644 lower-constraints.txt diff --git a/.zuul.d/jobs.yaml b/.zuul.d/jobs.yaml index 1866f13917..75a8bc81b6 100644 --- a/.zuul.d/jobs.yaml +++ b/.zuul.d/jobs.yaml @@ -12,6 +12,17 @@ vars: tox_envlist: babel +- job: + name: requirements-tox-py27-check-lc + parent: openstack-tox + description: | + Run test for requirements project. + + Uses tox with the ``py27-check-lc`` environment. + files: ^lower-constraints.*txt$ + vars: + tox_envlist: py27-check-lc + - job: name: requirements-tox-py27-check-uc parent: openstack-tox diff --git a/.zuul.d/project.yaml b/.zuul.d/project.yaml index 1b1055c4a6..0027c12ca8 100644 --- a/.zuul.d/project.yaml +++ b/.zuul.d/project.yaml @@ -15,6 +15,7 @@ - requirements-tox-bindep: branches: ^(?!stable/(newton|ocata|pike)).*$ voting: false + - requirements-tox-py27-check-lc - requirements-tox-py27-check-uc - requirements-tox-py35-check-uc: branches: ^(?!stable/(newton|ocata|pike)).*$ diff --git a/global-requirements.txt b/global-requirements.txt index 0aa7cadd9a..c5e434bae8 100644 --- a/global-requirements.txt +++ b/global-requirements.txt @@ -79,7 +79,7 @@ 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 -ipaddress>=1.0.16;python_version<'3.3' # PSF +ipaddress>=1.0.17;python_version<'3.3' # PSF iso8601>=0.1.11 # MIT Jinja2>=2.8,!=2.9.0,!=2.9.1,!=2.9.2,!=2.9.3,!=2.9.4 # BSD License (3 clause) jmespath>=0.9.0 # MIT @@ -127,7 +127,7 @@ networkx>=1.10,<2.0 # BSD neutron-lib>=1.13.0 # Apache-2.0 notifier>=1.0.3 # Apache-2.0 oauth2client>=1.5.0,!=4.0.0 # Apache-2.0 -oauthlib>=0.6.0 # BSD +oauthlib>=0.6.2 # BSD openstackdocstheme>=1.18.1 # Apache-2.0 ordereddict>=1.1 # MIT osc-lib>=1.8.0 # Apache-2.0 @@ -276,12 +276,12 @@ python-zunclient>=1.0.0 # Apache-2.0 python-magic>=0.4.13 # MIT python-memcached>=1.56 # PSF -python-dateutil>=2.4.2 # BSD +python-dateutil>=2.5.3 # BSD # 2013.6 is the first version of pytz that is PEP 440 compatible. pytz>=2013.6 # MIT pyudev>=0.16.1 # LGPLv2.1+ -PyYAML>=3.10 # MIT +PyYAML>=3.12 # MIT qpid-python>=0.26;python_version=='2.7' # Apache-2.0 raven>=6.0.0 # BSD reno>=2.5.0 # Apache-2.0 @@ -418,7 +418,7 @@ selenium>=2.50.1 # Apache-2.0 # situations as progressive releases of projects are done. # Blacklist setuptools 34.0.0-34.3.2 due to https://github.com/pypa/setuptools/issues/951 # Blacklist setuptools 36.2.0 due to https://github.com/pypa/setuptools/issues/1086 -setuptools>=16.0,!=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 # PSF/ZPL +setuptools>=21.0.0,!=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 # PSF/ZPL sphinx>=1.6.2,!=1.6.6 # BSD sphinx-testing>=0.7.2 # BSD License sphinxcontrib-actdiag>=0.8.5 # BSD diff --git a/lower-constraints-xfails.txt b/lower-constraints-xfails.txt new file mode 100644 index 0000000000..b2753d9791 --- /dev/null +++ b/lower-constraints-xfails.txt @@ -0,0 +1,6 @@ +# Format is +# ==; +pyopenssl==16.2.0;mitmproxy +pyperclip==1.5.27;mitmproxy +pyasn1==0.1.8;mitmproxy +cryptography==1.9;mitmproxy diff --git a/lower-constraints.txt b/lower-constraints.txt new file mode 100644 index 0000000000..7852b04311 --- /dev/null +++ b/lower-constraints.txt @@ -0,0 +1,539 @@ +ntlm-auth===1.0.6 +voluptuous===0.8.9 +chardet===3.0.4 +enum-compat===0.0.2 +rsa===3.4.2 +restructuredtext-lint===1.1.1 +netmiko===1.2.5 +instack-undercloud===7.0.0 +PasteDeploy===1.5.0 +typing===3.5.2.2 +python-saharaclient===1.4.0 +python-hnvclient===0.1.0 +Routes===2.3.1 +rtslib-fb===2.1.43 +smmap===0.9.0 +XStatic-Angular-Bootstrap===2.2.0.0 +paunch===1.0.0 +WebOb===1.7.1 +sphinxcontrib-actdiag===0.8.5 +docopt===0.6.2 +pecan===1.0.0 +ryu===4.14 +os-api-ref===1.4.0 +oslo.concurrency===3.25.0 +websocket-client===0.33.0 +osprofiler===1.4.0 +tabulate===0.8.1 +python-ironic-inspector-client===1.5.0 +lxml===3.4.1 +jdcal===1.3 +python-kingbirdclient===0.1.0 +setproctitle===1.1.10 +pytest===3.2.3 +python-etcd===0.4.3 +raven===6.0.0 +cursive===0.2.1 +oslo.service===1.24.0 +django-appconf===1.0.2 +pykerberos===1.1.14 +certifi===2017.7.27.1 +sphinxcontrib-nwdiag===0.9.5 +requests-aws===0.1.4 +alabaster===0.7.10 +pbr===2.0.0 +munch===2.1.0 +microversion-parse===0.1.2 +Pint===0.5 +oslo.i18n===3.15.3 +jsonpath-rw-ext===1.1.2 +python-mistralclient===3.1.0 +oslo.context===2.19.2 +python-senlinclient===1.1.0 +rcssmin===1.0.6 +pycadf===1.1.0 +grpcio===1.7.0 +pysendfile===2.0.0 +fixtures===3.0.0 +neutron-lib===1.13.0 +pystache===0.5.4 +XStatic-Font-Awesome===4.7.0.0 +nose===1.3.7 +nosehtmloutput===0.0.3 +waitress===1.1.0 +os-refresh-config===6.0.0 +jsbeautifier===1.6.14 +pysnmp===4.2.3 +sphinxcontrib-websupport===1.0.1 +Mako===0.4.0 +XStatic-angular-ui-router===0.3.1.2 +pyScss===1.3.4 +XStatic-jQuery===1.8.2.1 +jsonmodels===2.1.3 +ddt===1.0.1 +ipaddress===1.0.17 +python-freezerclient===1.3.0 +os-xenapi===0.3.1 +python-vitrageclient===2.0.0 +nosexcover===1.0.10 +krest===1.3.1 +psycopg2===2.6.2 +networkx===1.10 +bashate===0.5.1 +XStatic-Angular===1.5.8.0 +pyngus===2.2.0 +Pillow===2.4.0 +zuul-sphinx===0.1.2 +python-mimeparse===1.6.0 +tripleo-common===7.1.0 +Tempita===0.5.2 +ply===3.10 +requests-toolbelt===0.8.0 +simplejson===3.5.1 +suds-jurko===0.6 +python-swiftclient===3.2.0 +pyOpenSSL===16.2.0 +validictory===1.1.1 +monasca-common===1.4.0 +hyperframe===4.0.2 +cssutils===1.0.2 +scipy===0.17.1 +MySQL-python===1.2.5 +rsd-lib===0.1.0 +XStatic-Jasmine===2.4.1.1 +python-glanceclient===2.8.0 +pyinotify===0.9.6 +debtcollector===1.2.0 +requests-unixsocket===0.1.5 +odfpy===1.3.5 +asn1crypto===0.23.0 +croniter===0.3.4 +python-watcherclient===1.1.0 +MarkupSafe===1.0 +pypowervm===1.1.10 +doc8===0.6.0 +pymongo===3.0.2 +sqlparse===0.2.2 +oslotest===3.2.0 +jsonpointer===1.13 +defusedxml===0.5.0 +netaddr===0.7.18 +pyghmi===1.0.22 +sphinxcontrib-blockdiag===1.5.4 +kaitaistruct===0.6 +gnocchiclient===3.3.1 +sphinxcontrib.datatemplates===0.1.0 +jsonpath-rw===1.2.0 +prettytable===0.7.2 +vine===1.1.4 +taskflow===2.16.0 +traceback2===1.4.0 +semantic-version===2.3.1 +wheel===0.24.0 +tablib===0.12.1 +virtualbmc===1.0.0 +deprecation===1.0 +SQLAlchemy===1.0.10 +pyroute2===0.4.21 +google-auth===1.1.1 +kazoo===2.2 +XStatic-roboto-fontface===0.5.0.0 +pyudev===0.16.1 +pykmip===0.7.0 +eventlet===0.18.2 +openstack-doc-tools===1.5.0 +frozendict===1.2 +oslo.messaging===5.29.0 +extras===1.0.0 +PyJWT===1.0.1 +zVMCloudConnector===0.3.2 +et-xmlfile===1.0.1 +paramiko===2.0.0 +ordereddict===1.1 +reno===2.5.0 +unicodecsv===0.8.0 +imagesize===0.7.1 +pathlib===1.0.1 +urllib3===1.21.1 +graphviz===0.4 +PyKMIP===0.6.0 +whereto===0.3.0 +python-subunit===1.0.0 +tornado===4.4.3 +pycparser===2.18 +mock===2.0.0 +PyYAML===3.12 +beautifulsoup4===4.6.0 +os-net-config===7.1.0 +ovs===2.8.0 +cryptography===1.9 +couchdb===0.8 +backports.ssl-match-hostname===3.5.0.1 +openstack-release-test===0.8.0 +pylxd===2.2.4 +pycryptodomex===3.4.7 +anyjson===0.3.3 +requests-mock===1.1.0 +os-apply-config===5.0.0 +oslosphinx===4.7.0 +mox3===0.20.0 +gunicorn===19.0.0 +unittest2===1.1.0 +django-compressor===2.0 +libvirt-python===3.5.0 +python-zunclient===1.0.0 +tzlocal===1.4 +python-novaclient===9.1.0 +bcrypt===3.1.3 +os-client-config===1.28.0 +XStatic-Angular-Gettext===2.3.8.0 +Pygments===2.2.0 +XStatic-Hogan===2.0.0.2 +XStatic-objectpath===1.2.1.0 +python-manilaclient===1.16.0 +requests===2.14.2 +snowballstemmer===1.2.1 +Jinja2===2.8 +XStatic-Bootstrap-SCSS===3.3.7.1 +pyzabbix===0.7.4 +ptyprocess===0.5.2 +amqp===2.1.1 +ruamel.yaml===0.13.14 +websockify===0.8.0 +html2text===2016.9.19 +XStatic-JQuery.quicksearch===2.0.3.1 +mpmath===1.0.0 +XStatic-JQuery-Migrate===1.2.1.1 +appdirs===1.3.0 +tinyrpc===0.6 +Flask-SQLAlchemy===2.0 +daiquiri===1.2.1 +influxdb===2.9.2 +funcparserlib===0.3.6 +passlib===1.7.0 +dib-utils===0.0.8 +xlwt===1.3.0 +cliff===2.8.0 +os-brick===2.2.0 +trollius===1.0 +scp===0.10.2 +xlrd===1.1.0 +python-zaqarclient===1.0.0 +funcsigs===1.0.0 +zhmcclient===0.9.0 +dnspython3===1.12.0 +ldappool===2.0.0 +termcolor===1.1.0 +hpack===3.0.0 +hiredis===0.2.0 +google-api-python-client===1.4.2 +castellan===0.16.0 +oslo.versionedobjects===1.31.2 +webcolors===1.7 +aodhclient===0.9.0 +autobahn===0.10.1 +SQLAlchemy-Utils===0.30.11 +coverage===4.0 +freezegun===0.3.6 +python-pytun===2.2.1 +pyperclip===1.5.27 +cassandra-driver===2.1.4 +mox===0.5.3 +XStatic-Angular-Schema-Form===0.8.13.0 +gabbi===1.35.0 +nwdiag===1.0.4 +XStatic-bootswatch===3.3.7.0 +XStatic-term.js===0.0.7.0 +oslo.log===3.36.0 +nodeenv===0.9.4 +pylev===1.3.0 +python-searchlightclient===1.0.0 +oslo.middleware===3.31.0 +brotlipy===0.6.0 +XStatic-mdi===1.4.57.0 +django-pyscss===2.0.2 +uritemplate===3.0.0 +django-babel===0.5.1 +docutils===0.11 +notifier===1.0.3 +pycrypto===2.6 +ujson===1.35 +selenium===2.50.1 +python-glareclient===0.3.0 +mypy===0.560;python_version=='3.4' +mypy===0.560;python_version=='3.5' +mistral-lib===0.3.0 +dogtag-pki===10.3.5.1 +PyECLib===1.3.1 +sphinxcontrib-seqdiag===0.8.4 +os-win===3.0.0 +pydot3===1.0.8 +retrying===1.2.3 +shade===1.17.0 +pathlib2===2.1.0 +pydotplus===2.0.2 +flask-oslolog===0.1 +stestr===1.0.0 +urwid===1.3.1 +singledispatch===3.4.0.3 +oslo.serialization===2.18.0 +warlock===1.2.0 +exabgp===4.0.4 +sphinxcontrib-httpdomain===1.3.0 +thriftpy===0.3.9 +murano-pkg-check===0.3.0 +oslo.vmware===2.17.0 +sqlalchemy-migrate===0.11.0 +gitdb===0.6.4 +python-monascaclient===1.7.0 +ldap3===1.0.2 +requests-ntlm===1.1.0 +automaton===1.9.0 +argh===0.26.2 +os-service-types===1.2.0 +keyring===5.5.1 +testscenarios===0.4 +sphinxcontrib-pecanwsme===0.8.0 +sadisplay===0.4.8 +enum34===1.0.4 +packaging===16.5 +flask-keystone===0.2 +nose-exclude===0.3.0 +psutil===3.2.2 +py===1.4.34 +txaio===2.8.2 +elasticsearch===2.0.0 +django-nose===1.4.4 +XStatic-JQuery.TableSorter===2.14.5.1 +pifpaf===0.10.0 +pysmi===0.1.4 +blockdiag===1.5.3 +testtools===2.2.0 +Parsley===1.2 +XStatic-tv4===1.2.7.0 +positional===1.2.1 +XStatic-JSEncrypt===2.3.1.1 +python-cinderclient===3.3.0 +keystonemiddleware===4.17.0 +django-formtools===1.0 +python-ceilometerclient===2.5.0 +XStatic-Spin===1.2.5.2 +os-traits===0.4.0 +SecretStorage===2.3.1 +XStatic-Rickshaw===1.5.0.0 +iso8601===0.1.11 +tooz===1.58.0 +linecache2===1.0.0 +oauth2client===1.5.0 +idna===2.6 +python-karborclient===0.6.0 +weakrefmethod===1.0.2 +PuLP===1.4.1 +crc16===0.1.1 +protobuf===3.4.0 +os-dpm===1.0.0 +sushy===0.1.0 +python-neutronclient===6.7.0 +pika===0.10.0 +oslo.cache===1.26.0 +WebTest===2.0.27 +openstack.nose-plugin===0.7 +os-collect-config===5.0.0 +python-qpid-proton===0.17.0 +python-octaviaclient===1.3.0 +pysaml2===4.0.2 +oslo.reports===1.18.0 +ceilometermiddleware===1.1.0 +python-nss===1.0.1 +testrepository===0.0.18 +sympy===0.7.6 +sphinxmark===0.1.14 +openpyxl===2.4.9 +PyNaCl===1.1.2 +osc-lib===1.8.0 +osc-placement===1.0.0 +python-consul===0.4.7 +seqdiag===0.9.5 +numpy===1.13.3 +repoze.who===2.3 +msgpack===0.5.1 +Sphinx===1.6.5 +oslo.config===5.1.0 +tempest===17.1.0 +django-floppyforms===1.0 +openstackdocstheme===1.18.1 +zake===0.1.6 +python-rsdclient===0.1.0 +python-magic===0.4.13 +python-solumclient===1.2.7 +PyMySQL===0.7.6 +kubernetes===4.0.0 +httplib2===0.9.1 +PrettyTable===0.7.1 +bottle===0.12.13 +betamax===0.7.0 +construct===2.8.10 +pyparsing===2.1.0 +dogpile.cache===0.6.2 +python-barbicanclient===4.0.0 +blinker===1.4 +tricircleclient===0.1.1 +WSME===0.8.0 +msgpack-python===0.4.0 +proboscis===1.2.5.3 +fortiosclient===0.0.2 +stevedore===1.20.0 +botocore===1.5.1 +xmltodict===0.10.1 +pyasn1===0.1.8 +oslo.rootwrap===5.8.0 +Django===1.8 +pexpect===3.1 +mistral-extra===5.2.0 +cmd2===0.8.0 +redis===2.10.0 +jmespath===0.9.0 +click===6.7 +sphinx===1.6.2 +docker-pycreds===0.2.1 +XStatic-smart-table===1.4.13.2 +kuryr-lib===0.5.0 +scrypt===0.8.0 +jsonpatch===1.16 +typed-ast===1.1.0;python_version=='3.4' +os-testr===1.0.0 +cotyledon===1.3.0 +stomp.py===4.1.19 +xattr===0.9.2 +systemd-python===234 +python-memcached===1.56 +openstacksdk===0.11.2 +six===1.10.0 +h2===2.6.2 +dulwich===0.15.0 +pykafka===2.5.0 +setuptools===21.0.0 +kombu===4.0.0 +mitmproxy===1.0.2;python_version=='3.4' +mitmproxy===1.0.2;python_version=='3.5' +betamax-matchers===0.4.0 +yaql===1.1.3 +requestsexceptions===1.2.0 +testresources===2.0.0 +falcon===1.0.0 +etcd3gw===0.2.0 +pyldap===2.4.20 +Flask-RESTful===0.3.5 +GitPython===1.0.1 +python-ironicclient===2.2.0 +XStatic===1.0.0 +XStatic-Angular-FileUpload===12.0.4.0 +python-openstackclient===3.12.0 +pika-pool===0.1.3 +pyzmq===14.3.1 +EditorConfig===0.12.1 +oslo.db===4.27.0 +simplegeneric===0.8.1 +abclient===0.2.3 +pymemcache===1.2.9 +wrapt===1.7.0 +oslo.privsep===1.23.0 +zope.interface===4.4.3 +oslo.policy===1.30.0 +python-muranoclient===0.8.2 +pyeclib===1.5.0 +django-openstack-auth===3.5.0 +wsgi-intercept===1.4.1 +ndg-httpsclient===0.4.2 +tempest-lib===1.0.0 +spec-cleaner===0.8.2 +repoze.lru===0.7 +rfc3986===0.3.1 +tenacity===3.2.1 +XStatic-Magic-Search===0.2.5.1 +python-designateclient===2.7.0 +future===0.16.0 +Paste===2.0.2 +boto===2.32.1 +functools32===3.2.3.post2 +watchdog===0.8.3 +gevent===1.2.2 +os-vif===1.7.0 +python-masakariclient===3.0.1 +Werkzeug===0.7 +pyasn1-modules===0.0.6 +APScheduler===3.4.0 +pip===8.0.3 +monotonic===0.6 +python-smaugclient===0.0.5 +python-troveclient===2.2.0 +etcd3===0.5.2 +cliff-tablib===1.1 +XStatic-Bootstrap-Datepicker===1.3.1.0 +CouchDB===1.1 +netifaces===0.10.4 +cachetools===2.0.0 +ws4py===0.4.2 +keystoneauth1===3.4.0 +statsd===3.2.1 +XenAPI===1.2 +python-keystoneclient===3.8.0 +demjson===2.2.2 +diskimage-builder===1.1.2 +heat-translator===0.4.0 +python-magnumclient===2.1.0 +docker===2.4.2 +pathtools===0.1.2 +qpid-python===0.26 +contextlib2===0.4.0 +XStatic-Angular-lrdragndrop===1.0.2.2 +python-congressclient===1.9.0 +ovsdbapp===0.9.1 +rjsmin===1.0.12 +icalendar===3.10 +decorator===3.4.0 +cffi===1.7.0 +futurist===1.2.0 +jsonschema===2.6.0 +alembic===0.8.10 +glance-store===0.22.0 +sphinx-testing===0.7.2 +dnspython===1.14.0 +oauthlib===0.6.2 +Babel===2.3.4 +logutils===0.3.5 +scandir===1.6 +sphinxcontrib-fulltoc===1.2.0 +smmap2===2.0.3 +olefile===0.44 +greenlet===0.4.10 +xvfbwrapper===0.1.3 +futures===3.0.0 +tosca-parser===0.8.1 +Flask===0.10 +pymod2pkg===0.7.0 +happybase===0.5 +marathon===0.8.6 +fasteners===0.7.0 +sortedcontainers===1.5.7 +python-tackerclient===0.8.0 +python-heatclient===1.10.0 +kafka-python===1.3.1 +oslo.utils===3.33.0 +python-editor===1.0.3 +gitdb2===2.0.3 +requests-kerberos===0.6 +itsdangerous===0.24 +XStatic-jquery-ui===1.10.4.1 +monasca-statsd===1.1.0 +python-dateutil===2.5.3 +virtualenv===14.0.6 +colorama===0.3.9 +apscheduler===3.0.5 +ironic-lib===2.5.0 +pytz===2013.6 +XStatic-D3===3.5.17.0 +actdiag===0.5.4 +sysv-ipc===0.6.8 +scikit-learn===0.17.1 +python-blazarclient===1.0.1 diff --git a/tox.ini b/tox.ini index d50a9ec672..67e3a03a69 100644 --- a/tox.ini +++ b/tox.ini @@ -18,6 +18,11 @@ install_command = pip install -U {opts} -c {toxinidir}/upper-constraints.txt {pa deps = -r{toxinidir}/upper-constraints.txt commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt +[testenv:py27-check-lc] +install_command = pip install -U {opts} -c {toxinidir}/lower-constraints.txt {packages} +deps = -r{toxinidir}/lower-constraints.txt +commands = check-conflicts {toxinidir}/lower-constraints.txt {toxinidir}/lower-constraints-xfails.txt + [testenv:py35-check-uc] basepython = python3.5 install_command = pip install -U {opts} -c {toxinidir}/upper-constraints.txt {packages} @@ -34,7 +39,9 @@ commands = update-requirements {posargs} commands = generate-constraints {posargs} [testenv:validate] -commands = validate-constraints {toxinidir}/global-requirements.txt {toxinidir}/upper-constraints.txt {toxinidir}/blacklist.txt +commands = + validate-constraints {toxinidir}/global-requirements.txt {toxinidir}/upper-constraints.txt {toxinidir}/blacklist.txt + validate-constraints {toxinidir}/global-requirements.txt {toxinidir}/lower-constraints.txt {toxinidir}/blacklist.txt [testenv:validate-projects] commands = validate-projects {toxinidir}/projects.txt