#91 support both py2 and py3
Closed: Fixed 6 years ago Opened 6 years ago by mjia.

WaiverDB currently only supports py2. We should make it support both py2 and py3 so that we no longer need to have a hack like this.

https://src.fedoraproject.org/rpms/waiverdb/c/362128ad4b4b2948ebb7c1b34685de52d9c26e1e


We have also been requested in https://bugzilla.redhat.com/show_bug.cgi?id=1449168 to switch the waiverdb CLI to Python 3.

Assuming we no longer intend to run the server on RHEL7+EPEL7 then it seems entirely feasible to switch to Python 3 only and drop Python 2 support entirely.

Metadata Update from @dcallagh:
- Issue assigned to dcallagh

6 years ago

For now, we want to keep EPEL7 support for the CLI only (the server already doesn't run on EPEL7 due to older Flask).

Thus I would propose we maintain source code compatibility with Python 2.7+ and 3.whatever+ and we build for Python 3 in Fedora and Python 2 in EPEL7.

Got this all working quite easily, I am just stuck on a weird thing with the Sphinx docs build in Python 3 (which prevents the RPM build from succeeding):

$ sphinx-build-3 -T -b html docs docs/_build/
Running Sphinx v1.6.4

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/sphinx/registry.py", line 196, in load_extension
    mod = __import__(extname, None, None, ['setup'])
ModuleNotFoundError: No module named 'sphinxcontrib.autohttp'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/sphinx/cmdline.py", line 305, in main
    opts.warningiserror, opts.tags, opts.verbosity, opts.jobs)
  File "/usr/lib/python3.6/site-packages/sphinx/application.py", line 196, in __init__
    self.setup_extension(extension)
  File "/usr/lib/python3.6/site-packages/sphinx/application.py", line 456, in setup_extension
    self.registry.load_extension(self, extname)
  File "/usr/lib/python3.6/site-packages/sphinx/registry.py", line 199, in load_extension
    raise ExtensionError(__('Could not import extension %s') % extname, err)
sphinx.errors.ExtensionError: Could not import extension sphinxcontrib.autohttp.flask (exception: No module named 'sphinxcontrib.autohttp')

Extension error:
Could not import extension sphinxcontrib.autohttp.flask (exception: No module named 'sphinxcontrib.autohttp')

Somehow related to the fact that /usr/lib/python3.6/site-packages/sphinxcontrib/__init__.py does not exist (but it shouldn't need to). Python 3 namespace packages something something.

Ignore previous comment. It was some messed up stuff left in my local PYTHONPATH.

The next release of Waiverdb will use Python 3 (on Fedora).

Metadata Update from @dcallagh:
- Issue set to the milestone: 0.10

6 years ago

This was tagged as 0.9.1, although there is potentially a regression in OpenID Connect authentication which still needs solving: #147.

Metadata Update from @dcallagh:
- Issue close_status updated to: Fixed
- Issue set to the milestone: 0.9 (was: 0.10)
- Issue status updated to: Closed (was: Open)

6 years ago

Login to comment on this ticket.

Metadata