v0.150.0

plain-redirection changelog

0.35.7 (2026-06-03)

What's changed

  • Docs: README model-write example updated from .save() to .create() for plain.postgres 0.106.0. (f75deb3ba2)

Upgrade instructions

  • No changes required.

0.35.6 (2026-05-25)

What's changed

  • Internal: model field declarations updated for plain.postgres's new parameterized-descriptor field typing. (229ecdbbfa)

Upgrade instructions

  • No changes required.

0.35.5 (2026-05-05)

What's changed

  • Exposes __version__ from importlib.metadata on plain.redirection for version probes that don't want to scrape pip metadata. (c6cf6edb)

Upgrade instructions

  • No changes required.

0.35.4 (2026-04-30)

What's changed

  • Switched the redirect admin form to use <admin.Submit> so the Save button picks up the new admin-btn admin-btn-primary styling under plain-admin 0.81.0's namespaced classes. (5f86c86fb7e9)

Upgrade instructions

  • If you use plain.admin, upgrade it to >=0.81.0 alongside this release for the namespaced admin- CSS classes referenced by the redirect template.

0.35.3 (2026-04-17)

What's changed

  • Updated Redirect, RedirectLog, and NotFoundLog timestamps to the new create_now / update_now kwargs for plain-postgres 0.96.0. (5d145e4, a44e5ec, 091bac7)

Upgrade instructions

  • Requires plain-postgres>=0.96.0. Run plain postgres sync after upgrading to reconcile column defaults.

0.35.2 (2026-04-14)

What's changed

  • Updated the DeleteLogs chore to the new QuerySet.delete() return type (an int directly instead of a (count, by_label) tuple) from plain-postgres 0.95.0. (29e10dba51d9)
  • Raised plain.postgres floor to >=0.95.0.

Upgrade instructions

  • Requires plain-postgres>=0.95.0.

0.35.1 (2026-03-29)

What's changed

  • Removed AddIndex, AddConstraint, and RemoveConstraint operations from migrations — indexes and constraints are now managed by convergence. (c58b4ba1fec9, 1f15538b008f)
  • Replaced PositiveIntegerField with IntegerField in model and migrations. (738a1efbca59)
  • Updated docs to reference plain postgres sync instead of plain migrate. (b026895edc4c)

Upgrade instructions

  • Requires plain-postgres>=0.91.0.

0.35.0 (2026-03-28)

What's changed

  • Replaced CharField with TextField in models and migration files to match plain-postgres 0.90.0 (5062ee4dd1fd)

Upgrade instructions

  • Requires plain-postgres>=0.90.0
  • Replace CharField with TextField in migration files that reference this package's models

0.34.0 (2026-03-25)

What's changed

  • Added explicit Index on RedirectLog.redirect FK field — replaces the old auto-created index from db_index=True. Migration drops the orphan auto-index and creates the new named index. (061b97f5d538)

Upgrade instructions

  • Requires plain-postgres>=0.89.0. Run uv run plain postgres migrate.

0.33.1 (2026-03-25)

What's changed

  • Renamed indexes to use readable {table}_{column}_idx naming convention, replacing the old truncated hash-based names. Includes a migration with RenameIndex operations (instant ALTER INDEX RENAME, no locks). (74aa8b76aa40)

Upgrade instructions

  • Run plain migrate to apply the index rename migration. This is an instant metadata-only operation with no performance impact.

0.33.0 (2026-03-12)

What's changed

  • Updated all imports from plain.models to plain.postgres in admin, models, and migrations.
  • Updated pyproject.toml dependency from plain.models to plain.postgres.

Upgrade instructions

  • Update imports: from plain.models to from plain.postgres, from plain import models to from plain import postgres.
  • Update dependency declarations: plain.models to plain.postgres in pyproject.toml.

0.32.1 (2026-03-11)

What's changed

  • Added allow_external=True to redirect middleware responses, since database-configured redirects can legitimately target external URLs (5edfb2bedf90)

Upgrade instructions

  • Requires plain>=0.123.0. No other changes required.

0.32.0 (2026-03-06)

What's changed

  • Adapted RedirectionMiddleware to the new middleware API — replaced process_request() with after_response() since this middleware only acts on the response (checking for 404s to redirect). Removed self.get_response() call and simplified imports (9a1477ee8fa8)

Upgrade instructions

  • Requires plain>=0.116.0. No other changes required.

0.31.5 (2026-02-26)

What's changed

  • Removed redundant allow_global_search = False from redirect, redirect log, and not-found log admin views — this is now the default in plain-admin (05d6fa2764)

Upgrade instructions

  • No changes required.

0.31.4 (2026-02-26)

What's changed

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

Upgrade instructions

  • No changes required.

0.31.3 (2026-02-12)

What's changed

  • Fixed missing template_name on Redirect admin CreateView and UpdateView (ee27ad10c407)

Upgrade instructions

  • No changes required.

0.31.2 (2026-02-04)

