Bug 1793009 - python-qutepart fails to build with Python 3.9: Aborted in %check
Summary: python-qutepart fails to build with Python 3.9: Aborted in %check
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-qutepart
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Raphael Groner
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PYTHON39
TreeView+ depends on / blocked
 
Reported: 2020-01-20 13:46 UTC by Miro Hrončok
Modified: 2020-03-18 17:00 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-03-18 14:47:13 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github andreikop/qutepart/commit/5c4e09e7cb868e5842a9252696fcad907e3dcef9 0 None None None 2020-03-17 16:45:16 UTC
Github andreikop qutepart issues 86 0 None open Test failures with Python 3.9 2020-03-16 22:57:47 UTC

Description Miro Hrončok 2020-01-20 13:46:12 UTC
python-qutepart fails to build with Python 3.9.0a2.

Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.97T9Gw
+ umask 022
+ cd /builddir/build/BUILD
+ cd qutepart-3.2.0
+ pushd tests
~/build/BUILD/qutepart-3.2.0/tests ~/build/BUILD/qutepart-3.2.0
+ rm -f test_all.py
+ rm test_vim.py
+ xvfb-run -s '-screen :0 1024x768x16' /usr/bin/python3 -m unittest -vvv test_actions.py test_api.py test_bookmarks.py test_bracket_hlighter.py test_completion.py test_draw_whitespace.py test_edit.py test_indent.py test_indenter test_rectangular_selection.py test_syntax
test_1 (test_actions.Print) ... skipped 'Does not work'
test_completion_enabled (test_api.Completion) ... /builddir/build/BUILD/qutepart-3.2.0/qutepart/margins.py:78: DeprecationWarning: an integer is required (got type float).  Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
  self.update(0, rect.y(), self.width(), rect.height() + blockHeight)
