Cleanup py27 support

This repo is now testing only with Python 3, so let's make
a few cleanups:
- Remove python 2.7 stanza from setup.py
- Add requires on python >= 3.6 to setup.cfg so that pypi and pip
  know about the requirement
- Remove obsolete sections from setup.cfg
- Update classifiers
- Update requirements, no need for python_version anymore
- Switch to using sphinx-build
- Cleanup */source/conf.py to remove now obsolete content.
- Use newer openstackdocstheme version
- Use mock from unittest;leave it in test-requirements for now since
  otherwise lower-constraints fails since some repos expect mock to be
  installed without requiring it.
- Remove future imports, not needed for python3
- Update to newer hacking version for python3, disable one warning.
  Remove hacking requirements from lower-constraints, they are not
  needed there.
- Cleanup tox.ini, move basepython to top
- Update horizon requirement for ussuri

Change-Id: I1753bce3ac4fc4248783c0669cacab2e037e62fe
This commit is contained in:
Andreas Jaeger 2020-04-12 17:10:46 +02:00
parent 58c6bfcfba
commit 30bb75d744
18 changed files with 24 additions and 60 deletions

View File

@ -2,6 +2,5 @@
# of appearance. Changing the order has an impact on the overall integration # of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later. # process, which may cause wedges in the gate later.
openstackdocstheme>=1.18.1 # Apache-2.0 openstackdocstheme>=1.31.2 # Apache-2.0
sphinx>=1.8.0,<2.0.0;python_version=='2.7' # BSD sphinx>=1.8.0,!=2.1.0 # BSD
sphinx>=1.8.0,!=2.1.0;python_version>='3.4' # BSD

View File

