v1.0.0
What's Changed
- feat: test suites, integration tests, resolve python 3.8 support by Miles Cole (@mwc360) in #70
- Migrated build system to hatchling and UV; added uv.lock and .python-version
- Pinned fsspec==2025.2.0 to restore Python 3.8 support
- Added from future import annotations across engine and benchmark files to fix TypeError on lowercase generic
hints in Python 3.8/3.9 - Added .github/copilot-instructions.md with LLM-friendly codebase overview
- New integration test suite covering all 5 engines × 4 benchmarks (TPC-H, TPC-DS, ClickBench, ELTBench) at SF 0.1
- Added Daft and Polars support for ClickBench
- Fixed DaftELTBench: Windows path handling, when().otherwise() replacing deprecated if_else, .year() API, .collect() over .to_pandas()
- Fixed DuckDB ELTBench: .df() → .arrow() (no pandas dependency)
- Fixed Spark ELTBench CREATE OR REPLACE TABLE → DROP IF EXISTS + CREATE TABLE to avoid OverwriteByExpression truncation error
- Fixed Spark ELTBench MERGE: SQL MERGE INTO → DeltaTable.forName().merge() Python API to work around DELTA_MERGE_RESOLVED_ATTRIBUTE_MISSING_FROM_INPUT on local delta-spark 3.2
- Fixed TPC-DS q90 divide-by-zero: added NULLIF(pmc, 0) in denominator for SF 0.1 runs
- Fixed Polars TPC-DS decimal overflow (PanicException): pre-collect cast of Decimal columns to Float64(strict=False)
- Added delta-spark==3.2.0 to the spark extra
- Auto-generated per-engine coverage reports written to reports/coverage/.md after each test session
- New baseline unit tests for path utils, query utils, and engine — matrix runs across Python 3.8–3.12
- CI: integration tests run once on Python 3.11 per engine in isolated jobs
- chore: bump version by Miles Cole (@mwc360) in #71
Full Changelog: v0.13.3...v1.0.0