Passlib 1.8 dropping support for Python 2.x, 3.3, and 3.4
Last year v1.8 was scheduled to drop support for Python 2.6 & 3.3; leaving only Python 2.7 & >= 3.4 supported (rev 2203d9a89f1c)
But enough factors have lined up, that now aiming to drop Python 2.x support entirely from Passlib 1.8 (rather than delaying that until Passlib 2.0). Additionally at this time, dropping Python 3.4 support as well.
In summary, Passlib 1.8 will require Python >= 3.5
Reasons for dropping 2.x include:
- Maintaining 2/3 compatibility adds complexity; and that complexity has accounted for a non-trivial % of the bugs in the 1.7 series.
- Would like to clean up string encoding on/by Passlib 2.0 (issue #79), and that transition would be eased by removing Python 2 compatibility as a concern before tackling that task.
- Python 2 is officially being sunset, and Pip et al are soon to follow (probably by the time Passlib 1.8 rolls out).
- If demand exists, it shouldn't be too difficult to maintain the 1.7 series as a bugfix-only LTS branch for a while longer. (If so, need to set an end date, maybe 2021-6-1?)
Items that need doing:
- Announce this on homepage, and mailing list.
- Announce this on docs
- Strip out "passlib.utils.compat" if possible
- Track down any explicit encode/decode calls that aren't needed (though some could be handled as part of issue #79 cleanup)
- Remove stray __future__ imports we don't need anymore.
- Remove setup.py py2 support tags; add python_requires clause.