plain-passwords changelog

0.23.4 (2026-02-26)

What's changed

  • Auto-formatted config files with updated linter configuration (028bb95c3ae3)

Upgrade instructions

  • No changes required.

0.23.3 (2026-02-12)

What's changed

  • Updated README examples to use UniqueConstraint instead of unique=True on email fields (9db8e0aa5d43)
  • Updated login form template example to use headless form rendering instead of csrf_input and as_elements() (9db8e0aa5d43)

Upgrade instructions

  • No changes required.

0.23.2 (2026-02-04)

What's changed

  • Removed @internalcode decorator from utility functions (urlsafe_base64_encode, urlsafe_base64_decode, unicode_ci_compare) (e7164d3891b2)

Upgrade instructions

  • No changes required.

0.23.1 (2026-01-28)

What's changed

Upgrade instructions

  • No changes required.

0.23.0 (2026-01-22)

What's changed

  • Removed db_column, db_collation, and db_comment parameters from PasswordField type stubs to match upstream plain-models changes (eed1bb6, 49b362d)

Upgrade instructions

  • No changes required.

0.22.0 (2026-01-13)

What's changed

  • Expanded README documentation with comprehensive coverage of password hashing, validation, views, and forms (da37a78)

Upgrade instructions

  • No changes required

0.21.0 (2026-01-13)

What's changed

  • Updated BadRequestError400 import to use new location in plain.http instead of plain.exceptions (b61f909)

Upgrade instructions

  • No changes required

0.20.0 (2026-01-13)

What's changed

  • Updated to use renamed RedirectResponse class (previously ResponseRedirect) (fad5bf2)
  • Updated to use renamed BadRequestError400 exception (previously BadRequest) (5a1f020)

Upgrade instructions

  • No changes required

0.19.1 (2025-12-22)

What's changed

  • Updated type annotations for improved type checker compatibility (539a706)

Upgrade instructions

  • No changes required

0.19.0 (2025-12-04)

What's changed

  • Improved type annotations for CommonPasswordValidator and password views (ac1eeb0)

Upgrade instructions

  • No changes required

0.18.0 (2025-11-24)

What's changed

  • Password views now inherit from AuthView instead of using AuthViewMixin for better type checking support (569afd6)

Upgrade instructions

  • No changes required

0.17.1 (2025-11-20)

What's changed

  • Improved type annotations for better compatibility with type checkers (a43145e)

Upgrade instructions

  • No changes required

0.17.0 (2025-11-13)

What's changed

  • Added typed PasswordField for better IDE and type checker support when using type annotations in model definitions (dc1f9c4)

Upgrade instructions

  • No changes required

0.16.0 (2025-11-12)

What's changed

  • BasePasswordHasher now inherits from ABC and uses @abstractmethod decorators for better type checking and enforcement (4f2d1d4)
  • Improved type annotations and fixed type checker warnings throughout the package (f4dbcef)

Upgrade instructions

  • No changes required

0.15.1 (2025-10-31)

What's changed

  • Added BSD-3-Clause license metadata to package configuration (8477355)

Upgrade instructions

  • No changes required

0.15.0 (2025-10-07)

What's changed

  • Updated internal model metadata access to use _model_meta instead of _meta (73ba469)

Upgrade instructions

  • No changes required

0.14.0 (2025-10-06)

What's changed

  • Removed unused password hashers (PBKDF2SHA1PasswordHasher, Argon2PasswordHasher, BCryptSHA256PasswordHasher, BCryptPasswordHasher, and ScryptPasswordHasher) - only PBKDF2PasswordHasher remains (a9acb74)
  • Added comprehensive type annotations throughout the package for better IDE support and type checking (a9acb74)

Upgrade instructions

  • If you were using a non-default password hasher (pbkdf2_sha1, argon2, bcrypt_sha256, bcrypt, or scrypt), you'll need to implement your own custom hasher class or migrate existing passwords to use the default PBKDF2PasswordHasher
  • If you have custom code that referenced the removed hasher classes, you'll need to update those imports

0.13.0 (2025-10-02)

What's changed

  • Password views now inherit from AuthViewMixin and use self.user and self.session properties instead of accessing them through self.request (154ee10)

Upgrade instructions

  • If you have custom views that inherit from PasswordResetView, PasswordChangeView, or PasswordLoginView, update any references to self.request.user to use self.user and self.request.session to use self.session

0.12.0 (2025-09-19)

What's changed

  • Replaced custom constant_time_compare utility with Python's built-in hmac.compare_digest for better security and performance (55f3f55)

Upgrade instructions

  • No changes required

0.11.0 (2025-09-12)

What's changed

  • Database queries now use .query instead of .objects (037a239)
  • Minimum Python version updated to 3.13 (d86e307)
  • Updated package description and README formatting (4ebecd1)

Upgrade instructions

  • Update any custom code that references User.objects to use User.query instead

0.10.0 (2025-07-22)

What's changed

  • Updated password reset token generation and validation to use user.id instead of user.pk (4b8fa6a)

Upgrade instructions

  • No changes required

0.9.2 (2025-06-24)

What's changed

  • Added an initial CHANGELOG.md to the package so future updates are easier to track (82710c3)

Upgrade instructions

  • No changes required