Bug 2368703

Summary: pylint fails to build with Python 3.14: AssertionError tests/test_functional.py::test_functional
Product: [Fedora] Fedora Reporter: Karolina Surma <ksurma>
Component: pylintAssignee: Gwyn Ciesla <gwync>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: fti-bugs, gwync, jkonecny, ksurma, mhroncok, nixuser, orion, tbzatek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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: 2322407, 2339432, 2339435, 2371705, 2371774, 2371933, 2372037, 2372061, 2372100, 2372232, 2371756    

Description Karolina Surma 2025-05-27 08:43:23 UTC
pylint fails to build with Python 3.14.0b1.

I backported https://github.com/pylint-dev/pylint/pull/10385
and got down to 13 failed tests:

FAILED tests/config/pylint_config/test_pylint_config_help.py::test_pylint_config_main_messages
FAILED tests/test_functional.py::test_functional[continue_in_finally] - Asser...
FAILED tests/test_functional.py::test_functional[typing_broken_callable] - As...
FAILED tests/test_functional.py::test_functional[typing_broken_callable_future_import]
FAILED tests/test_functional.py::test_functional[typing_consider_using_union]
FAILED tests/test_functional.py::test_functional[typing_consider_using_union_py310]
FAILED tests/test_functional.py::test_functional[typing_consider_using_union_without_future]
FAILED tests/test_functional.py::test_functional[function_redefined_2540] - A...
FAILED tests/test_functional.py::test_functional[generic_alias_collections]
FAILED tests/test_functional.py::test_functional[generic_alias_mixed_py39] - ...
FAILED tests/test_functional.py::test_functional[generic_alias_typing] - Asse...
FAILED tests/test_functional.py::test_functional[lost_exception] - AssertionE...
FAILED tests/test_functional.py::test_functional[return_in_finally] - Asserti...

Upstream is aware and new commits with support for Python 3.14 arrive, but no release has been issued yet.

https://docs.python.org/3.14/whatsnew/3.14.html

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.14-b1/fedora-rawhide-x86_64/09081322-pylint/

For all our attempts to build pylint with Python 3.14, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.14-b1/package/pylint/

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.14:
https://copr.fedorainfracloud.org/coprs/g/python/python3.14-b1/

Let us know here if you have any questions.

Python 3.14 is planned to be included in Fedora 43.
To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.14.
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 Karolina Surma 2025-06-11 15:55:31 UTC
*** Bug 2371781 has been marked as a duplicate of this bug. ***

Comment 2 Miro Hrončok 2025-06-16 12:51:05 UTC
A reminder that packages that are not linters or linter plugins etc. should not BuildRequire pylint.

https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters

Comment 3 Tomáš Bžatek 2025-06-16 15:42:41 UTC
(In reply to Miro Hrončok from comment #2)
> A reminder that packages that are not linters or linter plugins etc. should
> not BuildRequire pylint.
> 
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters

Thanks for reiterating this, Miro, saved me a lot of time searching for the guidelines :-)