Prepare release v2.0.0-alpha.1

This commit is contained in:
David Peter authored and David Peter committed 2026-10-06 16:00:09 +02:00
1 parent bdbfae9907
commit ccc84495ec
6 files changed
+21 -13

No files matched your search

+5 -1
View File
@@ -222,6 +222,8 @@ jobs:
DPKG_CONFLICTS=${{ needs.crate_metadata.outputs.name }}-musl DPKG_CONFLICTS=${{ needs.crate_metadata.outputs.name }}-musl
case ${{ matrix.job.target }} in *-musl*) DPKG_BASENAME=${{ needs.crate_metadata.outputs.name }}-musl ; DPKG_CONFLICTS=${{ needs.crate_metadata.outputs.name }} ;; esac; case ${{ matrix.job.target }} in *-musl*) DPKG_BASENAME=${{ needs.crate_metadata.outputs.name }}-musl ; DPKG_CONFLICTS=${{ needs.crate_metadata.outputs.name }} ;; esac;
DPKG_VERSION=${{ needs.crate_metadata.outputs.version }} DPKG_VERSION=${{ needs.crate_metadata.outputs.version }}
# Debian prereleases must sort before the corresponding stable version.
DPKG_VERSION=${DPKG_VERSION/-/\~}
unset DPKG_ARCH unset DPKG_ARCH
case ${{ matrix.job.target }} in case ${{ matrix.job.target }} in
@@ -340,6 +342,8 @@ jobs:
uses: softprops/action-gh-release@v3 uses: softprops/action-gh-release@v3
if: steps.is-release.outputs.IS_RELEASE if: steps.is-release.outputs.IS_RELEASE
with: with:
prerelease: ${{ contains(needs.crate_metadata.outputs.version, '-') }}
make_latest: ${{ contains(needs.crate_metadata.outputs.version, '-') && 'false' || 'true' }}
files: | files: |
${{ steps.package.outputs.PKG_PATH }} ${{ steps.package.outputs.PKG_PATH }}
${{ steps.debian-package.outputs.DPKG_PATH }} ${{ steps.debian-package.outputs.DPKG_PATH }}
@@ -350,7 +354,7 @@ jobs:
name: Publish to Winget name: Publish to Winget
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: startsWith(github.ref, 'refs/tags/v') if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-')
steps: steps:
- uses: vedantmgoyal2009/winget-releaser@v2 - uses: vedantmgoyal2009/winget-releaser@v2
with: with:
+10 -6
View File
@@ -1,21 +1,25 @@
# Unreleased # v2.0.0-alpha.1
This is the first alpha release of hyperfine 2.0. Command-line options and export formats may change before the stable release. See the breaking changes below when migrating from hyperfine 1.x.
## Features ## Features
- Add support for alternative performance metrics (peak memory usage, CPU cycles, instructions, cache misses, branch misses, ...). By default, hyperfine will now display wall-clock time and peak memory usage, - Add support for alternative performance metrics (peak memory usage, CPU cycles, instructions, cache misses, branch misses, ...). By default, hyperfine will now display wall-clock time and peak memory usage (wall-clock time only on Windows),
but users can use the new `--metrics` option to select different performance metrics. but users can use the new `--metrics` option to select different performance metrics.
- The terminal output now shows an overview of all measured performance metrics, including relative changes. - The terminal output now shows an overview of all selected performance metrics, including relative changes.
- Python plotting and analysis scripts support the new JSON format and can select performance metrics with `--metric`, see #981 and #984 (@sharkdp).
## Breaking changes ## Breaking changes
- Benchmarked commands are now always executed directly, without an intermediate shell (`--shell=none`). Use `-S` (an alias for `--shell=default`) to restore the previous behavior (`sh` on Unix, `cmd.exe` on Windows), or select a shell with `--shell <SHELL>`. - Benchmarked commands are now executed directly by default, without an intermediate shell (`--shell=none`). Use `-S` (an alias for `--shell=default`) to restore the previous behavior (`sh` on Unix, `cmd.exe` on Windows), or select a shell with `--shell <SHELL>`.
- The JSON format for `--export-json` has changed (schema version 2). The new format now includes metadata, per-run measurements, and statistical summaries for all measured quantities, see #790 (@sharkdp). Code that reads those exported JSON files must be updated. For example, `results[i].mean` is now `results[i].summary.time_wall_clock.mean`, and `results[i].times` is replaced by `results[i].measurements[j].time_wall_clock.value`. The new structure looks like this: - The JSON format for `--export-json` has changed (schema version 2). The new format now includes metadata, per-run measurements, and statistical summaries for all measured quantities, see #790 (@sharkdp). Code that reads those exported JSON files must be updated. For example, `results[i].mean` is now `results[i].summary.time_wall_clock.mean`, and `results[i].times` is replaced by `results[i].measurements[j].time_wall_clock.value`. The new structure looks like this:
```python ```python
{ {
"schema_version": 2, "schema_version": 2,
"primary_metric": "time_wall_clock",
"metadata": { "metadata": {
"hyperfine_version": "1.21.0", "hyperfine_version": "2.0.0-alpha.1",
"start_time": "2026-10-06T12:00:00Z", "start_time": "2026-10-06T12:00:00Z",
"platform": {"os": "Linux", "architecture": "x86_64"} "platform": {"os": "Linux", "architecture": "x86_64"}
}, },
@@ -55,7 +59,7 @@
- `--time-unit`/`-u` has been removed. Units can now be selected using the `--metrics METRIC[:UNIT],…` option, e.g. `--metrics time_wall_clock:ms,memory_peak_resident:MiB`. - `--time-unit`/`-u` has been removed. Units can now be selected using the `--metrics METRIC[:UNIT],…` option, e.g. `--metrics time_wall_clock:ms,memory_peak_resident:MiB`.
- `--sort` has been removed. It complicated hyperfine significantly and doesn't make too much sense with the new output format. - `--sort` has been removed. It complicated hyperfine significantly and doesn't make too much sense with the new output format.
- `--reference` and `--reference-name` have been removed (for now). The first command is always considered as the reference command. - `--reference` and `--reference-name` have been removed (for now). The first command is always considered as the reference command.
- The format of Markdown, AsciiDoc, org-mode and CSV exports has also been changed. CSV now includes columns with the name and the unit of the primary metric. - The format of Markdown, AsciiDoc, org-mode and CSV exports has also been changed. These formats contain only the primary metric (the first metric selected by `--metrics`). CSV now includes columns with the name and the unit of the primary metric.
# v1.21.0 # v1.21.0
+2 -2
View File
@@ -13,5 +13,5 @@ authors:
repository-code: 'https://github.com/sharkdp/hyperfine' repository-code: 'https://github.com/sharkdp/hyperfine'
abstract: A command-line benchmarking tool. abstract: A command-line benchmarking tool.
license: MIT license: MIT
version: 1.21.0 version: 2.0.0-alpha.1
date-released: '2026-10-05' date-released: '2026-10-06'
Generated
+1 -1
View File
@@ -377,7 +377,7 @@ checksum = "15cdd26707701c53297e2fa6afb323d55fbc1d0810c3aec078ae3ef0424c3c15"
[[package]] [[package]]
name = "hyperfine" name = "hyperfine"
version = "1.21.0" version = "2.0.0-alpha.1"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"approx", "approx",
+1 -1
View File
@@ -7,7 +7,7 @@ license = "MIT OR Apache-2.0"
name = "hyperfine" name = "hyperfine"
readme = "README.md" readme = "README.md"
repository = "https://github.com/sharkdp/hyperfine" repository = "https://github.com/sharkdp/hyperfine"
version = "1.21.0" version = "2.0.0-alpha.1"
edition = "2018" edition = "2018"
build = "build.rs" build = "build.rs"
rust-version = "1.97.0" rust-version = "1.97.0"
+2 -2
View File
@@ -220,7 +220,7 @@ The following metrics are available:
- Linux: Same scope as `cpu_cycles`. - Linux: Same scope as `cpu_cycles`.
- macOS/Windows: Currently not supported. - macOS/Windows: Currently not supported.
Note that hardware counters are not available if a `--shell` is used. Note that hardware counters are not available when a shell is enabled (`--shell=..`).
Time measurements support units `ns`, `us`, `ms`, `s`, `min`, and `h`. Memory measurements Time measurements support units `ns`, `us`, `ms`, `s`, `min`, and `h`. Memory measurements
support `B`, `kB`, `MB`, `GB`, `TB`, `KiB`, `MiB`, `GiB`, and `TiB`. Hardware counters support `B`, `kB`, `MB`, `GB`, `TB`, `KiB`, `MiB`, `GiB`, and `TiB`. Hardware counters
@@ -237,7 +237,7 @@ You can also use a preset to select a group of metrics:
### Exporting results ### Exporting results
Hyperfine can export results to CSV, JSON, Markdown, AsciiDoc, and org-mode. Non-JSON formats Hyperfine can export results to CSV, JSON, Markdown, AsciiDoc, and org-mode. Non-JSON formats
contain only the primary metric. contain only the primary metric, which is the first metric selected by `--metrics`.
#### Markdown #### Markdown