·
3328 commits
to develop
since this release
Post-publication accounting correction: This section was reconciled on
developafter v0.4.0 was published. It records shipped changes omitted from
the immutable tag's changelog. The tag and PyPI artifacts were not modified.
Removed
- BREAKING: bare
clickhouseplatform alias removed - The temporary
compatibility alias that let--platform clickhouse(andget_adapter( "clickhouse")) resolve to a first-class platform was added in v0.2.1 as a
deprecation shim and is removed in this release (window v0.2.1 → v0.4.0).
Useclickhouse-local(embedded chDB),clickhouse-server(self-hosted), or
clickhouse-cloud(managed); the explicitclickhouse:local/
clickhouse:server/clickhouse:cloudselectors also remain available.
Passing bareclickhousenow raises aValueErrornaming these replacements
instead of silently defaulting to a deployment mode. ThechCLI shorthand
now resolves toclickhouse-local. - BREAKING:
databricks-connectinstall extra removed - Replace
benchbox[databricks-connect]withbenchbox[cloud-spark-databricks]. This
renames only the BenchBox install extra; it still installs the upstream
databricks-connectpackage. Other DataFrame install extras are unchanged.
New
- Results Explorer preview - Browse and compare published benchmark results at
benchbox.dev/results/. Explore cross-platform
leaderboards, per-query timings, hardware details, comparison tools, and SQL
queries over the public data. The preview contains a curated set of results,
not a complete or certified ranking. - DuckLake platform - Run benchmarks against DuckLake (DuckDB lakehouse
format: Parquet table data + SQL-database catalog metadata) via
--platform ducklake. The catalog backend (--platform-option catalog=duckdb|sqlite|postgres) and the Parquetdata_path(local or
s3://) can be selected independently. Four documented deployment modes have
passed TPC-H scale-factor-1 correctness validation. Existing catalogs are
reused across runs and--forcerebuilds them; requires DuckDB >= 1.3,
installable asbenchbox[ducklake]. Beta.
Added
- Result provenance and funding labels - Results Explorer now shows whether
each published run came from BenchBox maintainers, a community contributor,
or a platform vendor, together with any disclosed funding source. These labels
appear in rankings, comparisons, and result details, with an in-page
explanation of what they mean. Community submissions remain visible but are
excluded from ranked tables. - Local MCP connections over HTTP - Local MCP clients can now connect with
benchbox-mcp --transport streamable-http; existing stdio integrations
continue to work unchanged. Authenticated non-local deployments also provide
persistent benchmark jobs, but shared deployment remains deferred and is not
supported for production use in this release.
Changed
- GitHub repository moved to the
BenchBox-devorganization - BenchBox is
now hosted at github.com/BenchBox-dev/BenchBox.
Public project links, issue and release tooling, CI, and package metadata now
use the organization-owned repository. Existing Git remotes using
github.com/joeharris76/BenchBox.gitcontinue to redirect; update local
remotes to the organization URL when convenient.
Fixed
- Correct data volumes for Write and Transaction Primitives - Reusing
benchmark data created for a different scale factor could produce successful
results against the wrong amount of staged data. BenchBox now detects and
rebuilds that data automatically on the next run; no action is needed. - TPC generators recover from incompatible bundled tools - The bundled
TPC-H generators now support macOS 15. BenchBox also checks bundled TPC-H and
TPC-DS generators before use and automatically builds a compatible version
when needed. - Correct TPC throughput metrics in newly exported results - TPC-H and
TPC-DS throughput drivers now include every executed query in
Throughput@Size, correcting the 22x and 99x understatements produced by
earlier result versions. Historical result bundles remain unchanged records. - Removed dead
BENCHBOX_TUNING_ENABLEDenv var - This variable set the
tuning.enabledconfig key, which nothing at runtime ever read (only a unit
test did); docs incorrectly claimed it "activates tuned runs in CI". Use
--tuning tuned/--tuning autoonbenchbox runto actually enable
tuning;BENCHBOX_TUNING_CONFIGstill works to point at a default tuning
file. If you were settingBENCHBOX_TUNING_ENABLED, it had no effect and can
simply be removed. - Accurate
--tuning autoguidance for SQL platforms - SQL runs now explain
thatautouses a basic constraints-only configuration: primary-key,
foreign-key, unique, and check constraints are enabled, with no other tuning.
DataFrame platforms continue to use smart defaults. - DataFusion accepts Python string table paths - Programmatic DataFusion
loads now accept paths supplied as either Python strings orpathlib.Path
objects.
Security
- Expanded secret redaction in result exports and common errors - Result
exports now remove connection credentials, account identifiers, and
service-account keys. MotherDuck, DuckLake, and MCP benchmark-execution errors
also redact known secrets, including values carried by chained exceptions.
Some other MCP errors can still include backend-provided exception text, so
avoid credentials in values that a backend might repeat in an error.