Changelog¶
All notable user-facing Metaxy changes are to be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning, except for experimental features.
While Metaxy's core functionality and versioning engine are stable and quite complete, the CLI and some of the more advanced APIs and integrations are considered experimental.
Abstract
stable features are guaranteed to follow SemVer and won't receive breaking changes in between minor releases. Such changes will be announced with a deprecation warning.
A feature is considered stable if it's documented and doesn't have an "Experimental" badge.
experimental features may be changed or removed at any time without deprecation warnings. They may be documented and in this case must display an "Experimental" warning badge:
Experimental
This functionality is experimental.
v0.1.9 (03-04-2026)¶
Deprecated¶
-
MetadataStoreimplementations have been moved frommetaxy.ext.metadata_stores.<store>tometaxy.ext.<store>. Old import paths are deprecated and will be removed in0.2.0. -
HashAlgorithmhas been moved frommetaxy.versioning.typestometaxy._hashing(is available asmetaxy.HashAlgorithm). The old import path is deprecated and will be removed in0.2.0.
Features¶
Map datatype¶
narwhals-mapis now used forMapdatatype operations in Narwhals. This changes the Narwhals datatype fromUnknowntonarwhals_map.Mapand exposesnw.Expr.mapnamespace for these columns. (#1167 by @danielgafni)
Docs¶
- default to
stabledocs version and updatge all links (#1156 by @danielgafni)
Map datatype¶
- document
narwhals-mapusage forMapdatatype (#1171 by @danielgafni)
Other Improvements¶
- fix random old analysis script (#1168 by @danielgafni)
- improve internal dependency structure (#1166 by @danielgafni)
- remove a few circular deps (#1164 by @danielgafni)
- introduce Tach layers (#1163 by @danielgafni)
- fix
source_rootsand remove utility modules intach.toml(#1162 by @danielgafni) - run all integration tests in
main(#1161 by @danielgafni) - fix duckdb tests referring old paths (#1160 by @danielgafni)
- move
PolarsVersioningEnginetometaxy.ext.polars.versioning(#1159 by @danielgafni) - update old extension paths (#1158 by @danielgafni)
- move ibis code to
metaxy.ext.ibis(#1157 by @danielgafni) - migrate tests to use new metadata store imports (#1155 by @danielgafni)
- Metadata stores have been moved from
metaxy.ext.metadata_stores.<store>tometaxy.ext.<store>. DeltaLake and Iceberg stores are additionally nested undermetaxy.ext.polars.handlers.. Old locations have been kept for backwards compatibility but will be removed in0.2.0. (#1153 by @danielgafni) - update tach modules for integrations (#1152 by @danielgafni)
- fix coverage for
mainbranch (#1151 by @danielgafni) - fix coverage for release PRs by testing
metaxy.__version__(#1150 by @danielgafni)
Claude¶
- add Tach skill (#1165 by @danielgafni)
v0.1.8 (01-04-2026)¶
Features¶
Claude¶
- more info on working with
Mapcolumns (#1141 by @danielgafni)
Cli¶
- more detailed and user-friendly output for
metaxy lock(#1135 by @danielgafni)
Ray¶
- support
Mapdatatype (#1142 by @danielgafni)
Bug Fixes¶
- remove missing lock file warning when
metaxy_lock_pathis not configured (#1143 by @danielgafni) - improve
Mapdatatype support inMetadataStore.resolve_update(#1139 by @danielgafni)
Docs¶
- more info on working with
Mapcolumns (#1140 by @danielgafni)
Sqlmode¶
- add docstrings for
SQLModelFeatureConfig(#1127 by @danielgafni)
Other Improvements¶
- release v0.1.8 (#1147 by @danielgafni)
- fix tach setup in
mainbranch (#1149 by @danielgafni) - enable Tach pytest plugin (#1146 by @danielgafni)
- move metaxy._utils to metaxy.utils (#1144 by @danielgafni)
- adopt Tach to enforce API boundaries (#1128 by @danielgafni)
- rename and move _collect_to_arrow to
metaxy._utils.collect_to_arrow(#1130 by @danielgafni)
Ray¶
- ensure
Maptype works withday.data.Dataset.map_batches(#1148 by @danielgafni)
v0.1.7 (28-03-2026)¶
This release adds experimental support for the Map datatype and a new Apache Iceberg metadata store.
Features¶
- A new experimental
enable_map_datatypeglobal setting has been added to Metaxy's configuration. When enabled, it usespolars-map(must be installed) to preserve the ArrowMaptype on Polars frames across Metaxy operations. (#1104 by @danielgafni)
Claude¶
- update Claude plugin with
Mapsupport info (#1117 by @danielgafni) - update Claude plugin with External Features docs (#1086 by @danielgafni)
Clickhouse¶
Maptype support (experimental) (#1107 by @danielgafni)
Duckdb¶
Maptype support (experimental) (#1105 by @danielgafni)
Deltalake¶
Maptype support (experimental) (#1108 by @danielgafni)
Iceberg¶
Maptype support (experimental) (#1108 by @danielgafni)- add Apache Iceberg metadata store (#1033 by @ashutosh1807)
Bug Fixes¶
- do not validate incomplete MetaxyConfig when
extendis set (#1087 by @danielgafni)
Dagster¶
- log runtime metadata for
Maptype correctly (#1120 by @danielgafni)
Iceberg¶
- use appropriate warehouse path on Windows (#1094 by @danielgafni)
Docs¶
- add scope subgroups to changelog (#1123 by @danielgafni)
- update
enable_map_datatypedocstring (#1121 by @danielgafni) - document
Mapdatatype usage andenable_map_datatypeconfig option (#1115 by @danielgafni) - fix broken metaxy.lock glossary link (#1078 by @danielgafni)
Iceberg¶
- refine documentation (#1095 by @danielgafni)
Other Improvements¶
- release 0.1.7 (#1124 by @danielgafni)
- fix full test suite for windows and macos (#1125 by @danielgafni)
- run all integration tests on core changes (#1122 by @danielgafni)
- add test case for fallback stores with
Mapenabled (#1119 by @danielgafni) - avoid cancelling in-progress tests in
main(#1118 by @danielgafni) - add hypothesis tests for
Maproundrtip (#1113 by @danielgafni) - conditionally skip tests for integrations (#1114 by @danielgafni)
- avoid map->struct->map conversion with
enable_map_datatype(#1110 by @danielgafni) - fix coverage setup post CI split (#1101 by @danielgafni)
- generate integration matrix with nox (#1099 by @danielgafni)
- split tests for integrations into separate jobs (#1098 by @danielgafni)
- move tests for integrations into tests/ext (#1097 by @danielgafni)
- consolidate MetadataStore instantiation to fixtures (#1096 by @danielgafni)
- split shared test suite for MetadataStore implementations to more granular modules (#1091 by @danielgafni)
- upgrade ty to 0.0.25 (#1092 by @danielgafni)
- add a section for other improvements to changelog (#1093 by @danielgafni)
- delete migrations system (#1089 by @danielgafni)
- split metaxy.config to submodules (#1088 by @danielgafni)
Ducklake¶
- add
Mapdatatype tests for DuckLake (#1116 by @danielgafni)
New Contributors¶
- @ashutosh1807 made their first contribution in #1033
v0.1.6 (18-03-2026)¶
Bug Fixes¶
Sqlalchemy¶
- the
SQLAlchemyintegration configuration ([ext.sqlalchemy]inmetaxy.toml) has been removed. Please use the code interface instead. (#1075 by @danielgafni)
Sqlmodel¶
- the
SQLModelintegration configuration ([ext.sqlmodel]inmetaxy.toml) has been removed. Please use the code interface instead. (#1074 by @danielgafni)
Docs¶
- only display field name in configuration docs (#1070 by @danielgafni)
Other Improvements¶
- release 0.1.6 (#1077 by @danielgafni)
- update changelog to include change scope (#1076 by @danielgafni)
- move PostgreSQL metadata store to metaxy.ext (#1069 by @danielgafni)
v0.1.5 (18-03-2026)¶
Features¶
- PostgreSQL metadata store (#743 by @geoHeil)
- support Python 3.14 (#1055 by @geoHeil)
- Configuration inheritance is now supported via a new
extendconfig field. (#1060 by @danielgafni)
Bug Fixes¶
- display help when mx is run without arguments (#1059 by @AnkitSharma-29)
Docs¶
- refine PostgreSQL docs (#1066 by @danielgafni)
- fix ducklake example (#1042 by @geoHeil)
Other Improvements¶
- release 0.1.5 (#1068 by @danielgafni)
- add tag message to changelog template (#1067 by @danielgafni)
- tweak cliff.toml (#1065 by @danielgafni)
- rename extends to extend (#1064 by @danielgafni)
- extend array fields when merging configs (#1063 by @danielgafni)
- adopt deadcode (#1056 by @geoHeil)
- upgraded GHA actions (#1057 by @geoHeil)
- improve git-cliff setup (#1052 by @danielgafni)
- upgrade ty to 0.0.22 (#1053 by @danielgafni)
- add AI policy (#1051 by @danielgafni)
- adopt
git-cliff(#1049 by @danielgafni) - adopt Conventional Commits (#1050 by @danielgafni)
New Contributors¶
- @AnkitSharma-29 made their first contribution in #1059
0.1.4 (12-03-2026)¶
Bug Fixes¶
- Fixed a bug with
metaxy pushnot re-pushing feature definitions on changes reverting them to a previous version.
0.1.3 (11-03-2026)¶
Features¶
metaxy locknow avoids loading feature definitions from metaxy.project entrypoints of Python packages that aren't dependencies (direct or transitive) of the current Python package when creating the lock file.
Changed¶
- Renamed
metaxy graph historyCLI command tometaxy history
Docs¶
- Added a section on inheritance with Metaxy features
- Improved Dagster integration docs
0.1.2 (06-03-2026)¶
Features¶
- A new
staleness_predicatesparameter has been added toresolve_update. It can be used to mark records as stale based on arbitrary Narwhals expressions, regardless of their Metaxy versions. MetadataStore.writenow fillsmetaxy_data_versionandmetaxy_data_version_by_fieldvalues in place ofNulls on per-row basis instead of checking whether the whole column presence.- Added Rebases functionality which allows backfilling metadata from historical feature versions. It's available via CLI or as
MetadataStore.rebase.
0.1.1 (27-02-2026)¶
Features¶
- A new top-level
extra_featuresconfiguration option has been added. It can be used to register additional external feature definitions from the metadata store on the feature graph. Learn more here. - DuckLake integration has been revamped, tested, and documented. Thanks @geoHeil!
Bug Fixes¶
- Fixed
DuckDBMetadataStoreassuming"community"extension repo instead of"core"when loading extensions with unspecified repos - Fixed
/metaxyskill andmetaxyMCP server not being properly installed by the Claude plugin - (
breaking) Fixed a bug where
MetadataStoreerroneously did not require being opened with"w"write mode before writing data - Fixed a bug where
MetadataStorewould not properly handle nested context manager calls
0.1.0 (13-02-2026)¶
The first public Metaxy release !
This release should be considered an alpha release: it is ready for production use and has been dogfooded internally at Anam.ai, but we don't have any community feedback yet.
Features¶
- Feature Definitions and related models
- Metaxy versioning engine and storage layout
- MetadataStore API
- Integrations: DeltaLake, Dagster, Ray, ClickHouse, MCP, Claude
Experimental¶
- CLI
metaxy.lock-based workflow for multi-environment setups- Integrations: DuckDB, BigQuery, LanceDB, SQLAlchemy, SQLModel