Skip to content

Releases: syn54x/ferro-orm

v0.5.0

28 Apr 14:17

Choose a tag to compare

v0.5.0 (2026-04-28)

Bug Fixes

  • ci: Make cargo test link against libpython by gating extension-module (e3b013e)

  • fk: Address P2/P3 review findings (#32, 0ea6e02)

  • raw: Make raw SQL tests pass on Postgres backend matrix (#31, 7b3c5e6)

  • schema: Align Alembic single-column index names with Rust DDL (#32, 5e3211f)

Chores

  • Refresh uv.lock and persist code-review artifacts (#32, 54e2cad)

Code Style

  • Ruff format touched files (bbfda46)

Documentation

  • Add AGENTS.md invariants and seed docs/solutions/ (#32, 8b0af7f)

  • fk: Document ForeignKey(index=True) and add CHANGELOG entry (#32, 625a3f2)

  • orm: Document ferro_composite_indexes and reverse_index (5ce3abe)

  • raw: Add raw SQL API page, guide section, CHANGELOG entry (#31, 4b4699f)

Features

  • alembic: Emit sa.Index for ferro_composite_indexes groups (a0c8176)

  • fk: Accept index kwarg on ForeignKey (#32, ec39efe)

  • fk: Propagate ForeignKey.index onto shadow column property (#32, 6d0f1f6)

  • fk: Warn on redundant ForeignKey(unique=True, index=True) (#32, 3b311d7)

  • orm: Add ferro_composite_indexes validation and schema injection (18f3b37)

  • raw: Add ferro.execute/fetch_all/fetch_one with _marshal (#31, 944df61)

  • raw: Add python_to_engine_bind_value helper for raw SQL binds (70bbbd3)

  • raw: Transaction() yields Transaction handle for tx-bound raw SQL (#31, 226b575)

  • raw: Wire raw_execute/raw_fetch_all/raw_fetch_one through PyO3 (#31, d31b580)

  • relations: Add reverse_index opt-out for default M2M join tables (f1491df)

  • rust: Emit non-unique CREATE INDEX for ferro_composite_indexes (e8b2d06)

Testing

  • Add cross-emitter DDL parity sentinel (#32, e0ccc1a)

  • Red test for ForeignKey(index=True) shadow column index (#32, 2bbedc5)

  • fk: Regression guards for FK index default and nullable interaction (#32, 8f6a48d)

  • fk: Runtime DDL parity for ForeignKey(index=True) (#32, 99d39f3)

  • orm: Cover common composite-index use cases (b53643f)

  • orm: Cover composite indexes on Postgres catalog (13bc21f)

  • orm: Cover composite indexes with UUID/enum columns and autogen idempotence (a2ec4a5)

  • orm: Cover composite-index overlap with composite-uniques (24b7481)

  • raw: Cover active-tx ContextVar pickup for top-level execute (#31, 3f7a2e4)

  • raw: Cover fetch_all/fetch_one shape and read-your-writes (#31, 8b4058c)

  • raw: Cover invalid-SQL surface and savepoint rollback (#31, a03a398)

  • raw: Cover Postgres RLS set_config/current_setting use case (#31, 4243123)

  • raw: Cover UUID/datetime/Decimal/Enum/dict bind types (#31, 217d8b4)

  • relations: Cover M2M reverse_index live catalog and edge cases (9aa9740)

  • rust: Fix composite-index unit-test assertions for sea-query output (5c1ada1)

  • rust: FK column with index flag still emits CREATE INDEX (#32, 1eca573)


Detailed Changes: v0.4.0...v0.5.0

v0.4.0

27 Apr 14:42

Choose a tag to compare

v0.4.0 (2026-04-27)

Bug Fixes

  • Correct BackRef type hinting for all/first (6171923)

Features

  • Redesign relationship declarations (911e77d)

Detailed Changes: v0.3.4...v0.4.0

v0.3.4

25 Apr 18:30

Choose a tag to compare

v0.3.4 (2026-04-25)

Bug Fixes

  • Serialize UUID M2M query contexts (f53b3ca)

Chores

  • Gitignore .worktrees/ for local worktrees (142cd3f)

  • Update lock file (fa1c003)

Documentation

Refactoring

  • Replace Any backend with typed engine (71628a7)

Testing

  • Add local Postgres test provider (f8601a5)

  • Harden bridge-boundary coverage (f1a6064)


Detailed Changes: v0.3.3...v0.3.4

v0.3.3

24 Apr 18:52

Choose a tag to compare

v0.3.3 (2026-04-24)

Bug Fixes

  • Cast NULL and strings to ::uuid for Postgres using catalog (f5cb4f0)

  • Catalog casts for date/timestamp columns on Postgres (95ef5ca)

  • Clean up rebase conflicts with main (716511c)

  • Enum OIDs (a9867be)

  • Postgres native enums on save and StrEnum schema registration (44277e1)

  • Use Postgres SQL dialect when connecting to postgres URLs (c627ac8)

  • postgres: Add dual-db ORM test matrix (1fa657f)

  • postgres: Bind boolean writes as booleans (346441a)

  • postgres: Cast uuid columns to text in SELECT for Any decode (df957c0)

  • postgres: Cast UUID filter params for sqlx Any compatibility (889cf8b)

  • postgres: Decode native enum columns via text cast (1270f9d)

Refactoring

  • Expand db matrix coverage and harden postgres paths (b82f3ac)

  • Multi db architecture with true sqlite and postgres support (459a0c5)

Testing

  • Expand schema constraints into db matrix (24a7f0a)

Detailed Changes: v0.3.2...v0.3.3

v0.3.2

24 Apr 02:10

Choose a tag to compare

v0.3.2 (2026-04-24)

Bug Fixes

  • Move alembic reqs to optional dependencies (87f0e81)

Build System

  • sqlx: Enable rustls TLS for PostgreSQL connections (807fa81)

Chores

  • Sync uv.lock with project version 0.3.1 (c3c9f91)

Continuous Integration

  • Build preflight wheels earlier to fail faster (475c93c)

  • Fix linux-aarch64 wheel builds for ring/rustls asm (5eadddc)

  • Gate release on preflight wheel builds for all platforms (6ec48a2)

  • Restore legacy release workflow (d3ee87c)

Documentation

  • Add Supabase PostgreSQL connection and TLS guidance (b1d61ad)

Detailed Changes: v0.3.1...v0.3.2

v0.3.1

23 Apr 17:50

Choose a tag to compare

v0.3.1 (2026-04-23)

Bug Fixes

  • Alembic autogenerate named SQLAlchemy enums for PostgreSQL (25a00e8)

  • migrations: Align nullable inference with field types (885f0fe)

  • migrations: Propagate ForeignKey(unique=True) to Alembic metadata (#22, 9329e8f)

Continuous Integration

Documentation

  • Prefer Field over FerroField (3385cfa)

Detailed Changes: v0.3.0...v0.3.1

v0.3.0

23 Apr 16:23

Choose a tag to compare

v0.3.0 (2026-04-22)

Bug Fixes

  • Align composite unique index names and harden Alembic/Rust handling (3350481)

  • Refresh Pydantic FieldInfo when reconciling shadow FK types (6cf1ac8)

Chores

Continuous Integration

  • Fix release (249e460)

  • Fix release (888e15e)

  • Fix release (58bb5b2)

  • Reorder release steps to prevent tagging before checks are complete (ad1fd8d)

Documentation

  • Complete documentation restructure and implementation summary (937e75e)

  • Enhance shadow field documentation and clarify relationship resolution process (1d350fd)

Features

  • Composite unique constraints and default M2M pair uniqueness (dc12880)

  • Derive shadow FK types from related PK and reconcile after resolve (d3ae486)

Testing

  • UUID FK save reparenting and bulk_create coverage (6c93cea)

Detailed Changes: v0.2.1...v0.3.0

v0.2.1

20 Apr 23:06

Choose a tag to compare

v0.2.1 (2026-04-20)

Bug Fixes

  • Defer annotations resolution (edd39ab)

Chores

  • Update patch_tags in pyproject.toml to include refactor (36c29a7)

Continuous Integration

  • Fix release & mkdocs publish workflows (630dc7c)

Documentation

  • Restructure documentation following Diátaxis framework (b3c2cde)

  • Update BackRef references and enhance field documentation (baf73ba)

  • Update model field annotations to support optional back references (2044896)

Refactoring

  • Enhance model relationship descriptors and improve field handling (6275ebb)

  • Modularize metaclass new method for easier testing and maintenance (e514b95)

  • Rename BackRelationship to BackRef and add back_ref to Field (d24d32d)

  • Update demo_queries to use BackRef instead of BackRelationship (51799ad)

Testing

  • Update references from BackRelationship to BackRef in test files (60a1d87)

Detailed Changes: v0.2.0...v0.2.1

v0.2.0

14 Feb 05:50

Choose a tag to compare

v0.2.0 (2026-02-14)

Chores

  • .gitignore: Remove src/ferro/fields.py from ignore list (1c46851)

  • changelog: Fix changelog format (579bb10)

Continuous Integration

  • docs: Publish docs site and relax strict commit checks (9b2af96)

  • release: Consolidate changelog and release workflow orchestration (2724bcc)

  • release: Update permissions for publish workflow (02ecf9f)

  • release: Update permissions for publish workflow (d9d7243)

  • release: Update workflows for PyPI Trusted Publishing (75195d5)

Features

  • fields: Add wrapped Field helper for ferro metadata (2795ed9)

Detailed Changes: v0.1.1...v0.2.0

v0.1.1

14 Feb 04:29

Choose a tag to compare

Full Changelog: v0.1.0...v0.1.1