Changes
💥 Breaking changes
- feat!: remove `maintain_order` from `LazyFrame.unique`, as it was never supported (2247)
✨ Enhancements
- feat: add `cum_min` to PySpark (2267)
- feat: make `order_by` in Expr.over public (2271)
- feat: Add support for full join (2126)
- enh: Support `diff`, `shift`, `is_first_distinct`, `is_last_distinct` for PySpark, SQLFrame, and DuckDB (2270)
- feat: add `cum_max` for PySpark (2265)
- feat: support window operations for DuckDB (2263)
- feat: track whether expressions are multi-output, unify error messages (2246)
- feat: Enable spark-like backends in `scan_parquet` (2235)
- feat: `Binary` dtype support (2243)
- feat!: remove `maintain_order` from `LazyFrame.unique`, as it was never supported (2247)
🐞 Bug fixes
- fix: safety assertion was being thrown for Expr.is_last_distinct with over and _order_by by pandas and pyarrow (2269)
- chore(typing): add missing `_FullContext` to `CompliantDataFrame` (2251)
📖 Documentation
- feat: make `order_by` in Expr.over public (2271)
- doc: fix docs CI (2259)
- docs: fix docs CI dependencies (2260)
🛠️ Other improvements
- ci: skip test_join_duplicate_column_names on old polars (2277)
- ci: Get CI green for cuDF tests (2276)
- chore: Clean up `_arrow` (2275)
- chore(typing): Move `DepthTracking*` typing (2272)
- chore: Track `ExpansionKind` in `ExprMetadata` (2266)
- feat: Adds `Compliant(When|Then)` (2261)
- chore: Add `CompliantExpr._with_metadata` (2262)
- feat: Adds `CompliantGroupBy` (2252)
- ci: skip Polars nightly if notebook is still running (2257)
- chore: Spec `CompliantSeries` (2236)
- chore: downstream CI cleanup (`validoopsie` and `pointblank`) and re-order dependency groups (2255)
- chore: Add `CompliantDataFrame.native` (2249)
- chore: Spec `CompliantLazyFrame` (2232)
- test: Scope dataframe library imports to fixtures in `conftest.py` (2241)
- chore: use is_scalar_like in apply_n_ary_operation (2242)
- chore: move dev dependencies to `dependency-groups` (2238)
- test: Fix yet more tests to work without polars (pandas, pyarrow) (2250)
- test: Fix more tests to work without polars (and pandas, pyarrow) (2245)
- Fix `noxfile.py` syntax for nox-2025.2.9 (2240)
Thank you to all our contributors for making this release possible!
EdAbati, FBruzzesi, MarcoGorelli, dangotbanned, marvinl803, mgorny, raisadz and tylerriccio33