@ -119,6 +119,3 @@ latex_elements = {
repository_name = 'openstack/watcher-dashboard' repository_name = 'openstack/watcher-dashboard'
bug_project = 'watcher-dashboard' bug_project = 'watcher-dashboard'
bug_tag = '' bug_tag = ''
# Must set this variable to include year, month, day, hours, and minutes.
html_last_updated_fmt = '%Y-%m-%d %H:%M'

View File

@ -24,10 +24,8 @@ dulwich==0.19.0
extras==1.0.0 extras==1.0.0
fasteners==0.14.1 fasteners==0.14.1
fixtures==3.0.0 fixtures==3.0.0
flake8==2.5.5
futurist==1.6.0 futurist==1.6.0
hacking==0.12.0 horizon==18.2.0
horizon==17.1.0
httplib2==0.10.3 httplib2==0.10.3
idna==2.6 idna==2.6
imagesize==1.0.0 imagesize==1.0.0
@ -40,14 +38,13 @@ jsonschema==2.6.0
keystoneauth1==3.4.0 keystoneauth1==3.4.0
linecache2==1.0.0 linecache2==1.0.0
MarkupSafe==1.0 MarkupSafe==1.0
mccabe==0.2.1
mock==2.0.0 mock==2.0.0
monotonic==1.4 monotonic==1.4
msgpack==0.5.6 msgpack==0.5.6
munch==2.2.0 munch==2.2.0
netaddr==0.7.19 netaddr==0.7.19
netifaces==0.10.6 netifaces==0.10.6
openstackdocstheme==1.18.1 openstackdocstheme==1.31.2
openstacksdk==0.12.0 openstacksdk==0.12.0
os-client-config==1.29.0 os-client-config==1.29.0
os-service-types==1.2.0 os-service-types==1.2.0
@ -61,11 +58,9 @@ oslo.utils==3.36.0
osprofiler==2.3.0 osprofiler==2.3.0
packaging==17.1 packaging==17.1
pbr==2.0.0 pbr==2.0.0
pep8==1.5.7
Pint==0.8.1 Pint==0.8.1
prettytable==0.7.2 prettytable==0.7.2
pycparser==2.18 pycparser==2.18
pyflakes==0.8.1
Pygments==2.2.0 Pygments==2.2.0
pymongo==3.6.1 pymongo==3.6.1
pyOpenSSL==17.5.0 pyOpenSSL==17.5.0

View File

@ -113,10 +113,6 @@ repository_name = 'openstack/watcher-dashboard'
bug_project = 'watcher-dashboard' bug_project = 'watcher-dashboard'
bug_tag = '' bug_tag = ''
# Must set this variable to include year, month, day, hours, and minutes.
html_last_updated_fmt = '%Y-%m-%d %H:%M'
# Theme options are theme-specific and customize the look and feel of a theme # Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the # further. For a list of options available for each theme, see the
# documentation. # documentation.

View File

@ -4,7 +4,7 @@
pbr!=2.1.0,>=2.0.0 # Apache-2.0 pbr!=2.1.0,>=2.0.0 # Apache-2.0
horizon>=17.1.0 # Apache-2.0 horizon>=18.2.0 # Apache-2.0
PyYAML>=3.12 # MIT PyYAML>=3.12 # MIT
python-watcherclient>=1.1.0 # Apache-2.0 python-watcherclient>=1.1.0 # Apache-2.0

View File

@ -6,6 +6,7 @@ description-file =
author = OpenStack author = OpenStack
author-email = openstack-discuss@lists.openstack.org author-email = openstack-discuss@lists.openstack.org
home-page = https://docs.openstack.org/watcher-dashboard/latest home-page = https://docs.openstack.org/watcher-dashboard/latest
python-requires = >=3.6
classifier = classifier =
Development Status :: 5 - Production/Stable Development Status :: 5 - Production/Stable
Environment :: OpenStack Environment :: OpenStack
@ -17,6 +18,8 @@ classifier =
Operating System :: OS Independent Operating System :: OS Independent
Operating System :: POSIX :: Linux Operating System :: POSIX :: Linux
Programming Language :: Python Programming Language :: Python
Programming Language :: Python :: Implementation :: CPython
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3 Programming Language :: Python :: 3
Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.7
@ -26,11 +29,6 @@ classifier =
packages = packages =
watcher_dashboard watcher_dashboard
[build_sphinx]
all_files = 1
build-dir = doc/build
source-dir = doc/source
[nosetests] [nosetests]
verbosity=2 verbosity=2
detailed-errors=1 detailed-errors=1

View File

@ -13,17 +13,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
import setuptools import setuptools
# In python < 2.7.4, a lazy loading of package `pbr` will break
# setuptools if some other modules registered functions in `atexit`.
# solution from: http://bugs.python.org/issue15881#msg170215
try:
import multiprocessing # noqa
except ImportError:
pass
setuptools.setup( setuptools.setup(
setup_requires=['pbr>=2.0.0'], setup_requires=['pbr>=2.0.0'],
pbr=True) pbr=True)

View File

@ -3,7 +3,7 @@
# process, which may cause wedges in the gate later. # process, which may cause wedges in the gate later.
# Hacking already pins down pep8, pyflakes and flake8 # Hacking already pins down pep8, pyflakes and flake8
hacking>=1.1.0,<1.2.0 # Apache-2.0 hacking>=3.0,<3.1.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0
mock>=2.0.0 # BSD mock>=2.0.0 # BSD
python-subunit>=1.0.0 # Apache-2.0/BSD python-subunit>=1.0.0 # Apache-2.0/BSD
@ -14,7 +14,6 @@ testtools>=2.2.0 # MIT
xvfbwrapper>=0.1.3 #license: MIT xvfbwrapper>=0.1.3 #license: MIT
# Doc requirements # Doc requirements
openstackdocstheme>=1.18.1 # Apache-2.0 openstackdocstheme>=1.31.2 # Apache-2.0
sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2 # BSD
sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2;python_version>='3.4' # BSD
reno>=2.5.0 # Apache-2.0 reno>=2.5.0 # Apache-2.0

View File

@ -22,8 +22,6 @@ environment, it should be kept strictly compatible with Python 2.6.
Synced in from openstack-common Synced in from openstack-common
""" """
from __future__ import print_function
import optparse import optparse
import os import os
import subprocess import subprocess

14
tox.ini
View File

@ -4,6 +4,7 @@ envlist = py37,py36,pep8
skipsdist = True skipsdist = True
[testenv] [testenv]
basepython = python3
usedevelop = True usedevelop = True
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
DJANGO_SETTINGS_MODULE=watcher_dashboard.test.settings DJANGO_SETTINGS_MODULE=watcher_dashboard.test.settings
@ -26,31 +27,25 @@ commands =
watcher_dashboard watcher_dashboard
[testenv:pep8] [testenv:pep8]
basepython = python3
commands = flake8 commands = flake8
[testenv:venv] [testenv:venv]
basepython = python3
commands = {posargs} commands = {posargs}
[testenv:releasenotes] [testenv:releasenotes]
basepython = python3
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html commands = sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html
[testenv:cover] [testenv:cover]
basepython = python3
commands = python setup.py testr --coverage --testr-args='{posargs}' commands = python setup.py testr --coverage --testr-args='{posargs}'
[testenv:docs] [testenv:docs]
basepython = python3
deps = deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt -r{toxinidir}/doc/requirements.txt
commands = python setup.py build_sphinx commands = sphinx-build -W -b html doc/source doc/build/html
[testenv:pdf-docs] [testenv:pdf-docs]
basepython = python3
envdir = {toxworkdir}/docs envdir = {toxworkdir}/docs
deps = {[testenv:docs]deps} deps = {[testenv:docs]deps}
whitelist_externals = whitelist_externals =
@ -62,19 +57,18 @@ commands =
make -C doc/build/pdf make -C doc/build/pdf
[testenv:debug] [testenv:debug]
basepython = python3
commands = oslo_debug_helper {posargs} commands = oslo_debug_helper {posargs}
[flake8] [flake8]
# F405 TEMPLATES may be undefined, or defined from star imports # F405 TEMPLATES may be undefined, or defined from star imports
# (because it is not easy to avoid this in openstack_dashboard.test.settings) # (because it is not easy to avoid this in openstack_dashboard.test.settings)
ignore = F405 # W504 line break after binary operator
ignore = F405,W504
show-source = True show-source = True
builtins = _ builtins = _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,.ropeproject,tools exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,.ropeproject,tools
[testenv:lower-constraints] [testenv:lower-constraints]
basepython = python3
deps = deps =
-c{toxinidir}/lower-constraints.txt -c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt

View File

@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from __future__ import unicode_literals
import logging import logging
from django.conf import settings from django.conf import settings

View File

@ -13,8 +13,6 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext_lazy from django.utils.translation import ungettext_lazy
import horizon.exceptions import horizon.exceptions

View File

@ -13,8 +13,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from unittest import mock
from django import urls from django import urls
import mock
from watcher_dashboard import api from watcher_dashboard import api
from watcher_dashboard.test import helpers as test from watcher_dashboard.test import helpers as test

View File

@ -13,8 +13,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from unittest import mock
from django import urls from django import urls
import mock
from watcher_dashboard import api from watcher_dashboard import api
from watcher_dashboard.test import helpers as test from watcher_dashboard.test import helpers as test

View File

@ -13,8 +13,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from unittest import mock
from django import urls from django import urls
import mock
from watcher_dashboard import api from watcher_dashboard import api
from watcher_dashboard.test import helpers as test from watcher_dashboard.test import helpers as test

View File

@ -13,8 +13,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from __future__ import absolute_import from unittest import mock
import mock
from watcher_dashboard import api from watcher_dashboard import api
from watcher_dashboard.test import helpers as test from watcher_dashboard.test import helpers as test

View File

@ -16,7 +16,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
import mock from unittest import mock
from openstack_dashboard.test import helpers from openstack_dashboard.test import helpers

View File

@ -13,8 +13,6 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from __future__ import absolute_import
import logging import logging
from horizon.test import helpers as test from horizon.test import helpers as test