Skip to content

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 01 Jun 20:12
· 6 commits to main since this release
bfa952d

Added

  • admin.form_spec + admin.form_submit tools (#70).
    admin.form_spec(app_label, model_name, pk=None, query={}) returns the
    ModelAdmin-resolved form for a row (or the add page when pk is
    omitted) — request-aware get_form / get_fieldsets /
    get_readonly_fields, with each field's resolved widget mapped to a
    closed widget.kind enum. admin.form_submit(…, data, query={})
    re-runs is_valid() server-side through the same resolved form, so
    request-aware validation is identical across MCP, the SPA, and the
    legacy admin. Both forward through to rest-api's form-spec endpoint
    and write views, so the payload is byte-identical to the SPA's — one
    resolver, no drift.

Changed

  • Bumped the django-admin-rest-api floor to ^1.4.0, which ships
    the form-spec endpoint the two new tools forward to (#70).

Fixed

  • __version__ no longer drifts from the packaged version (#62).
    It is now derived from the installed package metadata via
    importlib.metadata.version, so manifest.server_info() (and the MCP
    initialize block) always advertise the real release version instead
    of a hand-maintained string that had fallen to 1.0.4.

Changed

  • Consolidated the Python lint stack on Ruff + mypy + bandit (#63).
    Removed Black, standalone isort, flake8, and pylint (their config
    blocks, dev dependencies, pre-commit hooks, and CI steps). Ruff now
    owns linting, formatting, and import sorting (I); the lockfile,
    scripts/lint.sh, and the docs are updated to match.
  • Enabled mypy --strict (#64). Fixed the two no-any-return
    errors at the dispatch seam (server/dispatch.py) by casting the
    resolver view callable and the synthetic RequestFactory request to
    their concrete Django types.
  • Future-proofed the dispatcher except clause (#67). Dispatcher
    exceptions now share a DispatchError base; the view catches that
    base so any new dispatcher failure mode maps to SERVER_ERROR_UPSTREAM
    instead of escaping to a Django 500.

Removed

  • Deprecated default_app_config from the package __init__ (#65).
    It was removed in Django 4.1 and this package supports Django >=4.2,
    where apps.py is auto-discovered.
  • Inert # noqa directives (A003, D401) that suppressed rules no
    configured tool enforces (#68); the explanatory text is kept as plain
    comments.