Skip to content

v0.150.1ยค

2026-06-01

Fixยค

  • Template expression errors now point at the correct source line in debug mode

    Multi-node template expressions (e.g. value="prefix {{ x }}" passed to a component) are wrapped in an internal StringifiedNode node that previously carried no template origin. As a result, Django's debug-mode traceback annotator could not locate the failing source line. The host template's origin is now threaded through to these nodes, so errors raised inside such expressions are annotated against the correct template file.

    See #1597 and #1635.

  • @djc_test no longer re-executes already-imported component modules between tests

    The fixture used to pop every autodiscovered module from sys.modules at teardown. Now, the teardown snapshots sys.modules at setup and only clears modules the test brought in itself.

    See #1598 / #1630.

  • Fixed a component cache memory leak

    See #1648.

Refactorยค

  • ComponentRegistry.register() raises AlreadyRegistered on any replacement

    Previously register() silently overwrote an existing entry whenever the old and new classes had the same class_id. Now, different classes under the same name now raise AlreadyRegistered, and must call registry.unregister(name) first. Re-registering the exact same class object is still a no-op.