Bug#946451: spyder: work on new upstream release
Julian Gilbey
jdg at debian.org
Sun Jan 3 13:38:54 GMT 2021
Dear Drew and everyone,
(This message is Bcc'd to the two ITPs for python-language-server
(#963605) and python-jsonrpc-server (#964497), but it makes sense for
the discussion to remain on one report only. I've also cc'd Otto -
see below.)
I was frustrated that I couldn't use Spyder 3 any more because of some
fatal bug (#976966), and I really want to use Spyder 3. So I decided
over the last few days to package the new (4.2.1) Spyder dependencies
and see where I got to. So this is a long email giving the state of
play after my experiments.
tl;dr - I still can't run Spyder and I don't know why not. But I have
built all of the dependencies and they are all on salsa; I haven't yet
submitted ITPs for them but they are all ready to go. (I also haven't
checked whether anyone else has already done so, except for the
repository that already existed in the Python teams project salsa.)
Should I submit ITPs and upload what I have done so far?
Long version
------------
Here is the dependency chain for Spyder 4.2.1 (only listing packages
not yet in the archive); source packages are named first, and the
relevant binary packages listed in parentheses afterwards:
Level 1 (can be built entirely within the current sid environment)
-------
python-jsonrpc-server (python3-pyls-jsonrpc) - already has ITP #964497
syllabipy (python3-syllabipy)
pylzss (python3-lzss)
paq (python3-paq)
distance (python3-distance)
pyxdameraulevenshtein (python3-pyxdameraulevenshtein)
py-stringmatching (python3-py-stringmatching)
three-merge (python3-three-merge)
wurlitzer (python3-wurlitzer) - already has ITP #942829
Level 2 (depends on at least one Level 1 package)
-------
python-language-server (python3-pyls) - already has ITP #963605
- depends:
python3-pyls-jsonrpc
abydos (python3-abydos)
- depends:
python3-syllabipy
python3-lzss
python3-paq
spyder-kernels [upgrade]
- depends:
python3-wurlitzer
Level 3 (depends on at least one Level 2 package)
-------
pyls-black (python3-pyls-black)
- depends: python3-pyls
pyls-spyder (python3-pyls-spyder)
- depends: python3-pyls
textdistance (python3-textdistance)
- depends:
python3-abydos
python3-distance
python3-pylev (in NEW)
python3-pyxdameraulevenshtein
python3-py-stringmatching
Level 4 (depends on at least one Level 3 package)
-------
spyder [upgrade]
- depends:
python3-pyls-black
python3-pyls-spyder
python3-spyder-kernels (>= 1.10.1)
python3-textdistance
python3-three-merge
Notes on this chain:
* All of these packages are available on salsa as
https://salsa.debian.org/python-team/packages/PKG
I have included myself and Otto Kekäläinen <otto at debian.org> as
uploaders - I included Otto just because he is already listed on the
python-language-server packages. Happy to hand any of these over to
anyone else who wants them!
* python3-jedi has been upgraded to version 0.18. This introduced
incompatible changes that have broken at least python3-ipython,
python3-pyls and those packages that depend on them.
* python3-parso has been upgraded to version 0.8.1. This has had a
similarly problematic effect.
* syllabipy is a deprecated package. There is a very recent pull
request on nltk to incorporate the rest of the functionality of
syllabipy into nltk. Once that happens, there can be a request to
abydos to remove its dependency on syllabipy (it already depends on
nltk) and syllabipy can be dropped completely.
* I have forked the spyder-kernels and spyder repositories on Salsa
and pushed my work to the experimental (and upstream and
pristine-tar) branches.
OK, so where are we now?
Well, it's not very good news, unfortunately.
I try running spyder and this is what I get:
euler:~ $ spyder
Traceback (most recent call last):
File "/usr/bin/spyder", line 33, in <module>
sys.exit(load_entry_point('spyder==4.2.1', 'gui_scripts', 'spyder')())
File "/usr/lib/python3/dist-packages/spyder/app/start.py", line 213, in main
mainwindow.main(options, args)
File "/usr/lib/python3/dist-packages/spyder/app/mainwindow.py", line 3624, in main
mainwindow = create_window(app, splash, options, args)
File "/usr/lib/python3/dist-packages/spyder/app/mainwindow.py", line 3482, in create_window
main.setup()
File "/usr/lib/python3/dist-packages/spyder/app/mainwindow.py", line 514, in setup
self, icon=ima.icon('close_pane'),
File "/usr/lib/python3/dist-packages/spyder/utils/icon_manager.py", line 421, in icon
return qta.icon(*args, **kwargs)
File "/usr/lib/python3/dist-packages/qtawesome/__init__.py", line 125, in icon
return _instance().icon(*names, **kwargs)
File "/usr/lib/python3/dist-packages/qtawesome/iconic_font.py", line 259, in icon
parsed_options.append(self._parse_options(specific_options,
File "/usr/lib/python3/dist-packages/qtawesome/iconic_font.py", line 308, in _parse_options
prefix, chars = self._get_prefix_chars(names)
File "/usr/lib/python3/dist-packages/qtawesome/iconic_font.py", line 339, in _get_prefix_chars
raise Exception(error)
Exception: Invalid icon name "window-close-o" in font "fa"
OK, so that isn't great. I also tried running the test suite. The
runtests.py script fails miserably, so instead I did the following
(with python3-pytestqt and python3-pytest-mock installed):
for i in $(find spyder -type d -name tests); do pytest-3 $i; done
(Don't even think about using xargs instead - it crashes before doing
anything useful.) This has to be run in an interactive graphical
environment, as they test a lot of Qt stuff.
There are 40 test directories, and most of them have test failures.
Some of these might be related to the python3-jedi and python3-parso
issues, but the results are pretty depressing nevertheless: I
summarise from 32838 lines of terminal output:
spyder/app/tests
5 passed, 90 skipped, 2 warnings
spyder/config/tests
1 failed, 69 passed, 2 warnings (Exception: Invalid icon name
"window-close-o" in font "fa"; this is what stopped spyder from
starting up)
spyder/plugins/completion/fallback/tests
failed to run tests (Exception: Invalid font prefix "mdi")
spyder/plugins/completion/kite/parsing/tests
1 passed
spyder/plugins/completion/kite/utils/tests
1 skipped
spyder/plugins/completion/languageserver/tests
failed to run tests (Exception: Invalid font prefix "mdi")
spyder/plugins/completion/snippets/tests
failed to run tests (Exception: Invalid font prefix "mdi")
spyder/plugins/console/tests
2 warnings, 2 error
spyder/plugins/editor/extensions/tests
2 passed, 2 warnings, 69 error
spyder/plugins/editor/panels/tests
1 skipped, 2 warnings, 3 error
spyder/plugins/editor/tests
1 passed, 18 error
spyder/plugins/editor/utils/tests
25 passed
spyder/plugins/editor/widgets/tests
failed to run tests (Exception: Invalid font prefix "mdi")
spyder/plugins/explorer/tests
1 passed, 2 warnings
spyder/plugins/explorer/widgets/tests
1 failed, 21 passed, 45 warnings, 30 error
spyder/plugins/findinfiles/tests
4 passed, 16 error
spyder/plugins/help/tests
3 skipped, 2 warnings, 2 error
spyder/plugins/history/tests
1 passed, 2 warnings, 5 error
spyder/plugins/ipythonconsole/comms/tests
2 passed, 2 warnings
spyder/plugins/ipythonconsole/tests
1 passed, 6 skipped, 6 warnings, 58 error
spyder/plugins/ipythonconsole/utils/tests
3 passed, 1 skipped, 2 warnings
spyder/plugins/ipythonconsole/widgets/tests
4 passed, 4 warnings
spyder/plugins/onlinehelp/tests
2 skipped, 1 error
spyder/plugins/outlineexplorer/tests
5 failed, 1 skipped, 2 warnings
spyder/plugins/plots/widgets/tests
30 passed, 1146 warnings
spyder/plugins/profiler/tests
1 passed, 3 warnings, 3 error
spyder/plugins/projects/tests
3 warnings, 21 error
spyder/plugins/projects/widgets/tests
4 passed, then threw a fatal error (Exception: Invalid font prefix "mdi")
spyder/plugins/pylint/tests
12 failed, 11 passed, 2 warnings
spyder/plugins/variableexplorer/tests
1 failed, 1 passed, 2 warnings
spyder/plugins/variableexplorer/widgets/objectexplorer/tests
9 failed, 2 warnings
spyder/plugins/variableexplorer/widgets/tests
7 failed, 85 passed, 5 skipped, 180 warnings
spyder/plugins/workingdirectory/tests
1 passed, 2 warnings, 3 error
spyder/preferences/tests
1 failed, 14 passed, 31 warnings, 1 error
spyder/tests
8 passed
spyder/utils/introspection/tests
1 passed, 4 warnings
spyder/utils/tests
2 failed, 61 passed, 13 skipped, 2 warnings
spyder/widgets/github/tests
6 passed
spyder/widgets/tests
36 passed, 5 skipped, 182 warnings, 4 error
spyder/workers/tests
6 skipped
Most of the errors were to do with font prefixes, which I don't
understand, so any help there would be appreciated!
So what would be helpful now? Shall I file ITPs and upload the
supporting packages to NEW?
Best wishes,
Julian
More information about the debian-science-maintainers
mailing list