2
2
3
3
## [ Unreleased]
4
4
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
+
5
104
# # [1.2.0] Custom Gauge Adapters - 2023-08-06
6
105
7
106
The main feature of this release is the new support for custom
@@ -20,7 +119,7 @@ Other new features:
20
119
- make the current invocation accessible in the command as `%(invocation)s` (#230)
21
120
22
121
Other 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)
24
123
- fix handling of environment variables when sudo is used (#210)
25
124
- try `gtime` from MacPorts as alternative `time` command on macOS (#212)
26
125
- update py-cpuinfo to work on macOS with ARM-base CPUs (#212)
@@ -29,6 +128,8 @@ Other changes:
29
128
30
129
Thanks to @naomiGrew for the contributions!
31
130
131
+ **Full Changelog**: https://github.com/smarr/ReBench/compare/v1.1.0...v1.2.0
132
+
32
133
# # [1.1.0] Denoise - 2023-02-21
33
134
34
135
This release focuses on reducing the noise from the system (#143, # 144).
@@ -68,9 +169,9 @@ Other notable improvements:
68
169
- make gauge adapter names in configurations case-insensitive (#202)
69
170
- improve documentation (#197, # 198)
70
171
- use PyTest for unit tests (#192)
71
-
172
+
72
173
**Full Changelog**: https://github.com/smarr/ReBench/compare/v1.0.1...v1.1.0
73
-
174
+
74
175
75
176
# # [1.0.1] - 2020-06-23
76
177
@@ -83,7 +184,7 @@ This is a bug fix release.
83
184
84
185
This is the first official release of ReBench as a "feature-complete" product.
85
186
Feature-complete here means, it is a tried and tested tool for benchmark
86
- execution. It is highly
187
+ execution. It is highly
87
188
[configurable](https://rebench.readthedocs.io/en/latest/config/),
88
189
[documented](https://rebench.readthedocs.io/en/latest/),
89
190
and [successfully used](https://github.com/smarr/ReBench#use-in-academia).
@@ -136,7 +237,7 @@ Thank you!
136
237
- added testing of Python 3.7 (#121) and ruamel.yaml (#123)
137
238
- ensure config is YAML 1.2 compliant (#123)
138
239
- added support for ReBenchDB (#129, # 130)
139
-
240
+
140
241
- fixed issues with error reporting (#128)
141
242
- fixed handling of input size configuration (#117)
142
243
@@ -145,7 +246,7 @@ Thank you!
145
246
- added `--setup-only` option, to run one benchmark for each setup (#110, # 115)
146
247
- added `ignore_timeout` setting to accept known timeouts without error (#118)
147
248
- added `retries_after_failure` setting (#107, # 108)
148
-
249
+
149
250
- fixed data loading, which ignored warmup setting (#111, # 116)
150
251
- fixed how settings are inherited for follow documentation (#112, # 113)
151
252
- fixed message for consecutive failures (#109)
@@ -219,7 +320,8 @@ Thank you!
219
320
- [0.6.0] - 2014-05-19
220
321
- [0.5.0] - 2014-03-25
221
322
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
223
325
[1.2.0] : https://github.com/smarr/ReBench/compare/v1.1.0...v1.2.0
224
326
[1.1.0] : https://github.com/smarr/ReBench/compare/v1.0.1...v1.1.0
225
327
[1.0.1] : https://github.com/smarr/ReBench/compare/v1.0.0...v1.0.1
0 commit comments