Releases: syn54x/ferro-orm
v0.5.0
v0.5.0 (2026-04-28)
Bug Fixes
-
ci: Make cargo test link against libpython by gating extension-module (
e3b013e) -
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
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: 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
-
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
v0.3.4
v0.3.4 (2026-04-25)
Bug Fixes
- Serialize UUID M2M query contexts (
f53b3ca)
Chores
Documentation
- Add backend guide (
78f1e29)
Refactoring
- Replace Any backend with typed engine (
71628a7)
Testing
Detailed Changes: v0.3.3...v0.3.4
v0.3.3
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
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
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
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
- Remove doc (
16e4028)
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
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
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
Full Changelog: v0.1.0...v0.1.1