Changelog
All notable changes to this project will be documented in this file. See conventional commits for commit guidelines.
v0.24.0 - 2026-10-06
🐛 Bug Fixes
- (#222) support many-to-many aggregations (#240) - (323e3f5) - @gazorby, Rayan-and-beyond
- (#223) avoid aggregate alias collision with pagination (#238) - (a4b05fc) - @gazorby, Rayan-and-beyond, Rayan-and-beyond
- (#225) honor upsert conflict field filters (#239) - (9073fe0) - @gazorby, Rayan-and-beyond
- (#229) handle false geo null checks (#237) - (394bf25) - @gazorby, Rayan-and-beyond
- (#231) run the geo integration tests in CI (#249) - (e6f7d65) - @gazorby
- (#234) correlate nested aggregates to their own element (#252) - (df94a69) - @gazorby
- (#235) left join the aggregation CTE so childless parents remain (#253) - (274e8e8) - @gazorby
- (#236) make the m2m secondary join structural on laterals (#254) - (624a731) - @gazorby
- (#242) connect to-one relations before the mutation flush (#260) - (c2cab4d) - @gazorby
- (#246) install database drivers in the generic integration session (#263) - (45d57bb) - @gazorby
- (#257) refresh expired to-one keys before connecting the relation (#267) - (57da0ec) - @gazorby, Claude Opus 5 (1M context)
- (#258) match anonymous projection columns by identity (#268) - (f0fd513) - @gazorby, Claude Opus 5 (1M context)
- (#274) force-include columns declared with a bare filter_field() (#278) - (6300a55) - @gazorby, Claude Opus 5.5 (1M context)
- (#275) apply query_hook declared on a root strawchemy.field (#279) - (bfb40ac) - @gazorby, Claude Opus 5.5 (1M context)
- (#276,#277) keep options of body-declared strawchemy fields (#283) - (2c05e7c) - @gazorby
- (#280) map body object-type relation overrides to input types in derived inputs (#300) - (416d876) - @gazorby
- (#281) apply distinct_on on nested to-many relations (#301) - (ac307de) - @gazorby
- (#282) apply relation query hooks inside the relation join (#297) - (eae82e3) - @gazorby
- (#284) generate aggregate filter and order-by inputs for to-many relations only (#293) - (cd542f2) - @gazorby
- (#285) project unselected order-by columns in nested relation subqueries (#294) - (8f2f3c8) - @gazorby
- (#286) deduplicate emulated root distinct_on rows before paginating (#295) - (bdefb20) - @gazorby
- (#287) stop nested relations from inheriting the root default_order_by (#296) - (24a81f6) - @gazorby
- (#288) order relation children by the ORDER BY of their query hooks (#298) - (8730d1c) - @gazorby
- (#289) keep relation query hooks out of filter joins (#299) - (4f7cad5) - @gazorby
- (#290,#291) test to-many relation filters in an EXISTS subquery (#305) - (57f243b) - @gazorby
- (#292) order nested relations by their own relations and aggregates (#306) - (5ab846f) - @gazorby
- (#302) restrict update and delete filters on relations with a correlated exists (#313) - (6b23885) - @gazorby
- (#303) give each alias of a relation its own arguments and join (#314) - (c21cc2f) - @gazorby
- (#304,#308) keep to-many children under a native root distinct_on (#315) - (ddf746d) - @gazorby
- (#309) plan relation joins before the aggregations under them (#326) - (7961ebb) - @gazorby
(#310) read nested relations from the query rows (#322) - (51092f9) - @gazorby
- (#312) apply default limit and offset to nested paginated relations (#321) - (aa56462) - @gazorby
- (#316,#318) read nested selections from the graphql-core AST (#327) - (6b33dbb) - @gazorby
(#317) require the related row to exist in relation filters (#328) - (5ebe85b) - @gazorby
- (#319) expose identity columns in pytest plugin mock rows (#329) - (3dae5fa) - @gazorby
- (#324) skip the NOT null guard on null tests (#336) - (d9430c0) - @gazorby
- (#325) ignore empty order by inputs (#331) - (430c127) - @gazorby
- (#333) ignore empty comparisons under _not (#345) - (cd2841d) - @gazorby
- (#334) match SQLite JSON keys holding null (#346) - (026c6a9) - @gazorby
(#335) negate to-many relation filters with NOT EXISTS (#347) - (8021a20) - @gazorby
(#338,#339,#340) match JSON keys literally on every dialect (#353) - (1798009) - @gazorby
(#341,#343) ignore empty relation filters and _or branches (#352) - (9462f90) - @gazorby
(#342) match no rows for an empty in list (#355) - (99c08db) - @gazorby
(#344) test each _and branch on a to-many relation separately (#354) - (62e1e8d) - @gazorby
- (#348) cast PostgreSQL json columns to jsonb in JSON filters (#358) - (2dbd353) - @gazorby
(#349,#350) ignore null filter operators and split regexp predicates (#360) - (aa31e26) - @gazorby
(#351) ignore filter fields set to null (#359) - (fb82471) - @gazorby
- (#356) order and distinct on PostgreSQL json columns as jsonb (#363) - (9e21725) - @gazorby
(#357) match iregexp and inregexp case-insensitively on the pattern (#364) - (f2ecff7) - @gazorby
(#361) fold non-ASCII case in case-insensitive LIKE operators on SQLite (#370) - (1312fab) - @gazorby
- (#362) allow distinct on with any order by (#369) - (17b94f3) - @gazorby
- (#365) count tied rows one by one in nested limit and offset on SQLite and MySQL (#373) - (171c05f) - @gazorby
(#366) apply query hook ordering before distinct on (#374) - (a4ebee3) - @gazorby
(#367,#368) escape LIKE patterns with backslash and compare case on every dialect (#375) - (2ea0d6e) - @gazorby
- (#371) honour load set as a class attribute on QueryHook subclasses (#380) - (7fae267) - @gazorby
- (#376) run root query hooks only in the root subquery (#381) - (a12aad2) - @gazorby
(#377) validate every key of nested and empty QueryHook relationship load specs (#384) - (e874868) - @gazorby
(#382) reject QueryHook load entries that cannot be loaded (#386) - (524a532) - @gazorby
(#388) check that top-level QueryHook load attributes belong to the hooked model (#389) - (778dd6a) - @gazorby
- (#390) reject root_aggregations on any type that is not a root aggregation type (#392) - (9a088b1) - @gazorby
- (#391) reject strawchemy fields on plain strawberry types at definition (#395) - (e0e81a9) - @gazorby
- (#393) resolve plain strawberry types in postponed strawchemy field annotations (#396) - (cfc2704) - @gazorby
- (#394) skip unresolved types and reject error-only types in field validation (#397) - (273ac1c) - @gazorby
- (#398) give mutation fields mutation descriptions and skip plain types (#403) - (273fccc) - @gazorby
- (#399) use the given dialect in MockContext (#404) - (2f4b0b2) - @gazorby
- (ci) give slotscheck a target so it actually scans strawchemy (#270) - (a421400) - @gazorby, Claude Sonnet 5
- (filters) use portable strftime specifiers for sqlite ISO date filters - (fd55a1c) - @gazorby
- (mutation) reject set+upsert on to-many update (#220) - (19fcb3d) - @gazorby
- (mutations) bind nested relations after validation (#221) - (45174bc) - @gazorby
⚡ Performance
- (#233) reuse hoisted aggregates and drop spurious sort keys (#251) - (8ab8962) - @gazorby
- (#247) hoist every function of a joined aggregation node (#264) - (6a98b83) - @gazorby
- (#259) project only the aggregate functions the selection asks for (#269) - (90a31e8) - @gazorby
- (#311) keep root-column filters out of the relation exists subquery (#320) - (7d9948b) - @gazorby
- (#378) select a hook-loaded column once when the query already selects it (#385) - (2612a6b) - @gazorby
- (transpiler) drop duplicate relation join shared by filter and selection trees (#271) - (b6ec156) - @gazorby, Claude Sonnet 5
🚜 Refactor
- (#232) remove unreachable upsert conflict field filter (#250) - (4600c5a) - @gazorby
- (planner) minor improvements (#273) - (dc97a55) - @gazorby, Claude Sonnet 5, Claude Sonnet 5
- (transpiler) better code comments - (9976901) - @gazorby
- transpiler v2 (#406) - (e19c492) - @gazorby
remove the pytest plugin (#337) - (d1d5bbf) - @gazorby
- upgrade ty to 0.0.81 (#241) - (4391242) - @gazorby
📚 Documentation
- add documentation website (#408) - (bc90fb9) - @gazorby
- remove unreleased section in the middle - (17dfa87) - @gazorby
⚙️ Miscellaneous Tasks
- (mise) add usage - (b9575da) - @gazorby
- (mise) group tasks - (6313156) - @gazorby
- (nox) always download managed python interpreters - (e384798) - @gazorby
- upgrade ty to 0.0.80 (#211) - (19e50e7) - @gazorby
🤝️ Contributors
- Claude Opus 5 (1M context)
- Claude Opus 5.5 (1M context)
- Claude Sonnet 5
- Rayan-and-beyond
- @gazorby
v0.23.1 - 2026-09-12
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.23.0 - 2026-09-12
🚀 Features
- fine-grained aggregation filters (#208) - (4919af1) - @gazorby
- fine grained filters (#199) - (b4e8617) - @gazorby
- add per-field default order by (#196) - (227bc21) - @gazorby
- add field-level alias (#194) - (e8ef6a3) - @gazorby
🐛 Bug Fixes
⚡ Performance
🚜 Refactor
- (inspector) remove sqla private usages (#203) - (6ca2f19) - @gazorby
- (schema) remove duplicated field_map on strawchemy types (#200) - (2f67a26) - @gazorby
- new transpiler (#202) - (e000a8e) - @gazorby
⚙️ Miscellaneous Tasks
- (ci) annotate tags - (bb5398f) - @gazorby
- (deps) extract unasyncd in its own group - (c3cb4d1) - @gazorby
- (labelers) fix quoting - (ff38da3) - @gazorby
- (labelers) support scope - (06e701f) - @gazorby
- (labelers) add perf tag - (8c6bc63) - @gazorby
- (labelers) fix paths - (5c29f01) - @gazorby
- (labelers) fix config paths - (05492c8) - @gazorby
- (mise) add uv in tools - (c7cdc85) - @gazorby
- (pr-labeler) only take pr title into account - (3b36909) - @gazorby
- (workflows) remove redundant generate_release_notes option from release action configuration - (40e080d) - @gazorby
- update changelog template - (66e1337) - @gazorby
- add issue/pr labeler - (a01a527) - @gazorby
- drop bump-my-version and git-cliff in favour of cocogitto (#206) - (84f0a82) - @gazorby
- publish before release to enable immutable releases (#195) - (2b578bd) - @gazorby
🤝️ Contributors
v0.22.0 - 2026-06-10
🚀 Features
- (dto) make database-resolved defaults optional in GraphQL inputs (#193) - (4c20ba3) - @gazorby
- add field groups (#168) - (6b936da) - @gazorby
- auto-generate is_type_of on output types for GraphQL unions/interfaces (#191) - (ba7a3dd) - @gazorby
- add strict mode disallowing graphql-unmappable types (#160) - (c1c673b) - @gazorby
🐛 Bug Fixes
- (dto) preserve user-defined literal defaults in Strawberry DTOs (#188) - (6c1a75a) - @gazorby
- (schema) using override=True twice with the same name/model retains previous config (#173) - (654b352) - @gazorby
- (transpiler) apply
filter_statementbefore pagination (#166) - (3e9bc2b) - @gazorby - using strawberry.lazy (...) break circular refs (#169) - (a3aecc2) - @gazorby
- ensure user-defined relation fiels take precedence over strawchemy generated ones (#167) - (580eac9) - @gazorby
🚜 Refactor
- (lint) update pre-commit ruff config - (5049268) - @gazorby
- (lint) upgrade ruff - (7251dc2) - @gazorby
- (pre-commit) upgrade - (44db5f9) - @gazorby
- upgrade strawberry (#155) - (83b2658) - @gazorby
- mapper api overhaul (#147) - (54392fd) - @gazorby
- update configuration files - (8dd16b5) - @gazorby
- remove ignored files - (79c22bc) - @gazorby
- new project structure (#140) - (1cd116a) - @gazorby
📚 Documentation
⚙️ Miscellaneous Tasks
- (deps) upgrade unsyncd - (41e6fc5) - @gazorby
- (release) bump to v0.22.0 - (b9171fd) - @gazorby
- (renovate) enable rebasing when behind base branch to keep PRs updated - (c6c2d60) - @gazorby
- update skip-duplicate-actions to the official step-security repo (#186) - (6fd5039) - @gazorby
- update codecov action to v7 and specify explicit report types (#185) - (94e9a3a) - @gazorby
🤝️ Contributors
v0.21.0 - 2025-12-18
🚀 Features
🚜 Refactor
- (ruff) disallow relative imports (#136) - (f7ac6df) - @gazorby
- small refactors (#138) - (0be5a15) - @gazorby
⚙️ Miscellaneous Tasks
- (cd) use pat to commit changelog - (f137678) - @gazorby
- (release) bump to v0.21.0 - (e5819e4) - @gazorby
🤝️ Contributors
v0.20.0 - 2025-12-14
🚀 Features
🐛 Bug Fixes
- add override=True to PostType, PostFilter, and PostOrderBy to prevent automatic generation (#98) - (36c75b8) - Luis Gustavo
🚜 Refactor
⚙️ Miscellaneous Tasks
- (deps) bump astral-sh/setup-uv from 6 to 7 (#110) - (259926b) - @dependabot[bot], dependabot[bot]
- (deps) bump github/codeql-action from 3 to 4 (#109) - (56a31e9) - @dependabot[bot], dependabot[bot]
- (deps) remove nox from main dependencies (#99) - (39951ba) - @gazorby
- (pre-commit) autoupdate (#102) - (26eb9df) - @gazorby
- (python) add 3.14 to test matrix (#126) - (8d097e4) - @gazorby
- (release) bump to v0.20.0 - (2113d64) - @gazorby
- update renovate config (#115) - (98c9f40) - @gazorby
- untrack ruff from mise.toml (#113) - (9539972) - @gazorby
- move coderabbit (#105) - (806d0c1) - @gazorby, coderabbitai[bot], coderabbitai[bot]
🤝️ Contributors
- Luis Gustavo
- @coderabbitai[bot]
- @dependabot[bot]
- @gazorby
v0.19.0 - 2025-09-06
🚀 Features
🐛 Bug Fixes
- (input) set null - (49679db) - @gazorby
- (scalars) add missing calls to new_type () - (34bcfe2) - @gazorby
- (scalars) cache new_type func - (2a09122) - @gazorby
- (scalars) trick pyright when using NewType in scalars - (037bc41) - @gazorby
- (schema) fix recursive fields include/exclude logic when a relation is explicitly included - (bf7872e) - @gazorby
- (schema) fix excluding identifiers causing upsert types failing to be generated - (ca7cb9e) - @gazorby
- (schema) use UNSET rather than None as default on aggregation filters - (3c925e4) - @gazorby
- real support and test for python 3.9 - (997c2e0) - @gazorby
- add missing files - (9871e80) - @gazorby
🚜 Refactor
- (pyright) update - (ae35cfe) - @gazorby
- (schema) focus on schema scope - (d9ebc79) - @gazorby
- wip - (8698285) - @gazorby
- fix rebase - (39139ff) - @gazorby
- update pyproject.toml - (77c1ce0) - @gazorby
- update sentinel types - (36bf5ad) - @gazorby
- wip - (e9eb3bb) - @gazorby
📚 Documentation
- (readme) document type scope feature - (49ad491) - @gazorby
- add docstrings to improve code documentation - (2548771) - @gazorby
⚙️ Miscellaneous Tasks
- (codeflash) use uv to run codeflash - (89b17a9) - @gazorby
- (deps) bump actions/download-artifact from 4 to 5 (#90) - (0137dd7) - @dependabot[bot], dependabot[bot]
- (deps) bump actions/setup-python from 5 to 6 (#93) - (cf50e17) - @dependabot[bot], dependabot[bot]
- (deps) bump actions/checkout from 4 to 5 (#91) - (e0f06e3) - @dependabot[bot], dependabot[bot]
- (deps) bump jdx/mise-action from 2 to 3 (#92) - (7f7e95d) - @dependabot[bot], dependabot[bot]
- (lint) move to basedpyright - (d3abcf4) - @gazorby
- (mise) update vulture task - (2d1daaf) - @gazorby
- (mise) allow passing python version to mise test targets - (d286e63) - @gazorby
- (nox) bring back cache - (44084aa) - @gazorby
- (nox) update - (eae64cf) - @gazorby
- (nox) simplify nox invocation - (d8838de) - @gazorby
- (nox) disable cache - (a8541b7) - @gazorby
- (release) bump to v0.19.0 - (2869de1) - @gazorby
- (test) update - (eb1aa5e) - @gazorby
- (test) try setting uv pref to only-managed - (478d6d7) - @gazorby
- (test) pin 3.12 again - (f661bed) - @gazorby
- (test) use uvx to invoke nox - (a322b48) - @gazorby
- (test) update .nox path for action caching - (680855e) - @gazorby
- fix codeflash - (d791dfc) - @gazorby
- update .gitignore - (96c5e12) - @gazorby
- update .gitignore - (09d69af) - @gazorby
- add codeflash - (e8dfdfb) - @gazorby
- update .editorconfig - (0ae1c7a) - @gazorby
🤝️ Contributors
v0.18.0 - 2025-06-07
🚀 Features
🐛 Bug Fixes
- do not rely on literal_column to reference computed column in some distinct on scenarios - (5ac834f) - @gazorby
🚜 Refactor
- (testapp) disable enable_touch_updated_timestamp_listener as it mess up with integration tests - (1c4c2c4) - @gazorby
- (transpiler) use literal_column less often and use a more reliable method when necessary - (e0f047f) - @gazorby
- (upsert) restrict conflict constraints to pk, unique and exclude constraints - (338543b) - @gazorby
📚 Documentation
- (readme) add section for upsert mutations - (99b7096) - @gazorby
- (readme) update database support - (7c55100) - @gazorby
⚙️ Miscellaneous Tasks
- (release) bump to v0.18.0 - (56c2238) - @gazorby
- (testapp) add pydantic - (48980a2) - @gazorby
- (uv) include testapp in dev dependancies - (79567b6) - @gazorby
🤝️ Contributors
v0.17.0 - 2025-06-02
🚀 Features
- (json) extract path - (924d89a) - @gazorby
- (sqlite) add json path extraction - (3593a07) - @gazorby
- (sqlite) add interval filtering - (6b81592) - @gazorby
- (sqlite) add JSON filtering - (4b510d8) - @gazorby
- (sqlite) initial support - (e71bcda) - @gazorby
🐛 Bug Fixes
- (interval) output serialization - (7e6e822) - @gazorby
- (update-by-id) do not pass empty where filter to the resolver - (393970f) - @gazorby
🚜 Refactor
📚 Documentation
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.16.0 - 2025-05-27
🚀 Features
- (mysql) implements geo comparisons - (e531ece) - @gazorby
- (mysql) implement JSON comparison - (0e3278d) - @gazorby
- (mysql) implement interval comparisons - (eeb4439) - @gazorby
- (mysql) implement date/time comparisons - (d566470) - @gazorby
- (mysql) initial support - (c721666) - @gazorby
- implement deterministic ordering - (3c12a0c) - @gazorby
🐛 Bug Fixes
- (mysql) do not generate the distinct column when no distinct args is passed - (8524902) - @gazorby
- (ordering) join ordering not propagated into the root query - (16e4e30) - @gazorby
🚜 Refactor
- (config) require dialect when instantiating strawchemy instance - (f127fbf) - @gazorby
- (config) restrict aggregation filters to those supported by the database - (66872d9) - @gazorby
- (mysql) add a distinct on implementation - (2d5f4b2) - @gazorby
- (repository) allow accessing instances from repository result - (8a3b861) - @gazorby
- (schema) generate all types with the strawberry dto backend - (a4f034b) - @gazorby
- (transpiler) prefix literal names generated by strawchemy to minimize conflicts - (9137411) - @gazorby
- wip - (4132d1d) - @gazorby
- remove more dead batteries - (84ad8dd) - @gazorby
- simplify project structure - (bae73d9) - @gazorby
- make pydantic an optional dependency - (82df05d) - @gazorby
- wip - (5e957c0) - @gazorby
📚 Documentation
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.15.6 - 2025-04-29
🐛 Bug Fixes
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.15.5 - 2025-04-29
🐛 Bug Fixes
🚜 Refactor
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.15.4 - 2025-04-29
🐛 Bug Fixes
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.15.3 - 2025-04-29
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.15.2 - 2025-04-29
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.15.1 - 2025-04-28
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.15.0 - 2025-04-28
🚀 Features
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.14.2 - 2025-04-24
🐛 Bug Fixes
- (mutation-input) override would not be applied in certain cases - (bbe75a8) - @gazorby
- (mutation-input) override would not be applied in certain cases - (a70791f) - @gazorby
🚜 Refactor
⚙️ Miscellaneous Tasks
- (deps) bump astral-sh/setup-uv from 5 to 6 - (a820ea7) - @dependabot[bot]
- (release) bump to v0.14.2 - (d5c6038) - @gazorby
- run tests in renovate/dependabot branches - (9e137f5) - @gazorby
- run tests in renovate/dependabot branches - (17b761f) - @gazorby
🤝️ Contributors
v0.14.1 - 2025-04-24
🐛 Bug Fixes
- (dto) override params passed to .to_mapped () would not apply if they were excluded in dto - (eb39a92) - @gazorby
🚜 Refactor
⚙️ Miscellaneous Tasks
- (release) bump to v0.14.1 - (cf2c732) - @gazorby
- (renovate) extend config:semverAllMonthly config - (063b476) - @gazorby
🤝️ Contributors
v0.14.0 - 2025-04-24
🚀 Features
- (mutation) expose Input to strawchemy repository - (fe1d1f5) - @gazorby
- (schema) add pydantic input validation - (580bbef) - @gazorby
🐛 Bug Fixes
🚜 Refactor
- (factory) remove type/input decorators on _StrawberryFactory - (de5a75d) - @gazorby
- (repository) move common logic in a base class for sync/async strawchemy repositories - (4b31d3a) - @gazorby
- (validation) update mapper api - (299fb0a) - @gazorby
- wip - (a3b6aef) - @gazorby
📚 Documentation
- (readme) add a section for input validation - (fea65c5) - @gazorby
- (readme) update - (2ade51e) - @gazorby
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.13.7 - 2025-04-15
🐛 Bug Fixes
- (dto) incorrect forward ref name set in the tracking graph when building recursive dtos - (ac20b7b) - @gazorby
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.13.6 - 2025-04-15
🚜 Refactor
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.13.5 - 2025-04-15
🐛 Bug Fixes
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.13.4 - 2025-04-15
🐛 Bug Fixes
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.13.3 - 2025-04-15
🐛 Bug Fixes
- (dto) track unresolved forward refs - (57d8bf1) - @gazorby
- (testapp) explictly set StrawchemyAsyncRepository - (2fd99a5) - @gazorby
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.13.2 - 2025-04-14
🚜 Refactor
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.13.1 - 2025-04-10
🐛 Bug Fixes
📚 Documentation
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.13.0 - 2025-04-09
🚀 Features
- (cud) add filter update mutation - (c15f60c) - @gazorby
- (cud) add delete mutation - (289d9be) - @gazorby
- (cud) allow settings null on to-one relations - (1efe0ed) - @gazorby
🐛 Bug Fixes
- (cud) enable add/remove on to-mnay relations; set overwrite previous to-many relations - (08ee2e7) - @gazorby
- (mapping) exclude foreign keys from inputs - (17678f2) - @gazorby
- (mapping) respect nullability when generating input types - (f87f3b6) - @gazorby
- (schema) do not allow removing to-many relations if remote fk is not nullable - (c7203bc) - @gazorby
🚜 Refactor
- (cud) merge create and update transaction logic - (769e4ef) - @gazorby
- (cud) implement update repository method - (1080c25) - @gazorby
- (cud) implement update input - (5fd3d9f) - @gazorby
- (mapper) remove duplicate assignement - (f22e1de) - @gazorby
- (mapper) update api - (a486384) - @gazorby
- (repository) update code documentation - (ae39957) - @gazorby
- (update-input) make all fields partial, except pks - (64a6f3e) - @gazorby
- (utils) remove unused function - (68a970b) - @gazorby
📚 Documentation
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.12.2 - 2025-04-03
🐛 Bug Fixes
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.12.1 - 2025-04-02
🐛 Bug Fixes
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.12.0 - 2025-04-01
🚀 Features
- (cud) add create mutation - (b1af031) - @gazorby
- (cud) add create mutation - (d9ef914) - @gazorby
- (query-hook) enable relationships loading - (9100165) - @gazorby
🐛 Bug Fixes
- (cud) mixed relations in create - (7d140ed) - @gazorby
- (mapping) override type fields would not be retracked - (98f3375) - @gazorby
- (mapping) do not enable aggregations on input types - (24cd763) - @gazorby
- (resolver) rely on sqlalchemy session type to use choose between sync/async resolver - (92eabda) - @gazorby
🚜 Refactor
- (doc) fix typo in license - (57cf88d) - @gazorby
- (dto) improve dto caching reliability - (ffa2ab1) - @gazorby
- (dx) add an example app - (ed3e5d6) - @gazorby
- (mapping) add foreign key inputs for relation - (fda6b60) - @gazorby
- (transpiler) remove unused function - (1636803) - @gazorby
⚙️ Miscellaneous Tasks
- (gitignore) ignore .sqlite files - (49928b3) - @gazorby
- (release) bump to v0.12.0 - (66ff56b) - @gazorby
- (renovate) enable lock file maintenance - (5ab6f8e) - @gazorby
🤝️ Contributors
v0.11.0 - 2025-03-25
🚀 Features
- (hook) add QueryHookProtocol - (afd406a) - @gazorby
- (mapping) allow setting filter/order_by at the type level - (c1ead8c) - @gazorby
🐛 Bug Fixes
- (hook) hook would not be correctly applied if triggered by a type - (0de25a0) - @gazorby
- (mapping) type annotation override on a list field - (6f56744) - @gazorby
- (order-by) order by on relation not working properly - (acf1a8c) - @gazorby
🚜 Refactor
- (hook) simplify query hook interface - (5f84532) - @gazorby
- (typing) remove unused type - (f242ce5) - @gazorby
⚙️ Miscellaneous Tasks
- (coverage) append the coverage session name as file extension - (7046c63) - @gazorby
- (coverage) remove .xml extension in coverage filenames - (a4c1fda) - @gazorby
- (coverage) let leading dot in coverage data filenames - (ddf8de9) - @gazorby
- (coverage) checkout the repository before processing files - (d2dad3d) - @gazorby
- (coverage) use default coverage data when running tests - (4773d23) - @gazorby
- (coverage) use merge-multiple - (dfa12d6) - @gazorby
- (coverage) use coverage combine - (05b772d) - @gazorby
- (release) bump to v0.11.0 - (bd27b8e) - @gazorby
🤝️ Contributors
v0.10.0 - 2025-03-21
🐛 Bug Fixes
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.9.0 - 2025-03-21
🚀 Features
- (filters) add insensitive regexp variants - (27706d5) - @gazorby
- (filters) add order filters to string - (d76c950) - @gazorby
- support postgres
Intervaltype (mapping and filtering) - (355994f) - @gazorby
🚜 Refactor
📚 Documentation
- (readme) update filters section - (83f43d3) - @gazorby
- (readme) add type override documentation - (5d34539) - @gazorby
- (readme) update filter names - (8e51154) - @gazorby
- (readme) clarify supported filters - (91a52b5) - @gazorby
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.8.0 - 2025-03-20
🚀 Features
- (geo) infer shapely types from geoalchemy columns - (a8ed586) - @gazorby
- (geo) infer GeoJSON specific scalars to be inferred from shapely geometries - (145f495) - @gazorby
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.6.0 - 2025-03-19
🚀 Features
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.5.3 - 2025-03-19
🐛 Bug Fixes
- (aggregations) use float for aggregation output of int columns - (bef9700) - @gazorby
- (strawberry-type) model instance passed on types not declaring it - (06c1c1f) - @gazorby
- (transpiler) adding an aggregation column to an existing lateral join would not be properly aliased, leading to a cartesian product on the same table - (f365120) - @gazorby
- import errors when geo extras is not installed - (f28f2ea) - @gazorby
🚜 Refactor
- remove the default strawchemy instance - (b766374) - @gazorby
- remove unused stuff - (9bd2d1b) - @gazorby
📚 Documentation
- (readme) make code examples expandable - (4da85a1) - @gazorby
- (readme) update repository doc - (d930468) - @gazorby
- update README.md - (8a53b62) - @gazorby
- update README.md - (4e5564b) - @gazorby
⚙️ Miscellaneous Tasks
- (coverage) explicitly set source in [tool.coverage.run] as codecov might need it - (5200d8c) - @gazorby
- (deps) enforce sqlalchemy >= 1.4 - (6772605) - @gazorby
- (deps) move shapely to dev dependencies - (11c393d) - @gazorby
- (mise) make the ruff:check depends on _install - (b863708) - @gazorby
- (mise) upgrade - (4afd3c8) - @gazorby
- (pyproject) update classifiers - (59aa01b) - @gazorby
- (pyproject) remove multiprocessing from coverage config - (b8cfe46) - @gazorby
- (pyproject) fix syntax - (8cd111b) - @gazorby
- (release) bump to v0.5.3 - (dcb17d7) - @gazorby
🤝️ Contributors
v0.5.2 - 2025-03-12
🐛 Bug Fixes
- (pagination) do not apply offset on the root query when a subquery is present - (e91da34) - @gazorby
⚙️ Miscellaneous Tasks
- (codecov) fix typo in codecov.yml - (acfe955) - @gazorby
- (codecov) merge python version and session name in a single flag - (0d9f34f) - @gazorby
- (codecov) add flags - (d22a49d) - @gazorby
- (codecov) let the action find junit files - (9848ab2) - @gazorby
- (release) bump to v0.5.2 - (76d446c) - @gazorby
- (test) set the pytest junit_family to legacy - (4d5b3d5) - @gazorby
- add codecov.yml - (2f77c09) - @gazorby
🤝️ Contributors
v0.5.1 - 2025-03-11
🐛 Bug Fixes
- (mapping) field arguments not replaced by override types - (bf44803) - @gazorby
- (mapping) dto edge cases - (fd417a2) - @gazorby
- (transpiler) update - (a786a5f) - @gazorby
- (transpiler) add id columns in node selection if not present - (5b06a8d) - @gazorby
- (transpiler) root aggregations not handled when using subquery - (495420f) - @gazorby
- (transpiler) properly handle root aggregations - (bacd111) - @gazorby
- (transpiler) remove caching property on resolved tree - (6b11dcc) - @gazorby
- (typing) session_getter - (af2edaa) - @gazorby
- update - (c334738) - @gazorby
🚜 Refactor
📚 Documentation
- (contributing) add tasks.md reference - (c75b043) - @gazorby
- update CONTRIBUTING.md - (447e529) - @gazorby
⚙️ Miscellaneous Tasks
- (ci) fix typo - (0269a3e) - @gazorby
- (ci) fix session param in nox call - (b273b54) - @gazorby
- (ci) fix missing arg to test-ci task - (37aba9c) - @gazorby
- (ci) run tests using mise task - (7902dd9) - @gazorby
- (ci) add mise.toml to paths whitelist in skip check job - (3d23d82) - @gazorby
- (ci) only fail workflow on cancellation/failure of test/lint jobs - (c67b0d5) - @gazorby
- (lint) use mise - (4e03e64) - @gazorby
- (mise) remove actionlint in lint task - (992aeec) - @gazorby
- (mise) streamline task names - (dbf4357) - @gazorby
- (mise) add mise.lock - (135fe82) - @gazorby
- (mise) add clean task - (321ac42) - @gazorby
- (mise) add a task to run pre-commit checks - (2b1b787) - @gazorby
- (pre-commit) add a hook to render tasks documentation - (b067a84) - @gazorby
- (pre-commit) add actionlint hook - (b75a842) - @gazorby
- (pre-commit) run pre-commit lint check in mise task - (6c7b017) - @gazorby
- (release) bump to v0.5.1 - (d1b30ca) - @gazorby
- (test) call mise task to generate test matrix - (43a0308) - @gazorby
🤝️ Contributors
v0.5.0 - 2025-03-03
🚀 Features
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.4.0 - 2025-03-03
🚀 Features
- (config) enable custom id field name - (8f05899) - @gazorby
- (config) add default pagination limit setting - (808670c) - @gazorby
- (dto) add READ_ONLY, WRITE_ONLY and PRIVATE shortcuts - (5da8660) - @gazorby
- (dto-config) add method to infer include/exclude from base class - (0ddb6bd) - @gazorby
- (mapping) enable custom defaults for child pagination - (ed00372) - @gazorby
- add pagination switch and defaults - (c111cc5) - @gazorby
🐛 Bug Fixes
- (dto) partial default value on several places - (d3d18e8) - @gazorby
- (dto-factory) caching fixes - (4c1d345) - @gazorby
- (root-aggregations) set count as optional - (0bada8b) - @gazorby
- (root-aggregations) ensure aggregations are optional - (a9be792) - @gazorby
- (sqlalchemy-inspector) mapped classes map not updated - (6667447) - @gazorby
- (strawchemy-field) python name for filter input - (73cca8b) - @gazorby
- forgot some partial default updates - (4df92dd) - @gazorby
🚜 Refactor
- (dto) streamline arguments of factory decorator method - (33557b1) - @gazorby
- (dto) add shortcut utilities - (a3b3a53) - @gazorby
- (dto) expose factory instance in pydantic_sqlalchemy.py - (d4b1793) - @gazorby
- (mapping) child options - (e2277ab) - @gazorby
- (pre-commit) update config - (a08c121) - @gazorby
- wip - (9817a95) - @gazorby
⚙️ Miscellaneous Tasks
- (lint) execute lint sessions on a single default python version - (60ac239) - @gazorby
- (lint) add sourcery config - (0ee4bde) - @gazorby
- (mise) add auto-bump task - (545f3c4) - @gazorby
- (release) bump to v0.4.0 - (ebdbd58) - @gazorby
- (test) fix array membership test - (25e5672) - @gazorby
- (tests) upload coverage artifacts - (bc72252) - @gazorby
🤝️ Contributors
v0.3.0 - 2025-02-21
🚀 Features
📚 Documentation
- update bug_report issue template - (e213df1) - @gazorby
- add SECURITY.md - (628cd29) - @gazorby
- add pull request template - (efcb329) - @gazorby
- update CONTRIBUTING.md - (d22f786) - @gazorby
⚙️ Miscellaneous Tasks
- (release) bump to v0.3.0 - (6075f54) - @gazorby
- add issue/pr templates - (dc99896) - @gazorby
- create dependabot.yml - (14d2026) - @gazorby
🤝️ Contributors
v0.2.12 - 2025-02-21
⚙️ Miscellaneous Tasks
- (release) bump to v0.2.12 - (eb32d94) - @gazorby
- create separate environment for cd and publish - (fbcdf34) - @gazorby
🤝️ Contributors
v0.2.11 - 2025-02-21
⚙️ Miscellaneous Tasks
- (changelog) fix incorrect release changelog - (1a8bf11) - @gazorby
- (release) bump to v0.2.11 - (4fb6265) - @gazorby
- pass GITHUB_TOKEN to git cliff calls - (cc21aae) - @gazorby
🤝️ Contributors
v0.2.10 - 2025-02-21
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.2.9 - 2025-02-21
⚙️ Miscellaneous Tasks
- (publish) add missing
contents: writepermission - (4f881d7) - @gazorby - (release) bump to v0.2.9 - (5e8b5c4) - @gazorby
🤝️ Contributors
v0.2.8 - 2025-02-21
⚙️ Miscellaneous Tasks
- (cd) use the pat to create gh release - (c603955) - @gazorby
- (release) bump to v0.2.8 - (97d2413) - @gazorby
🤝️ Contributors
v0.2.7 - 2025-02-21
⚙️ Miscellaneous Tasks
- (ci) fix test matrix not generated on tag - (ae4720d) - @gazorby
- (release) bump to v0.2.7 - (be76cf2) - @gazorby
🤝️ Contributors
v0.2.6 - 2025-02-21
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.2.5 - 2025-02-21
⚙️ Miscellaneous Tasks
- (ci) also run result job if needed step have been skipped - (474bad3) - @gazorby
- (release) bump to v0.2.5 - (0b5cc28) - @gazorby
🤝️ Contributors
v0.2.4 - 2025-02-21
⚙️ Miscellaneous Tasks
🤝️ Contributors
v0.2.3 - 2025-02-21
⚙️ Miscellaneous Tasks
- (bump) use personal access toekn to enable ci workflow - (35f190b) - @gazorby
- (release) bump to v0.2.3 - (c98e0cd) - @gazorby
🤝️ Contributors
v0.2.2 - 2025-02-21
⚙️ Miscellaneous Tasks
- (bump) fix GITHUB_TOKEN env var - (cc43668) - @gazorby
- (bump) add write permissions - (6ebae7c) - @gazorby
- (bump) use kenji-miyake/setup-git-cliff action - (93c3a9c) - @gazorby
- (bump) fix --bumped-version flag - (edfe14e) - @gazorby
- (bump) add missing --bump-version flag - (842e831) - @gazorby
- (bump) fix auto bump - (7251e12) - @gazorby
- (release) bump to v0.2.2 - (a8ee5b6) - @gazorby
- pretty workflow names - (5b467ab) - @gazorby
- add bump and publish workflows - (e8ab0c8) - @gazorby
🤝️ Contributors
v0.2.1 - 2025-02-20
⚙️ Miscellaneous Tasks
- (release) bump to v0.2.1 - (5e59c22) - @gazorby
- add publish workflow; auto commit CHANGELOG.md when generating changelog - (6fdd13b) - @gazorby
- add codeql workflow - (758dcc0) - @gazorby
🤝️ Contributors
v0.2.0 - 2025-02-20
📚 Documentation
- (readme) add badges - (f1b92a5) - @gazorby
- move CONTRIBUTING.md to the correct place - (ad6bbd1) - @gazorby
⚙️ Miscellaneous Tasks
- (release) bump to v0.2.0 - (2bcb70a) - @gazorby
- (test) set COLUMNS env var - (46b70af) - @gazorby
- (test) fix result job - (a12c11d) - @gazorby
- (test) remove unneeded step - (ce18a5a) - @gazorby
- (test) add unit test workflow - (f560d04) - @gazorby
- (uv) commit uv.lock - (f7df4f8) - @gazorby
- add changelog generation workflow - (b018a78) - @gazorby