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
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.
/usr/lib/python3.6/site-packages/sphinxcontrib/__init__.py
Ignore previous comment. It was some messed up stuff left in my local PYTHONPATH.
See PR#142.
The next release of Waiverdb will use Python 3 (on Fedora).
Metadata Update from @dcallagh: - Issue set to the milestone: 0.10
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)