[cliff][docs][requirements] new cliff versions causes docs to fail to build
Looks like some things changed in the new version that we depended upon and are now causing failures. Exception occurred: File "/home/zuul/src/opendev.org/openstack/python-openstackclient/.tox/docs/lib/python3.6/site-packages/cliff/sphinxext.py", line 245, in _load_app if not issubclass(cliff_app_class, app.App): TypeError: issubclass() arg 1 must be a class -- Matthew Thode
On 12/22/19 11:53 AM, Matthew Thode wrote:
Looks like some things changed in the new version that we depended upon and are now causing failures.
Exception occurred: File "/home/zuul/src/opendev.org/openstack/python-openstackclient/.tox/docs/lib/python3.6/site-packages/cliff/sphinxext.py", line 245, in _load_app if not issubclass(cliff_app_class, app.App): TypeError: issubclass() arg 1 must be a class
This should have been fixed by [1], which is in cliff since 2.14.0. The python-openstackclient docs target (which IIUC still uses the def in tox.ini?) pulls in requirements.txt which lists cliff!=2.9.0,>=2.8.0 # Apache-2.0 and upper-constraints, which is at 2.16.0. All that seems copacetic to me. I also can't reproduce the failure locally building python-openstackclient docs from scratch. What/where/how were you building when you encountered this? efried [1] https://review.opendev.org/#/c/614218/
On Mon, Jan 06, 2020 at 04:48:19PM -0600, Eric Fried wrote:
On 12/22/19 11:53 AM, Matthew Thode wrote:
Looks like some things changed in the new version that we depended upon and are now causing failures.
Exception occurred: File "/home/zuul/src/opendev.org/openstack/python-openstackclient/.tox/docs/lib/python3.6/site-packages/cliff/sphinxext.py", line 245, in _load_app if not issubclass(cliff_app_class, app.App): TypeError: issubclass() arg 1 must be a class
This should have been fixed by [1], which is in cliff since 2.14.0. The python-openstackclient docs target (which IIUC still uses the def in tox.ini?) pulls in requirements.txt which lists
cliff!=2.9.0,>=2.8.0 # Apache-2.0
and upper-constraints, which is at 2.16.0. All that seems copacetic to me. I also can't reproduce the failure locally building python-openstackclient docs from scratch.
What/where/how were you building when you encountered this?
efried
Part of this could be that cliff is still capped since the newest release has some issues that have yet to be addressed. The upper constraint can't be raised until they are (which also likely means blacklisting this version), but I haven't seen any activity there yet. So the fix that was supposed to handle this doesn't appear to have actually done so. http://lists.openstack.org/pipermail/openstack-discuss/2019-December/011741....
TypeError: issubclass() arg 1 must be a class
This should have been fixed by [1], which is in cliff since 2.14.0. The python-openstackclient docs target (which IIUC still uses the def in tox.ini?) pulls in requirements.txt which lists
cliff!=2.9.0,>=2.8.0 # Apache-2.0
and upper-constraints, which is at 2.16.0. All that seems copacetic to me. I also can't reproduce the failure locally building python-openstackclient docs from scratch.
What/where/how were you building when you encountered this?
efried
Part of this could be that cliff is still capped since the newest release has some issues that have yet to be addressed. The upper constraint can't be raised until they are (which also likely means blacklisting this version), but I haven't seen any activity there yet.
So the fix that was supposed to handle this doesn't appear to have actually done so.
Or rather, it had fixed it, but somehow in the latest 2.17.0 release, the one unrelated change included somehow broke it again. https://github.com/openstack/cliff/compare/2.16.0...2.17.0
On Tue, 2020-01-07 at 09:22 -0600, Sean McGinnis wrote:
TypeError: issubclass() arg 1 must be a class
This should have been fixed by [1], which is in cliff since 2.14.0. The python-openstackclient docs target (which IIUC still uses the def in tox.ini?) pulls in requirements.txt which lists
cliff!=2.9.0,>=2.8.0 # Apache-2.0
and upper-constraints, which is at 2.16.0. All that seems copacetic to me. I also can't reproduce the failure locally building python-openstackclient docs from scratch.
What/where/how were you building when you encountered this?
efried
Part of this could be that cliff is still capped since the newest release has some issues that have yet to be addressed. The upper constraint can't be raised until they are (which also likely means blacklisting this version), but I haven't seen any activity there yet.
So the fix that was supposed to handle this doesn't appear to have actually done so.
Or rather, it had fixed it, but somehow in the latest 2.17.0 release, the one unrelated change included somehow broke it again.
Commit 8bcd068e876ddd48ae61c1803449d666f5e28ba0, a.k.a. cliff 2.17.0 is not the commit you (should have been) looking for. As noted at [1], we appear to have tagged a commit from the review branch instead of one from master, which mean 2.17.0 is based on code from master shortly after 2.11.0 (!) was released. I suggest we blacklist 2.17.0 and issue a new 2.17.1 or 2.18.0 release post-haste. That's not all though. For some daft reason, the 'python-rsdclient' projects has imported argparses 'HelpFormatter' from 'cliff._argparse' instead of 'argparse'. They need to stop doing this because commit 584352dcd008d58c433136539b22a6ae9d6c45cc of cliff means this will no longer work. Just import argparse directly. Stephen [1] https://review.opendev.org/#/c/698485/1/deliverables/ussuri/cliff.yaml@13
I suggest we blacklist 2.17.0
I see you did this here [1] (merged)
and issue a new 2.17.1 or 2.18.0 release post-haste.
and this here [2] (open)
That's not all though. For some daft reason, the 'python-rsdclient' projects has imported argparses 'HelpFormatter' from 'cliff._argparse' instead of 'argparse'. They need to stop doing this because commit 584352dcd008d58c433136539b22a6ae9d6c45cc of cliff means this will no longer work. Just import argparse directly.
I didn't see an open review for this so I made one [3]. I'm not sure how we should deal with python-rsdclient's cliff req, though. Should we blacklist the bad version in accordance with [1], or remove the req entirely since that was the only thing in the project that referenced it? And should that happen in the same patch or separately? efried [1] https://review.opendev.org/#/c/701406/ [2] https://review.opendev.org/#/c/701405/ [3] https://review.opendev.org/#/c/701599/
participants (4)
-
Eric Fried
-
Matthew Thode
-
Sean McGinnis
-
Stephen Finucane