There is a new version of Python (3.9) coming to Fedora 33 and it seems that kdev-python is not able to build against this new version. See Fedora bug: https://bugzilla.redhat.com/show_bug.cgi?id=1818007
Note the 'blocking' 3.8 support was already done. Since kdev-python uses internals of the CPython parser, which sees a lot of churn and isn't considered stable API, this is almost guaranteed to happen every release. There's little point trying to match upstream changes before their first beta, because it's a moving target. It should be done by the time kdev-python 5.6 is released.
Case in point, this was introduced between 3.9.0a4 and a5, and kdev-python can be built against the former. The relevant upstream change is https://bugs.python.org/issue34822 which was committed on March 10th: https://github.com/python/cpython/commit/13d52c268699f199a8e917a0f1dc4c51e5346c42
Git commit 05e95cac74b0bb3595a6d97da07a12b907385be5 by Francis Herne. Committed on 19/08/2020 at 20:36. Pushed by flherne into branch '5.6'. Initial support for CPython 3.9 This reformats our AST to match that introduced upstream by https://bugs.python.org/issue34822 and adjusts the conversion from older Python versions' AST to match. ExtendedSliceAst is removed, in favour of a TupleAst containing SliceAsts and/or other expressions. IndexAst is removed, instead non-slice index expressions are direct children of SubscriptAst. SliceAst and EllipsisAst are now subclasses of ExpressionAst. In the latter case I don't understand how it wasn't broken before. --- The stdlib docfiles are not updated. There aren't many changes to builtins in 3.9, but we do need a system to re-generate these - perhaps based on Typeshed. In CPython 3.8 and 3.9 there are several changes to the parser that could be useful to us -- particularly end_lineno and end_col_offset. This patch doesn't attempt to take advantage of them. M +2 -2 CMakeLists.txt M +2 -2 duchain/declarationbuilder.cpp M +2 -2 duchain/expressionvisitor.cpp M +2 -17 parser/ast.cpp M +3 -24 parser/ast.h M +0 -10 parser/astdefaultvisitor.cpp M +0 -4 parser/astdefaultvisitor.h M +0 -2 parser/astvisitor.cpp M +0 -2 parser/astvisitor.h M +2 -0 parser/conversionGenerator.py M +22 -5 parser/generated.h R +4 -3 parser/python39.sdef [from: parser/python38.sdef - 096% similarity] https://invent.kde.org/kdevelop/kdev-python/commit/05e95cac74b0bb3595a6d97da07a12b907385be5
Git commit efabd9d4b4884f6e715650a066757009a9647865 by Francis Herne. Committed on 22/08/2020 at 10:43. Pushed by flherne into branch '5.5-python39'. Initial support for CPython 3.9 This reformats our AST to match that introduced upstream by https://bugs.python.org/issue34822 and adjusts the conversion from older Python versions' AST to match. ExtendedSliceAst is removed, in favour of a TupleAst containing SliceAsts and/or other expressions. IndexAst is removed, instead non-slice index expressions are direct children of SubscriptAst. SliceAst and EllipsisAst are now subclasses of ExpressionAst. In the latter case I don't understand how it wasn't broken before. --- The stdlib docfiles are not updated. There aren't many changes to builtins in 3.9, but we do need a system to re-generate these - perhaps based on Typeshed. In CPython 3.8 and 3.9 there are several changes to the parser that could be useful to us -- particularly end_lineno and end_col_offset. This patch doesn't attempt to take advantage of them. M +2 -2 CMakeLists.txt M +2 -2 duchain/declarationbuilder.cpp M +2 -2 duchain/expressionvisitor.cpp M +2 -17 parser/ast.cpp M +3 -24 parser/ast.h M +0 -10 parser/astdefaultvisitor.cpp M +0 -4 parser/astdefaultvisitor.h M +0 -2 parser/astvisitor.cpp M +0 -2 parser/astvisitor.h M +2 -0 parser/conversionGenerator.py M +22 -5 parser/generated.h R +4 -3 parser/python39.sdef [from: parser/python38.sdef - 096% similarity] https://invent.kde.org/kdevelop/kdev-python/commit/efabd9d4b4884f6e715650a066757009a9647865