jazzband / django-formtools

A set of high-level abstractions for Django forms
https://django-formtools.readthedocs.io
BSD 3-Clause "New" or "Revised" License
797 stars 135 forks source link

[BUG]: Release 2.2 breaking Python 2.7 #161

Closed s-weigand closed 4 years ago

s-weigand commented 4 years ago

The release from 2h ago is breaking python 2.7 (in my case tests). It is clear that you wanted to deprecate the support for python 2.7 . But for pip to not allow the installation on python 2.7, https://github.com/jazzband/django-formtools/blob/bffb403ceaca78563548dd01d1103373f12c80ac/setup.py#L135 needs to be: "Programming Language :: Python :: 3 :: Only",

"Programming Language :: Python referes to universal python (2 and 3), which caused PyPi to allow the installation of 'django-formtools==2.2' on python 2.7.

Same as https://github.com/jazzband/django-formtools/blob/bffb403ceaca78563548dd01d1103373f12c80ac/setup.cfg#L17 which also should be deleted to prevent mixups, also the meta information in setup.py are more important for PyPi's 'match making' I think.

claudep commented 4 years ago

Can you please check the PR #162?

s-weigand commented 4 years ago

I think for PyPi to get it right, you need to delete that release and rerelease. Because else 2. 2 will still be out there and break py27, since it is the latest py27 'compatible' release.

claudep commented 4 years ago

@timgraham An opinion on this?

timgraham commented 4 years ago

I don't think it's worth the effort to delete and re-release. After all, Python 2 is EOL January 1 and anyone still using it can specify an exact version of django-formtools.

s-weigand commented 4 years ago

The problem I would see is less the actual use case of a user, but testing of packages that get this as pear dependency. That's how I got it (django-cms).

timgraham commented 4 years ago

Sure, but those packages can pin versions (if they aren't dropping Python 2.7 by now...) or users can pin requirements on behalf of those packages. I think asking each package that drops Python 3 and doesn't include the appropriate Trove classifier to re-release is unrealistic.

s-weigand commented 4 years ago

Just mentioning to prevent future issues like this, I think in the wild py27 and it's support (especially for server applications) will survive for quite a while. Due to missing proper admins and/or natural grown structures, which make upgrades complicated, py27 will stick around, and so will the support atleast basic security wise. I. E. Django-cms supports python 2.7 in their latest release from September, I don't know when Django 1.11 LTS support expires. But you are right, in the end each package needs to take care of its dependencies and perdependencies.