Closed wsmith323 closed 4 years ago
Thumps up for visibility
Sorry, Python 2.7 is no longer supported. (It's EOL.) Please pin to 1.0.3 until you are able to upgrade Python.
AFAIK, django-appconf has not officially dropped Python 2.7 support.
Yes, we dropped support, and declared that by removing the appropriate trove classifiers.
Please see the declared support: https://pypi.org/project/django-appconf/
I think you should update setup.py to require Python 3+ only as mentioned here: https://packaging.python.org/guides/distributing-packages-using-setuptools/#python-requires
Version 1.0.4 is still installable with Python 2 and it shouldn't be.
Guys, this is not professional at all. You are breaking environments of people who were using your library and still on Python2. And now as a solution, you just advise to pin the version. You SHOULD NOT push python2 incompatible changes to PyPy as py2 wheel then! If you would do it only for py3, then nobody would complain. Please update your version in PyPy and remove py2 wheel.
If you folks want to make a PR adjusting the python requires and the wheel setting I can push a new version. You can bump the version to 1.1.0 if that helps you.
Reality is we have folks pushing for declared support on latest versions and we can't check compat with EOL Pythons. TBH If you're using EOL Python you should expect to pin dependencies.
PR in #67 removes the classifiers, however, the presence of the 1.0.4 package is going to continue to give Python 2 users grief.
The course of action would be to revert all changes introduced by 1.0.4 and release that as 1.0.5, then revert the revert, apply this PR, and then bump the major version number to 2.0.0 and make a release to declare Python 3 support only.
Declare python3 only via python_requires
per https://packaging.python.org/guides/dropping-older-python-versions/, not just with classifiers
Going to pin this for now, but django-appconf
is not a direct dependency of the project, it's pulled in from other packages. Pinning non-direct dependencies is not ideal.
Same, encountering this issue because django-appconf is a dep of another dep.
Major breaking changes (like v1.0.3 supports python v2 but v1.0.4 doesn't) should have been done in a v2.0.0 instead of v1.0.4, following semantic versioning)
Maybe people upgraded this minor version without knowing it would break on Python 2. It's your responsability to avoid those kinds of things TBH.
My project was built a few years ago and I can't upgrade python version to 3. That leads to many bugs.
And django-appconf
is not a direct dependency. So how can i pin django-appconf
to 1.0.3 and reflect to requirements.txt in order to avoid such errors?
@HawkofSky make django-appconf
a direct dependency: pip install django-appconf==1.0.3
thanks @thoward27 so can i add django-appconf==1.0.3
to requirements.txt at the end?
If so, pip install django-appconf==1.0.3
would remove updated version and install 1.0.3
?
Version 1.0.4 introduces a Python 2.7 compatibility bug. AFAIK, django-appconf has not officially dropped Python 2.7 support. The PR that introduced the bug is https://github.com/django-compressor/django-appconf/pull/57. The bug is on line 107 of base.py, where the metaclass is declared. The Python 2.7 compatible code (using six) was replaced with code that only works in Python 3.
I have added PR https://github.com/django-compressor/django-appconf/pull/60 to fix it.