/builddir/build/BUILD/qutepart-3.2.0/qutepart/htmldelegate.py:83: DeprecationWarning: an integer is required (got type float).  Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
  return QSize(doc.idealWidth(),
/builddir/build/BUILD/qutepart-3.2.0/qutepart/completer.py:233: DeprecationWarning: an integer is required (got type float).  Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
  return QSize(width, height)
ok
test_threshold (test_api.Completion) ... ok
test_1 (test_api.DetectSyntax) ... ERROR
test_1 (test_api.InsertText) ... ok
test_2 (test_api.InsertText) ... ok
test_3 (test_api.InsertText) ... ok
test_1 (test_api.IsCodeOrComment) ... ERROR
test_2 (test_api.IsCodeOrComment) ... ERROR
test_block_comment (test_api.IsCodeOrComment) ... ERROR
test_here_doc (test_api.IsCodeOrComment) ... /usr/bin/xvfb-run: line 181:   471 Aborted                 (core dumped) DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.9/fedora-rawhide-x86_64/01162067-python-qutepart/

For all our attempts to build python-qutepart with Python 3.9, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.9/package/python-qutepart/

Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.9:
https://copr.fedorainfracloud.org/coprs/g/python/python3.9/

Let us know here if you have any questions.

Python 3.9 will be included in Fedora 33. To make that update smoother, we're building Fedora packages with early pre-releases of Python 3.9.
A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon.
We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 1 Raphael Groner 2020-02-07 00:05:35 UTC
It's not obvious what exact assertion fails in the mentioned tests because they all contain several assert statements. Propably we'd need to make the log more verbose about that.

Trivial fix would be to disable execution of all the failing tests but that wouldn't tell why at all.

Comment 2 Ben Cotton 2020-02-11 16:39:32 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 3 Miro Hrončok 2020-03-16 13:06:48 UTC
> Propably we'd need to make the log more verbose about that.

Any update on that?

Comment 4 Raphael Groner 2020-03-16 20:02:15 UTC
(In reply to Miro Hrončok from comment #3)
> > Propably we'd need to make the log more verbose about that.
> 
> Any update on that?

We could try a rebuild with the new version 3.3.0, see bug #1808142.

Comment 5 Raphael Groner 2020-03-16 20:22:29 UTC
Please retry with python-qutepart-3.3.0-1.fc33 .

Comment 6 Miro Hrončok 2020-03-16 21:34:28 UTC
https://copr.fedorainfracloud.org/coprs/g/python/python3.9/package/python-qutepart/

The build failed:

+ xvfb-run -s '-screen :0 1024x768x16' /usr/bin/python3 -m unittest -vvv test_actions.py test_api.py test_bookmarks.py test_bracket_hlighter.py test_completion.py test_draw_whitespace.py test_edit.py test_indent.py test_indenter test_rectangular_selection.py test_syntax
test_1 (test_actions.Print) ... skipped 'Does not work'
test_completion_enabled (test_api.Completion) ... /builddir/build/BUILD/qutepart-3.3.0/qutepart/margins.py:78: DeprecationWarning: an integer is required (got type float).  Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
  self.update(0, rect.y(), self.width(), rect.height() + blockHeight)
/builddir/build/BUILD/qutepart-3.3.0/qutepart/htmldelegate.py:83: DeprecationWarning: an integer is required (got type float).  Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
  return QSize(doc.idealWidth(),
/builddir/build/BUILD/qutepart-3.3.0/qutepart/completer.py:233: DeprecationWarning: an integer is required (got type float).  Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
  return QSize(width, height)
ok
test_threshold (test_api.Completion) ... ok
test_1 (test_api.DetectSyntax) ... ERROR
test_1 (test_api.InsertText) ... ok
test_2 (test_api.InsertText) ... ok
test_3 (test_api.InsertText) ... ok
test_1 (test_api.IsCodeOrComment) ... ERROR
test_2 (test_api.IsCodeOrComment) ... ERROR
test_block_comment (test_api.IsCodeOrComment) ... ERROR
test_here_doc (test_api.IsCodeOrComment) ... /builddir/build/BUILD/qutepart-3.3.0/qutepart/indenter/ruby.py:241: DeprecationWarning: invalid escape sequence \s
  self.testAtEnd(prevStmt, re.compile(',\s*'))
/usr/bin/xvfb-run: line 181:   457 Aborted                 (core dumped) DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
error: Bad exit status from /var/tmp/rpm-tmp.4daIdx (%check)

Comment 7 Raphael Groner 2020-03-16 22:44:22 UTC
I don't understand why there isn't more information given than just "ERROR" for the failing tests. We're already using verbosity=3.
https://src.fedoraproject.org/rpms/python-qutepart/blob/master/f/python-qutepart.spec#_84

Comment 8 Raphael Groner 2020-03-16 22:57:48 UTC
Reported to upstream.

Comment 9 Raphael Groner 2020-03-17 16:45:17 UTC
Upstream answer is CANTFIX, how to proceed?

https://github.com/andreikop/qutepart/commit/5c4e09e7cb868e5842a9252696fcad907e3dcef9

Comment 10 Miro Hrončok 2020-03-17 17:09:34 UTC
In that case, i'd skip the problematic tests and verify manually the package works.

Comment 11 Raphael Groner 2020-03-17 17:40:29 UTC
Well, the failing method is part of the core. But it seems to be related mostly to correct syntax detection / highlighting. That shouldn't mean any blocker in usability of this package.

I'll disable those tests and rebuild.

Comment 12 Raphael Groner 2020-03-17 20:14:10 UTC
Upstream tends to get of python, entirely.

https://github.com/andreikop/qutepart-cpp

Comment 13 Raphael Groner 2020-03-18 12:43:43 UTC
I'm delegating this to python-qt cause I'm out of any ideas what's going on or how to debug with more deepness inside.

Comment 14 Rex Dieter 2020-03-18 12:56:03 UTC
Not enough information to judge, but I'd echo comment #10 and make these tests non-fatal to the build

Comment 15 Raphael Groner 2020-03-18 13:23:03 UTC
(In reply to Rex Dieter from comment #14)
> Not enough information to judge, but I'd echo comment #10 and make these
> tests non-fatal to the build

Ack. Well, we've some tests for enki (based on qutepart), so some higherly leveled integration tests can still run, hopefully with success also to the component(s).

Comment 16 Raphael Groner 2020-03-18 13:42:13 UTC
Done. Please also try to rebuild enki with the new build of python-qutepart as a dependency as explained in comment #15.

Comment 18 Raphael Groner 2020-03-18 14:11:01 UTC
Argh. How to correctly detect the used python version in a build conditional?

Comment 19 Miro Hrončok 2020-03-18 14:19:02 UTC
%if 0%{?python3_version_nodots} > 38

Comment 20 Miro Hrončok 2020-03-18 14:47:13 UTC
All tests are skipped with Python > 3.8.

Comment 21 Raphael Groner 2020-03-18 14:49:13 UTC
Cool, thanks. *THUMPS UP*

Comment 22 Rex Dieter 2020-03-18 16:17:18 UTC
I'd recommend *unconditionally* disabling these tests, that's what upstream said to do

Comment 23 Raphael Groner 2020-03-18 17:00:56 UTC
All is fine again. I'd recommend to wait for next (possible) report with FTBFS and we could easily drop the conditional if needed.


Note You need to log in before you can comment on or make changes to this bug.