Bug 1788073
Summary: | python-parso fails to build with Python 3.9: An exception message has changed, tests fail for that | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Miro HronÄok <mhroncok> |
Component: | python-parso | Assignee: | Carl George š¤ <carl> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | carl, cstratak, mhroncok, mplch, python-sig |
Target Milestone: | --- | Keywords: | Reopened |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2020-03-18 02:55:25 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1785415 |
Description
Miro HronÄok
2020-01-06 10:25:18 UTC
I've updated the package to 0.5.2, which should resolve this. https://bodhi.fedoraproject.org/updates/FEDORA-2020-09870f81de Indeed. Thanks. python-parso fails to build with Python 3.9.0a3: _______________ test_python_exception_matches[(lambda: x := 1)] ________________ code = '(lambda: x := 1)' @pytest.mark.parametrize('code', FAILING_EXAMPLES) def test_python_exception_matches(code): wanted, line_nr = _get_actual_exception(code) errors = _get_error_list(code) actual = None if errors: error, = errors actual = error.message > assert actual in wanted E AssertionError: assert 'SyntaxError: cannot use named assignment with lambda' in ['SyntaxError: cannot use assignment expressions with lambda'] test/test_python_errors.py:39: AssertionError ______________ test_python_exception_matches[((lambda: x) := 1)] _______________ code = '((lambda: x) := 1)' @pytest.mark.parametrize('code', FAILING_EXAMPLES) def test_python_exception_matches(code): wanted, line_nr = _get_actual_exception(code) errors = _get_error_list(code) actual = None if errors: error, = errors actual = error.message > assert actual in wanted E AssertionError: assert 'SyntaxError: cannot use named assignment with lambda' in ['SyntaxError: cannot use assignment expressions with lambda'] test/test_python_errors.py:39: AssertionError __________________ test_python_exception_matches[(a[i] := x)] __________________ code = '(a[i] := x)' @pytest.mark.parametrize('code', FAILING_EXAMPLES) def test_python_exception_matches(code): wanted, line_nr = _get_actual_exception(code) errors = _get_error_list(code) actual = None if errors: error, = errors actual = error.message > assert actual in wanted E AssertionError: assert 'SyntaxError: cannot use named assignment with subscript' in ['SyntaxError: cannot use assignment expressions with subscript'] test/test_python_errors.py:39: AssertionError _________________ test_python_exception_matches[((a[i]) := x)] _________________ code = '((a[i]) := x)' @pytest.mark.parametrize('code', FAILING_EXAMPLES) def test_python_exception_matches(code): wanted, line_nr = _get_actual_exception(code) errors = _get_error_list(code) actual = None if errors: error, = errors actual = error.message > assert actual in wanted E AssertionError: assert 'SyntaxError: cannot use named assignment with subscript' in ['SyntaxError: cannot use assignment expressions with subscript'] test/test_python_errors.py:39: AssertionError __________________ test_python_exception_matches[(a(i) := x)] __________________ code = '(a(i) := x)' @pytest.mark.parametrize('code', FAILING_EXAMPLES) def test_python_exception_matches(code): wanted, line_nr = _get_actual_exception(code) errors = _get_error_list(code) actual = None if errors: error, = errors actual = error.message > assert actual in wanted E AssertionError: assert 'SyntaxError: cannot use named assignment with function call' in ['SyntaxError: cannot use assignment expressions with function call'] test/test_python_errors.py:39: AssertionError __________________ test_python_exception_matches[(a.b := c)] ___________________ code = '(a.b := c)' @pytest.mark.parametrize('code', FAILING_EXAMPLES) def test_python_exception_matches(code): wanted, line_nr = _get_actual_exception(code) errors = _get_error_list(code) actual = None if errors: error, = errors actual = error.message > assert actual in wanted E AssertionError: assert 'SyntaxError: cannot use named assignment with attribute' in ['SyntaxError: cannot use assignment expressions with attribute'] test/test_python_errors.py:39: AssertionError _____ test_python_exception_matches[[(i.i:= 0) for ((i), j) in range(5)]] ______ code = '[(i.i:= 0) for ((i), j) in range(5)]' @pytest.mark.parametrize('code', FAILING_EXAMPLES) def test_python_exception_matches(code): wanted, line_nr = _get_actual_exception(code) errors = _get_error_list(code) actual = None if errors: error, = errors actual = error.message > assert actual in wanted E AssertionError: assert 'SyntaxError: cannot use named assignment with attribute' in ['SyntaxError: cannot use assignment expressions with attribute'] test/test_python_errors.py:39: AssertionError ________________ test_python_exception_matches[(await a := x)] _________________ code = '(await a := x)' @pytest.mark.parametrize('code', FAILING_EXAMPLES) def test_python_exception_matches(code): wanted, line_nr = _get_actual_exception(code) errors = _get_error_list(code) actual = None if errors: error, = errors actual = error.message > assert actual in wanted E AssertionError: assert 'SyntaxError: cannot use named assignment with await expression' in ['SyntaxError: cannot use assignment expressions with await expression'] test/test_python_errors.py:39: AssertionError _______________ test_python_exception_matches[((await a) := x)] ________________ code = '((await a) := x)' @pytest.mark.parametrize('code', FAILING_EXAMPLES) def test_python_exception_matches(code): wanted, line_nr = _get_actual_exception(code) errors = _get_error_list(code) actual = None if errors: error, = errors actual = error.message > assert actual in wanted E AssertionError: assert 'SyntaxError: cannot use named assignment with await expression' in ['SyntaxError: cannot use assignment expressions with await expression'] test/test_python_errors.py:39: AssertionError This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle. Changing version to 32. Carl, could you please have look and report this upstream if needed? Thanks. Setting the severity to high. This package is part of the initial bootstrap sequence. Without it, we cannot proceed with the bootstrap in a Koji side tag. https://fedoraproject.org/wiki/Changes/Python3.9#Important_dates_and_plan The current plan is to follow the "ideal point when we can start rebuilding in Koji" -- that is we need to get this bug fixed approximately in 2 months. That includes potential uncovered bugs in packages that depend on this one. Please knowledge that you have read this message and that you can dedicate time to fix it. If you know already that you won't be able to fix it by the deadline, please let us know ASAP, so we can allocate resources to do that. Thank You. (This comment is posted to multiple Bugzillas, please forgive me if it's not 100% accurate.) It was also failing to build on Rawhide with Python 3.8.2. I was able to track down this error to an upstream issue. I was able to sort it out by updating to the latest version and adding a patch for an upstream commit right after that version. https://github.com/davidhalter/parso/issues/103 https://github.com/davidhalter/parso/commit/0234a70e95199d4b9bb257d9ea7a5fcb8baa8c91 This fixed building against Python 3.8.2 in Rawhide as well as 3.9.0~a4 in the @python/python3.9 COPR. https://bodhi.fedoraproject.org/updates/FEDORA-2020-261d3eca01 Awesome, thanks! |