djust docs
Browse documentation
reference

Upgrading to djust 1.0

What the djust 1.0 SemVer commitment means for a 0.9.x app, the deprecated symbols, and the new accessibility checks. 1.0 is a consolidation release with no breaking changes from 0.9.7.

On this page

TL;DR: djust 1.0 is a consolidation release. There are no breaking changes from 0.9.7 — if your app runs on 0.9.7, it runs on 1.0 unchanged. The headline of 1.0 is a promise, not a migration: starting at 1.0.0, code written against djust's public API keeps working across every 1.x release.

1.0 is a consolidation release

There is nothing to migrate. 1.0 caps the v0.9.x audit-driven bake — an API-stability policy, a framework-wide accessibility pass, and a pre-1.0 security sweep — without changing any public behavior. Bump your dependency and run your test suite; that is the whole upgrade.

What 1.0 means: the SemVer commitment

The 0.x series carried no stability guarantee — per SemVer, pre-1.0 versions make no promise, and djust used that latitude. The commitment takes effect at 1.0.0:

  • A symbol in djust's public API surface is never removed or changed incompatibly in a MINOR or PATCH release. Breaking a public symbol is a MAJOR-only change.
  • New public symbols may be added in any MINOR release (additive changes are backward-compatible).
  • Anything underscore-prefixed, or reachable only by reaching into a submodule, is internal and may change at any time.

For the full definition of the public API surface, see docs/API_STABILITY.md and the API Stability & Deprecations guide.

Deprecated symbols

Three symbols are deprecated as of 0.9.7. All three still work — they are still present in 1.2 — and each carries the 0.x carve-out removal floor of >= 1.1.0: removal is allowed no earlier than 1.1.0 and will be announced in the CHANGELOG. Nothing was removed in 1.0 itself.

SymbolUse insteadRemoved no earlier than
@event decorator@event_handler1.1.0
LiveViewFormdjango.forms.Form (form reactivity comes from FormMixin on the LiveView)1.1.0
_legacy theming module (THEMES, get_theme(), list_themes())DESIGN_SYSTEMS / get_design_system / get_all_design_systems from djust.theming.theme_packs1.1.0

Each migration is mechanical — see docs/API_STABILITY.md § "Currently Deprecated Symbols" for before/after code for every symbol.

New in the 1.0 line: accessibility system checks

djust 1.0 ships the Y (accessibility) category of Django system checks (Y001, Y002). When you run manage.py check, they scan your templates for common accessibility gaps.

  • They emit warnings only — they never fail manage.py check.
  • They are suppressible like any Django check (via SILENCED_SYSTEM_CHECKS).

See the Accessibility guide for the full check list and remediation guidance.

Action items

  1. Bump your djust dependency to 1.0.x and run your test suite — nothing should change.

  2. Surface any deprecated-symbol usage before a later release removes it:

    python -W always::DeprecationWarning manage.py check
    

    This prints every deprecation warning instead of only the first one per location, so each @event / LiveViewForm / _legacy theming call site shows up. (-W error::DeprecationWarning stops at the first warning, djust's or any other library's, so you'd have to fix and re-run until clean.)

  3. Migrate any flagged symbols soon — they still work today, but removal is allowed from 1.1.0 onward and will be announced in the CHANGELOG.