Skip to content

chore: release 0.19.0 - #191

Merged
SizzleUnrlsd merged 4 commits into
mainfrom
release/0.19.0
Sep 29, 2026
Merged

SizzleUnrlsd merged 4 commits into
mainfrom
release/0.19.0

Conversation

@SizzleUnrlsd

@SizzleUnrlsd SizzleUnrlsd commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Release 0.19.0: distinct modules for files sharing a Python module name (#182), project template filter overrides (#183), module-level TEMPLATES only (#184), {{ block.super }} (#185), declared entry points through module-level aliases (#188), and ModuleFunction.aliases for project plugins (#192). The Enterprise plugins pin it next; their serverless-declarations integration builds on the alias resolution and on that field.

Analysis

  • Two files with the same Python module name no longer overwrite each other: both are analysed and covered, told apart by their path from the root; an import of a shared name resolves in the importer's own root only. Each colliding file carries an ambiguous-module note and is covered as ambiguous, which keeps a VEX statement under_investigation.

Precision

  • Only a module-level TEMPLATES assignment counts as Django settings for the request context processor.
  • A block rendering {{ block.super }} keeps the parent block's filters in the render context flow.
  • A project tag library registering a filter of a built-in's name replaces it in the templates loading it; a library the engine cannot find or read leaves the filter uncertain, listed among the unread templates.

Plugins

  • An EntryPoint naming a project function or class applies through a module-level alias of it (main = actual); a model naming a method wins over one naming its class.
  • ModuleFunction.aliases gives a project plugin the module-level names bound to a function, so an integration declaring a handler by the name a module binds can report a name the engine resolves to no function. The cache format becomes 11.

Changes

Verification

tests/test_release.py and tests/test_docs.py: 7 passed. Full suite under Python 3.14.5, regression corpus excluded: 1533 passed, 2 skipped, 19 deselected in 39.98s. ruff check passes. The regression corpus ran green on main at ea13376, the code this release ships.

@SizzleUnrlsd SizzleUnrlsd added the chore Maintenance: releases, build, CI and refactoring label Sep 29, 2026
@SizzleUnrlsd SizzleUnrlsd self-assigned this Sep 29, 2026
ModuleFunction.aliases lists the module-level names bound to a function by assigning one name to another, transitively and in source order, computed with the walk the entry-point matching uses so both agree. An integration declaring a handler by the name a module binds can then report a name the engine resolves to no function. The cache encodes the aliases and its format becomes 11.
@SizzleUnrlsd
SizzleUnrlsd merged commit 9b23a6d into main Sep 29, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance: releases, build, CI and refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant