Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update setuptools requirements #549

Merged
merged 1 commit into from Mar 2, 2021
Merged

update setuptools requirements #549

merged 1 commit into from Mar 2, 2021

Conversation

jugmac00
Copy link
Member

@jugmac00 jugmac00 commented Feb 20, 2021

setuptools is now pinned to <52.

setuptools version 52 broke support for easy_install
https://github.com/pypa/setuptools/blob/main/CHANGES.rst#breaking-changes-1

info below is now invalid

setuptools>=42.0.1 is necessary so buildout can download e.g. latest
versions of `cryptography`, possibly related to
https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst#34---2021-02-07
also see
https://github.com/pypa/setuptools/blob/main/CHANGES.rst#v4201

This fixes #543

@jugmac00
Copy link
Member Author

Hm....

ez_setup.py is deprecated and when using it setuptools will be pinned to 33.1.1 since it's the last version that supports setuptools self upgrade/installation, check https://github.com/pypa/setuptools/issues/581 for more info; use pip to install setuptools

This does not fit well with setuptools is now pinned to >=42.0.1 and <52..

On the other hand, ez_setup.py is only used for the dev setup.

Anyway, if version 3 alpha is in a working state, we should push forward to use it and fix possible edge case, instead of putting too much effort into the 2.13 line.

@mgedmin
Copy link
Member

mgedmin commented Feb 21, 2021

On the other hand, ez_setup.py is only used for the dev setup.

I hope I'm not misrepresenting anything, but Jim Fulton's goal for zc.buildout was to make it usable for clean non-system Python installations that don't have any 3rd-party packages (like setuptools) installed. That was the job of bootstrap.py and it's dev-only equivalent dev.py. (Unfortunately I don't remember what the exact difference between these two scripts was.)

Things in the ecosystem have changed sufficiently that we dropped bootstrap.py and now expect the users to already have a working pip that they can use to install zc.buildout. I think it may be time to consider retiring dev.py as well.

(Of course the devil is in the details.)

@icemac
Copy link

icemac commented Feb 22, 2021

I do not feel competent to review this PR.

@icemac icemac requested review from jamadden and removed request for icemac February 22, 2021 07:30
Copy link

@StefanRijnhart StefanRijnhart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can confirm setuptools needs to be pinned < 52.

@idgserpro
Copy link

idgserpro commented Feb 23, 2021

Is 2.x branch planning to still support Python 2, as set in classifiers? The last setuptools release that supports Python 2 is 44.1.1 (check https://setuptools.readthedocs.io/en/latest/history.html#v45-0-0)

@jugmac00
Copy link
Member Author

jugmac00 commented Feb 23, 2021

Is 2.x branch planning to still support Python 2, as set in classifiers? The last setuptools release that supports Python 2 is 44.1.1 (check https://setuptools.readthedocs.io/en/latest/history.html#v45-0-0)

As long as setuptools uses python_requires we should be fine I guess.

And concerning the Python 2 support - @jamadden indicated that also buildout 3 will /should support Python 2.

@mauritsvanrees
Copy link
Member

The pin of less than 52 seems good.

Minimum 42.0.1 seems reasonable. But is it really needed? Most packages can be installed with much older setuptools versions. If someone wants cryptography 3.4+ and gets an error installing it, then it is their responsibility to use a newer setuptools.
I am just saying: this minimum pin may make life easier for a few, but may make it harder for others who need or want to keep using an older setuptools for whatever reason. For starters, 42.0.0 has major breaking changes.

setuptools is now pinned to <52.

setuptools version 52 broke support for easy_install
https://github.com/pypa/setuptools/blob/main/CHANGES.rst#breaking-changes-1
@jugmac00
Copy link
Member Author

jugmac00 commented Mar 2, 2021

@mauritsvanrees Thanks for your review - I updated the version pin accordingly.

I still think it is a frustrating experience to install a package which leads to a broken environment, but on the other hand, I can fix it by changing the version in my versions.cfg.

On the other hand, if we followed my proposal, and for some "reasons" somebody needs e.g. setuptools 9, there would be no way to fix it - except pinning down buildout...

So, let's get this merged and look forward to buildout 3!

Copy link
Member

@mauritsvanrees mauritsvanrees left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants