Releases: bencherdev/bencher
Releases · bencherdev/bencher
Release list
v0.6.8
- BREAKING CHANGE Change the default self-hosted API server port from
61016to the newly IANA-registered6610. Deployments relying on the default now serve the API on6610. Update clients, reverse proxies, and--host/BENCHER_HOSTreferences (Docker Compose, devcontainer, and docs are updated to match). To stay on61016, setserver.bind_addressto0.0.0.0:61016(or runbencher up --api-port 61016). - Mark the remaining user API token REST endpoints (list, view, update, and revoke) as deprecated in the OpenAPI spec and API docs; they continue to work for existing tokens
v0.6.7
- Fix the OCI registry token endpoint for the Docker 29+ containerd image store, which sends multiple
scopequery parameters and anOAuth2POST token exchange (Thank you @travishathaway) - Add user-scoped API keys (
bencher_user_...) that authenticate as the owning user across every endpoint a JWT can reach, includingdocker login; the one exception is key management: a user API key cannot create more keys and can only see, update, or revoke itself, so a leaked key cannot mint credentials that outlive its own revocation, tamper with the user's other keys, or enumerate them - Add
bencher user key {create,list,view,update,revoke}CLI subcommands and an "API Keys" page in the Console for managing user API keys --key/BENCHER_API_KEYnow accepts either a project-scoped key (bencher_run_*) or a user-scoped key (bencher_user_*); the--projectrequirement applies only to project-scoped keys- DEPRECATED User API tokens are deprecated in favor of user API keys:
POST /v0/users/{user}/tokens(bencher token create) now always fails with a403 Forbiddenerror; existing API tokens continue to work and can still be listed, viewed, renamed, and revoked - Replace the
Tokensentry in the Console account dropdown withKeys, and hide the "API Tokens" page entirely for accounts created after 15 June 2026 bencher run --github-actionsnow always creates aBencher ReportGitHub Check (failing on an active Alert), so it can be used as a required status check in branch protection; the check is created on a best effort basis, so check creation failures are now warnings instead of errors (Thank you @OmarTawfik)- Create the GitHub Check on the pull request head commit (
pull_request.head.shaorworkflow_run.head_sha) instead ofGITHUB_SHA, so the check appears on the pull request - Append the
--ci-idID to the GitHub Check name (ieBencher Report (<ID>)) so multiplebencher runinvocations on the same commit get distinct, stable check names
v0.6.6
- Show context-aware auth hints in API 404 errors: routes that accept project API keys now mention both API tokens and project keys, while token-only routes mention only API tokens
- BREAKING CHANGE Rename
usagetometricsin the organization usage API response and addrunner_minutesfield for bare metal runner minutes usage - Add
--max-retry-afterCLI option to cap exponential backoff between retries (default 30s) and increase default--attemptsfrom 10 to 35 for ~15 minutes of retry coverage
v0.6.5
- 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
- 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
- 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
- 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
- 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 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
- 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)