Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1817967 - python-pip-shims fails to build with pip 20.0.x: 'NoneType' object is not callable
Summary: python-pip-shims fails to build with pip 20.0.x: 'NoneType' object is not cal...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: python-pip-shims
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Lumír Balhar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F33FTBFS PYTHON39
TreeView+ depends on / blocked
 
Reported: 2020-03-27 10:52 UTC by Miro Hrončok
Modified: 2020-07-13 06:33 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-07-13 06:33:15 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Miro Hrončok 2020-03-27 10:52:58 UTC
python-pip-shims fails to build with Python 3.9.0a5.

______________________________ test_link_and_ireq ______________________________

    def test_link_and_ireq():
        url = "git+https://github.com/requests/requests.git@2.19.1#egg=requests"
>       link = Link(url)
E       TypeError: 'NoneType' object is not callable

tests/test_instances.py:138: TypeError
______________________________ test_parse_version ______________________________

    def test_parse_version():
>       assert str(parse_version("0.0.1")) == "0.0.1"
E       TypeError: 'NoneType' object is not callable

tests/test_instances.py:178: TypeError
_______________________________ test_pip_version _______________________________

    def test_pip_version():
>       assert str(parse_version(pip_version)) == pip_version
E       TypeError: 'NoneType' object is not callable

tests/test_instances.py:186: TypeError
__________________________________ test_wheel __________________________________

    def test_wheel():
>       w = Wheel("pytoml-0.1.18-cp36-none-any.whl")
E       TypeError: 'NoneType' object is not callable

tests/test_instances.py:325: TypeError

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

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

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 2 Lumír Balhar 2020-04-06 11:16:18 UTC
The problem seems to be caused by incompatibilities between shims 0.3.2 and the latest pip we have in rawhide (20.0.2). Shims 0.3.2 works with pip 19.3.1 but not with 20.0.2.

As Miro pointed out in the PR, we cannot update shims because it might break pipenv. But, how to solve this? We can let pipenv use bundled shims and update this package. Any other possibility?

Comment 3 Miro Hrončok 2020-04-06 11:31:50 UTC
If we use bundled shims, we can as well retire this. The only reason we have this package is pipenv.

I think we have several options:

 - rebundle + retire
 - figure out when the new release of pipenv happens (that uses the new release of shims)
 - backport the fixer

Comment 4 Miro Hrončok 2020-04-06 11:33:55 UTC
Oh, this fails to build with new pip (and not with Python3.9 per se), we can skip the test explaining the reasons. We have done that in the past.

https://koschei.fedoraproject.org/package/python-pip-shims

Comment 5 Miro Hrončok 2020-04-06 11:37:52 UTC
For context, see bz1781891.

Comment 6 Lumír Balhar 2020-04-06 14:54:11 UTC
We discussed it with Patrik and we think that retiring and bundling the shims back to the pipenv is the way to go. Pip-shims depends on pip heavily and if we cannot update it together with pip in Fedora, we should keep the older version bundled with the compatible pip in pipenv. It seems that pipenv might have a new release in foreseeable future and this release might happen also to bundled libraries but this situation will repeat either sooner or later.

Patrik will try to bundle pip-shims back to pipenv and test it with the bundled version and we can then proceed with this change in rawhide.

Comment 7 Miro Hrončok 2020-04-10 17:00:50 UTC
I suggest we wait with the retirement, see https://github.com/pypa/pipenv/pull/4169 -- new pipenv release is probably coming soon.

Comment 8 Lumír Balhar 2020-04-10 18:06:19 UTC
Okay. It wasn't clear that the update of vendored dependencies happens in the next release.

Comment 9 Lumír Balhar 2020-05-07 04:53:24 UTC
pip-shims is required only by pipenv and will be re-bundled back during the update of pipenv so this package can and will be retired then.

Comment 10 Miro Hrončok 2020-05-25 13:02:38 UTC
This comment is mass posted to all bugs blocking the Python 3.9 tracker, sorry if it is not 100 % relevant. When in doubt, please ask.


The Python 3.9 rebuild is in progress in a Koji side tag.

If you fix this bug, please don't rebuild the package in regular rawhide, but do it in the side tag with:

    $ fedpkg build --target=f33-python

The rebuild is progressing slowly and it is possible this package won't have all the required build dependencies yet. If that's the case, please just leave the fix committed and pushed and we will eventually rebuild it for you.

You are not asked to go and try rebuild all the missing dependencies yourself. If you know there is a bootstrap loop in the dependencies, let me know and we can untangle it together.

If you want to test your fix or reproduce the failure, you can still use the Copr repo mentioned in the initial comment of this bug: https://copr.fedorainfracloud.org/coprs/g/python/python3.9/

Comment 11 Miro Hrončok 2020-05-26 11:22:57 UTC
Can we rebuild this without tests for now, before we update pipenv and/or debundle this in pipenv?

It blocks the Python 3.9 rebuild of pipenv.

Comment 12 Lumír Balhar 2020-05-26 11:42:46 UTC
Yes, sure, should I disable the tests in master branch?

Comment 13 Miro Hrončok 2020-05-26 12:15:04 UTC
Yes please. Once done, build in --target=f33-python.

Comment 14 Miro Hrončok 2020-05-29 07:12:18 UTC
Python 3.9 update: The f33-python side tag is currently being merged.

New builds in f33-python are no longer possible, but python3 is not yet updated to Python 3.9 in rawhide. You can check when Python is Python 3.9 with:

    $ koji wait-repo f33-build --build python3.9-3.9.0~b1-3.fc3

And build the packages normally after that.

Comment 15 Lumír Balhar 2020-07-13 06:33:15 UTC
This package is retired in rawhide.


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