Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ v0.57.0

**Added:**

* Packages distributed separately from SQLSpec can now ship migrations. Set
``migrations_path`` in an ``extension_config`` entry to point at a directory or
a ``'<dotted.module>:<subdir>'`` specification, and the extension is discovered
and auto-included without appearing in ``include_extensions``.
* Packages distributed separately from SQLSpec can now ship Python migrations.
Set ``migrations_path`` in an ``extension_config`` entry to point at a
directory or a ``'<dotted.module>:<subdir>'`` specification. The extension is
discovered and auto-included without appearing in ``include_extensions``.
* Added ``add_extension_migrations(name, migrations_path, settings=None)`` on
database configurations, for packages that register migrations at runtime
rather than declaratively.
Expand All @@ -35,12 +35,29 @@ v0.57.0
the bundled extensions have no migrations by design, so the warning was noise.
* :func:`sqlspec.utils.module_loader.module_to_os_path` resolves namespace
packages to their search location instead of returning a path named ``None``.
* Compiled wheels now return correct results from :func:`isinstance` and
:func:`issubclass` across SQLSpec class hierarchies. A previous check could
poison a shared abstract-base cache and cause later query-builder execution
to fail.
* Compiled migration runners no longer raise :class:`TypeError` while resolving
the default schema when no configuration is attached.

**Changed:**

* :func:`sqlspec.utils.module_loader.module_to_os_path` raises
:class:`ModuleNotFoundError` rather than :class:`TypeError` when a module
cannot be found, so callers can catch the real condition.
* SQLSpec base classes no longer use ``ABCMeta`` at runtime because mypyc shares
its abstract-base caches across compiled class hierarchies. Static type
checkers still enforce abstract methods. Runtime code should not rely on
``inspect.isabstract()`` or abstract-class instantiation errors for these
bases. ``StatementResult`` remains structurally iterable.

**Known limitations:**

* Extension-owned SQL migration files are discovered but cannot yet resolve
their prefixed named queries. Separately distributed packages should ship
Python migration files for this release.

v0.56.2
------------------------------------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ maintainers = [{ name = "Litestar Developers", email = "hello@litestar.dev" }]
name = "sqlspec"
readme = "README.md"
requires-python = ">=3.10, <4.0"
version = "0.56.2"
version = "0.57.0"

[project.urls]
Discord = "https://discord.gg/litestar"
Expand Down Expand Up @@ -308,7 +308,7 @@ opt_level = "3" # Maximum optimization (0-3)
allow_dirty = true
commit = false
commit_args = "--no-verify"
current_version = "0.56.2"
current_version = "0.57.0"
ignore_missing_files = false
ignore_missing_version = false
message = "chore(release): bump to v{new_version}"
Expand Down
Loading
Loading