22
33## [ Unreleased]
44
5+ ## [ 1.3.0] Env Vars part of RunId, and Support for Machine-Specific Settings - 2025-02-03
6+
7+ This release has three major changes that will affect how ReBench interprets configurations,
8+ and a change for ` denoise ` that requires an update of the ` sudoers ` file.
9+
10+ ### 1. "Run" identity is now based on all details, e.g. also env vars (#271 )
11+
12+ This change can affect the number of different runs ReBench identifies.
13+ Until now, the identity of a "run" was based on the command line generated from the
14+ configuration. However, this meant, we could not distinguish between runs
15+ with for instance different environment variables.
16+ From now on, the identity of runs is based on all details of the configuration,
17+ which may mean that configuration files may result in more distinct runs
18+ than they did previously.
19+
20+ ### 2. Build commands are combined and run as a single shell script (#269 )
21+
22+ The ` build: ` key takes a list of commands, which are now combined into a single
23+ shell script. Previously, each command was run separately.
24+ Since we avoid executing the same command multiple times,
25+ treating commands separately led to confusing results and was not very useful.
26+ By combining the commands into a single script, identifying redundant script
27+ execution leads to more predictable results.
28+
29+ ### 3. Support for machine-specific settings (#272 )
30+
31+ A new lowest-priority configuration level is introduced, which is meant to define
32+ machine-specific settings. This can be useful, for instance for settings like this:
33+
34+ ``` yaml
35+ machines :
36+ smaller-machine :
37+ cores : [1, 2]
38+ larger-machine :
39+ cores : [1, 2, 4, 8]
40+ ` ` `
41+
42+ These settings are combined into a configuration based on the usual rules.
43+ So, if a benchmark suite or a benchmark give specific values for ` cores:`, these
44+ have higher priority. However, one would likely use it, avoiding
45+ benchmark-specific values.
46+
47+ When executing ReBench on the corresponding machine, these settings can be
48+ selected with the `-m` option. Thus, the larger machine configuration is used
49+ when running :
50+
51+ ` ` ` bash
52+ rebench -m larger-machine rebench.conf
53+ ` ` `
54+
55+ # ## 4. `rebench` uses `denoise.py` directly as script (#281)
56+
57+ Previously, we used the `rebench-denoise` script that is automatically created
58+ during the setup process. However, this required a setup where ReBench was
59+ installed so that the root user had access to it with a proper `PYTHONPATH`.
60+ To avoid issues with setup, avoid having to pass `PYTHONPATH` through `sudo`,
61+ and to make the use of denoise more robust, we changed `denoise.py` so that it
62+ can be used directly as a script by ReBench.
63+
64+ In practice, the means, it's likely that the `sudoers` file will need to be
65+ updated to point to the `denoise.py` script directly. ReBench will output the
66+ path to the script when it is not able to use it directly.
67+
68+
69+ # ## Other Minor Changes
70+
71+ # ### Features
72+ - add support for ReBenchDB API Version 2 (#236)
73+ - expand `~` in paths, right before invocation (#240, # 283)
74+ - add summary for columns where all values are the same (#256)
75+ - show `env` in debug output (#280)
76+
77+ # ### Changes
78+ - make output for currently running benchmark more compact (#237)
79+ - invoke denoise with absolute path to avoid need for having it on a secure_path (#238, # 273)
80+ - rename the machines variable/filters to a tags variable/filter (#264)
81+ - support Python 3.13 as latest version, drop support for Python 3.8 (#268)
82+ - reduce number of git invocations to get source information (#275)
83+ - distinguish `rebench` return codes for different errors (#282)
84+
85+ # ### Bug Fixes
86+ - added missing machine column heading for summary table (#246)
87+ - behave more gracefully on bare-bone setup, e.g. without git (#245)
88+ - raise error in `TimeAdapter` to match other adapters (#254)
89+ - make profiling with `perf` more robust (#255)
90+ - make denoise more robust to absent tools and running as root with a user-level installation (#260)
91+ - fix handling of ctrl-c interrupts (#262)
92+ - avoid unnecessary warning about data reporting, when no data is to be reported (#277)
93+
94+ # ### Development
95+ - use black formatting (#267)
96+ - use mypy type checking and add some annotations (#270)
97+ - use `pip install —editable` in CI to avoid incorrect coverage reporting (#279)
98+ - add testing on Rocky Linux with integration test (#282)
99+
100+ Thanks to @antonzhukovin, @vext01, and @martinmcclure for their contributions!
101+
102+ **Full Changelog**: https://github.com/smarr/ReBench/compare/v1.2.0...v1.3.0
103+
5104# # [1.2.0] Custom Gauge Adapters - 2023-08-06
6105
7106The main feature of this release is the new support for custom
@@ -20,7 +119,7 @@ Other new features:
20119 - make the current invocation accessible in the command as `%(invocation)s` (#230)
21120
22121Other changes :
23- - fix bug where ` 'None' ` instead of ` null ` was reported to ReBenchDB (#232 )
122+ - make sure `null` is not reported as `'None'` to ReBenchDB (#232)
24123 - fix handling of environment variables when sudo is used (#210)
25124 - try `gtime` from MacPorts as alternative `time` command on macOS (#212)
26125 - update py-cpuinfo to work on macOS with ARM-base CPUs (#212)
@@ -29,6 +128,8 @@ Other changes:
29128
30129Thanks to @naomiGrew for the contributions!
31130
131+ **Full Changelog**: https://github.com/smarr/ReBench/compare/v1.1.0...v1.2.0
132+
32133# # [1.1.0] Denoise - 2023-02-21
33134
34135This release focuses on reducing the noise from the system (#143, # 144).
@@ -68,9 +169,9 @@ Other notable improvements:
68169 - make gauge adapter names in configurations case-insensitive (#202)
69170 - improve documentation (#197, # 198)
70171 - use PyTest for unit tests (#192)
71-
172+
72173**Full Changelog**: https://github.com/smarr/ReBench/compare/v1.0.1...v1.1.0
73-
174+
74175
75176# # [1.0.1] - 2020-06-23
76177
@@ -83,7 +184,7 @@ This is a bug fix release.
83184
84185This is the first official release of ReBench as a "feature-complete" product.
85186Feature-complete here means, it is a tried and tested tool for benchmark
86- execution. It is highly
187+ execution. It is highly
87188[configurable](https://rebench.readthedocs.io/en/latest/config/),
88189[documented](https://rebench.readthedocs.io/en/latest/),
89190and [successfully used](https://github.com/smarr/ReBench#use-in-academia).
@@ -136,7 +237,7 @@ Thank you!
136237 - added testing of Python 3.7 (#121) and ruamel.yaml (#123)
137238 - ensure config is YAML 1.2 compliant (#123)
138239 - added support for ReBenchDB (#129, # 130)
139-
240+
140241 - fixed issues with error reporting (#128)
141242 - fixed handling of input size configuration (#117)
142243
@@ -145,7 +246,7 @@ Thank you!
145246 - added `--setup-only` option, to run one benchmark for each setup (#110, # 115)
146247 - added `ignore_timeout` setting to accept known timeouts without error (#118)
147248 - added `retries_after_failure` setting (#107, # 108)
148-
249+
149250 - fixed data loading, which ignored warmup setting (#111, # 116)
150251 - fixed how settings are inherited for follow documentation (#112, # 113)
151252 - fixed message for consecutive failures (#109)
@@ -219,7 +320,8 @@ Thank you!
219320 - [0.6.0] - 2014-05-19
220321 - [0.5.0] - 2014-03-25
221322
222- [ Unreleased ] : https://github.com/smarr/ReBench/compare/v1.2.0...HEAD
323+ [Unreleased] : https://github.com/smarr/ReBench/compare/v1.3.0...HEAD
324+ [1.3.0] : https://github.com/smarr/ReBench/compare/v1.2.0...v1.3.0
223325[1.2.0] : https://github.com/smarr/ReBench/compare/v1.1.0...v1.2.0
224326[1.1.0] : https://github.com/smarr/ReBench/compare/v1.0.1...v1.1.0
225327[1.0.1] : https://github.com/smarr/ReBench/compare/v1.0.0...v1.0.1
0 commit comments