Release history
Bencher releases
Suite of continuous benchmarking tools designed to catch performance regressions in CI.
All releases
16 shown
v0.6.5
Bug fix
Notable features
- Project scoped API keys
- Build time and file size tracking for bare metal runs
Full changelog
- Add project scoped API keys
- Add build time and file size tracking support for bare metal runs
- Fix
bencher runhanging on stdin when no command is provided, including for--imageremote bare metal runs (Thank you @sophie-h)
v0.6.4
Breaking risk
Breaking changes
- Switched runner key format from hex encoding (79 characters) to alphanumeric encoding (45 characters); existing keys must be rotated.
Full changelog
- Allow a minimum sample size of
1for the Percentage (percentage) Threshold Test (Thank you @teofr) - BREAKING CHANGE Switch runner key format from hex to alphanumeric encoding, reducing key length from 79 to 45 characters; existing runner keys must be rotated
v0.6.3
Breaking risk
Breaking changes
- Rename `runner token` to `runner key` across the API, CLI, and environment variables
Notable features
- Add API token revocation with `bencher token revoke` and Revoke button in the Console
Full changelog
- Fix sample standard deviation for Z-score, t-test, and Log Normal Thresholds to use Bessel's correction (divide by
n − 1) (Thank you @ggirol-rc) - Fix t-test Threshold to use the prediction interval (scale the standard deviation by
√(1 + 1/n)) so the boundary tests whether a new Metric is consistent with the historical distribution rather than whether it contains the historical mean (Thank you @ggirol-rc) - Existing Thresholds will produce slightly wider (statistically correct) boundaries; no configuration changes required
- Fix Alert JSON to return the Spec for the Report in which the Alert was generated instead of the Testbed's current Spec
- BREAKING CHANGE Rename
runner tokentorunner keyacross the API, CLI, and environment variables - Fix race condition where concurrent branch creation could cause a "branch head is null" 500 error (Thank you @vmelamed)
- Self-heal legacy Branches whose
head_idis stillNULLfrom the race condition above so subsequentbencher runsubmissions succeed instead of 500ing (Thank you @vmelamed) - Add API token revocation with
bencher token revokeand Revoke button in the Console
v0.6.2
Bug fix
Fix URL fragment ordering per RFC 3986 and fallback for missing --start-point-hash.
Full changelog
- Allow unauthenticated
docker pushto unclaimed projects - Fix URL fragment placed before query string per RFC 3986 (Thank you @ricardoboss)
- Fix
--start-point-hashfailure on non-existent hash by falling back to the start point branch's latest version (Thank you @teofr)
v0.6.1
Breaking risk
⚠ Upgrade required
- --poll-interval is deprecated as an alias for --job-poll-interval in bencher run
Notable features
- Added `idempotency_key` to `bencher run` for deduplicating retried submissions
- Added `--detach` flag to `bencher run` to skip waiting for remote job completion
- Configurable S3 chunk size via `registry.data_store.chunk_size` (default 5 MB) for OCI uploads
Full changelog
- Buffer OCI upload network frames into configurable S3 chunks (
registry.data_store.chunk_size, default 5 MB) to reduce S3 operations during Docker push - Add
idempotency_keytobencher runto deduplicate retried submissions - Rename
--poll-intervalto--job-poll-intervalforbencher run(--poll-intervalis still supported as a deprecated alias) - Add
--detachflag tobencher runto skip waiting for remote job completion
v0.6.0
Breaking risk
⚠ Upgrade required
- Use positional project argument instead of deprecated flag/env var for `bencher threshold create`
- Specify only a single start point in `bencher run`
- Replace removed language-level adapter options with specific tool adapters (`rust_bench`, `cpp_google`, etc.) or `magic`
Breaking changes
- Update BMF to accept UUID, slug, or name for Benchmark identifier
- Move Organizations and Projects to soft deletion with admin-only hard delete
- Remove `POST /v0/server/restart` endpoint and CLI `bencher server restart` command
Notable features
- Add OCI compliant image registry API
- Add bare metal `runner`
- [MemoryDiagnoser] support to C# DotNet Adapter
Full changelog
- BREAKING CHANGE Update Bencher Metric Format (BMF) to accept UUID, slug, or name for the Benchmark identifier
- Move to soft deletion for Organizations and Projects with admin-only hard deletion
- Add an OCI compliant image registry API
- Add a bare metal
runner - BREAKING CHANGE Remove the
POST /v0/server/restartendpoint and CLIbencher server restartcommand - BREAKING CHANGE Remove the
PUT /v0/server/configendpoint and CLIbencher server config updatecommand - BREAKING CHANGE Remove the deprecated
--projectflag andBENCHER_PROJECTenvironment variable from CLIbencher threshold createcommand (use the positional project argument instead) - BREAKING CHANGE Remove deprecated support for specifying multiple
--start-pointvalues for CLIbencher run(only a single start point is now accepted) - BREAKING CHANGE Remove language-level adapter options (
rust,cpp,go,java,c_sharp,js,python,ruby,shell,dart) from the CLI and API; use the specific tool adapter (e.g.rust_bench,cpp_google) ormagicinstead - Improve server concurrency with database connection pooling
- Add
[MemoryDiagnoser]support to the C# DotNet Adapter (Thank you @ricardoboss) - Add Dart
benchmark_harnessadapter (dart_benchmark_harness) (Thank you @Louisvranderick)
v0.5.10
Bug fix
Fixed GitHub PR comment truncation exceeding maximum length.
Full changelog
- Fix GitHub PR comment exceeding maximum length (Thank you @alexeyr-ci2)
- Improve GitHub API error messages
- Improve developer onboarding docs (Thank you @Xenira)
- Update GitHub Actions docs (Thank you @pgoslatara)
v0.5.9
Feature
Notable features
- Add Single Sign-On (SSO) API (Bencher Plus Enterprise feature)
Changelog
- Add Single Sign-On (SSO) API (Bencher Plus Enterprise feature)
v0.5.8
Bugfix
Fixed Bencher Console for non‑Bencher Plus builds.
Full changelog
v0.5.7
Bugfix
Fixed workspace-level feature unification for non‑Bencher Plus builds.
Full changelog
- Fix workspace level feature unification for non-Bencher Plus builds (Thank you @flokli)
v0.5.6
Breaking risk
Breaking changes
- Renamed configuration key/flag `rust_iai_callgrind` to `rust_gungraun`
Full changelog
- Fix Iai-Callgrind adapter parsing bug (Thank you @gamma0987)
- Add alias for Iai-Callgrind to Gungraun rename, (
rust_iai_callgrind->rust_gungraun)
v0.5.5
Feature
Notable features
- Login with Google authentication option added
- --file flag can be specified multiple times to track several result files
Full changelog
- Add
Login with Googleas an authentication option - Allow the
--fileoption to be specified multiple times to track multiple result files
v0.5.4
Breaking risk
Breaking changes
- Creating an on-the-fly project when CI=true now requires the --ci-on-the-fly flag.
Full changelog
- Fix fork pull request example (Thank you @ruyadorno)
- Improve database backup to run in the background
- Improve server stats to run in the background
- Add branch head version to the Console UI
- BREAKING CHANGE Creating an on-the-fly project when the
CIenvironment variable is set totruewill now require the--ci-on-the-flyflag (Thank you @jaqx0r)
v0.5.3
Maintenance
Minor fixes and improvements.
Changelog
- Improve
iai-callgrindadapter (Thank you gamma0987)
v0.5.2
Bugfix
Fixed empty slug validation bug.
Changelog
- Fix empty slug validation bug