What's changed

  • Added __all__ export to models module for explicit public API boundaries (f26a63a5c941)

Upgrade instructions

  • No changes required.

0.31.1 (2026-01-28)

What's changed

Upgrade instructions

  • No changes required.

0.31.0 (2026-01-15)

What's changed

  • Admin navigation icons updated to use more distinctive icons: signpost-split for redirects, arrow-repeat for redirect logs, and exclamation-circle for 404 logs (0fc4dd345f)
  • Admin list views for Redirects and 404 logs now include descriptive text to help users understand their purpose (0fc4dd345f)

Upgrade instructions

  • No changes required

0.30.0 (2026-01-13)

What's changed

  • Improved README documentation with better organization, examples, and a consistent structure (da37a78fbb)

Upgrade instructions

  • No changes required

0.29.0 (2026-01-13)

What's changed

  • Updated internal redirect response to use the renamed RedirectResponse class (previously ResponseRedirect) to match the new naming convention in the core framework (fad5bf28b0)

Upgrade instructions

  • No changes required

0.28.0 (2025-12-01)

What's changed

  • Uses new request.client_ip property instead of custom IP detection logic for logging redirects and 404s (cb0bc5d08f)

Upgrade instructions

  • No changes required

0.27.0 (2025-11-21)

What's changed

  • ForeignKey field renamed to ForeignKeyField for consistency with other field types (8010204b36)

Upgrade instructions

  • No changes required

0.26.1 (2025-11-17)

What's changed

  • Model queryset type annotations no longer use ClassVar to resolve type checker issues (1c624ff29e)

Upgrade instructions

  • No changes required

0.26.0 (2025-11-13)

What's changed

  • Model querysets now use ClassVar type annotations for improved type checking support (c3b00a693c)

Upgrade instructions

  • No changes required

0.25.0 (2025-11-13)

What's changed

  • Model fields now use explicit type annotations with plain.models.types field descriptors for improved IDE support and type checking (c8f40fc75a)

Upgrade instructions

  • No changes required

0.24.1 (2025-10-31)

What's changed

  • Added BSD-3-Clause LICENSE file to the package (8477355e65)
  • Added explicit license = "BSD-3-Clause" field to pyproject.toml for improved package metadata (8477355e65)

Upgrade instructions

  • No changes required

0.24.0 (2025-10-22)

What's changed

  • Middleware has been refactored to inherit from HttpMiddleware abstract base class (b960eed6c6)

Upgrade instructions

  • No changes required

0.23.0 (2025-10-17)

What's changed

  • Chores have been rewritten as abstract base classes instead of plain functions (c4466d3c)

Upgrade instructions

  • No changes required

0.22.0 (2025-10-07)

What's changed

  • Model configuration changed from class Meta to _meta descriptor, then to model_options attribute (17a378dc, 73ba469b)

Upgrade instructions

  • No changes required

0.21.1 (2025-10-06)

What's changed

  • Added comprehensive type annotations for improved IDE support and type checking (c87ca27e)

Upgrade instructions

  • No changes required

0.21.0 (2025-09-12)

What's changed

  • Database manager objects attribute renamed to query for all models (037a239e)
  • Admin navigation icons updated to use consistent arrow-right-circle icon (2aac07de)
  • Python 3.13 minimum requirement (d86e307e)

Upgrade instructions

  • Update all model queries from .objects to .query (e.g., Redirect.objects.create() becomes Redirect.query.create(), RedirectLog.objects.all() becomes RedirectLog.query.all())

0.20.1 (2025-08-22)

What's changed

  • Admin navigation icons are now displayed on section headers instead of individual items for improved visual organization (5a6479ac)

Upgrade instructions

  • No changes required

0.20.0 (2025-08-19)

What's changed

  • Added comprehensive README documentation with usage examples, API reference, and installation instructions (4ebecd18)
  • Removed manual CSRF token requirement from admin forms as part of framework-wide CSRF improvements (955150800c)
  • Updated package description in pyproject.toml to "A flexible URL redirection system with admin interface and logging" (4ebecd18)

Upgrade instructions

  • No changes required

0.19.0 (2025-07-23)

What's changed

  • Admin navigation now includes Bootstrap icons for redirect, log, and 404 log sections (9e9f8b0)

Upgrade instructions

  • No changes required

0.18.0 (2025-07-22)

What's changed

  • Database models now use the simplified PrimaryKeyField instead of BigAutoField for primary keys (4b8fa6a)

Upgrade instructions

  • No changes required

0.17.0 (2025-07-18)

What's changed

  • Migration files have been consolidated into a single initial migration (484f1b6).

Upgrade instructions

  • If you have an existing installation with applied migrations, run plain migrate --prune plainredirection to handle the migration consolidation (both in development and production environments).

0.16.2 (2025-06-24)

What's changed

  • No user-facing changes. This release only updates internal CHANGELOG formatting (e1f5dd3, 9a1963d).

Upgrade instructions

  • No changes required