🛤 Passlib Roadmap
Overview
Passlib is slowly moving towards 2.0, and with it, there are plans to cleanup (and attempt to simplify) a lot of the internal code. Release 1.7 made some major cleanups to the API, while trying to maintain backwards compatibility. 1.8 will drop python 2 support, shed some low-impact features, and add some slated new ones.
If something here would impact your application, please post a question / feedback on the mailing list!
Upcoming Changes
As a heads-up, developers may be impacted by the following changes planned for future releases:
v1.8
-
⚠ Dropping Python 2.x and Python 3.3 support. See issue #119. -
passlib.context: Removal of long-deprecated
CryptPolicy
class. - passlib.apache: Removal of deprecated v1.5 compatibility methods.
- passlib.ext.django: Split out as separate project, or remove it. See issue #81
-
passlib.handlers: This package contains the actual hasher implementations, and should have been private all along. It will probably be renamed to passlib._hashers (or even relocated to within
passlib.hash
, if that's feasible given the proxy module that currently sits there).
v1.9
- Depending on how v2.0 development pans out, there may be a v1.9 transitional release leading up to it; which would contain deprecation warnings for anything that needs fixing in your application before upgrading to v2.0. In all likelyhood, these warnings will just get rolled into v1.8.
v2.0
-
A large number of deprecated methods and features will be removed; primarily the deprecated
PasswordHash.encrypt
andCryptContext.encrypt
methods. -
passlib.context:
CryptContext
objects will default todeprecated="auto"
, meaning all but the first scheme will be considered deprecated unless explicitly stated otherwise. -
passlib.apache:
HtpasswdFile
will default to apache-2.4 compatible defaults. Forward- & backward- compatibledefault_scheme
settings are available as of Passlib 1.7.
Python Deprecation Policy
The following is a rough guide for when Passlib will drop support for a Python version:
-
When pip or setuptools drops support, Passlib will follow.
-
When tox or virtualenv drops support, Passlib will generally follow, unless there's a particular demand for that python release, and that demand justifies the special handling required for testing.
-
Otherwise general compatibility will be attempted, unless the python version requires specific hacks to the source code, in which case support will be dropped once general usage is low enough.