Bump BenchmarkDotNet from 0.14.0 to 0.15.8 by dependabot[bot] · Pull Request #267 · BcryptNet/bcrypt.net
Sourced from BenchmarkDotNet's releases.
0.15.8
This release adds OpenMetrics exporter support for Prometheus-compatible metrics export, improves the Roslyn analyzers with multi-target support and better type checking, and fixes several bugs including process deadlocks and WASM trimming issues.
Features
- Add OpenMetrics exporter for Prometheus-compatible metrics output (#2801)
- Add Job info to DisassemblyDiagnoser report headers to distinguish assemblies when using multiple coreruns (#2884, fixes #2573)
- Add
NO_COLORenvironment variable support for disabling console colors (#2870)
Improvements
- Multi-target analyzers with improved type assignability checking using semantic model (#2866)
- Add new analyzer diagnostic BDN1503 for better argument/params validation (#2865, fixes #2864)
- Use PolySharp for
[DynamicallyAccessedMembers]attribute polyfill (#2883) - Refactor to use
AsyncProcessOutputReaderfor cleaner process output handling (#2878)
Bug Fixes
- Fix process deadlock issue when reading process output (#2877)
- Fix WASM generated project being trimmed out (#2872)
- Allow filters to filter out every benchmark from a type without errors (#2879, fixes #2860)
- Fix unhandled exception when running
BenchmarkRunner.Run<T>()with arguments on invalid benchmark type (#2880, fixes #2724)
Internal
- Update release workflow for analyzers (#2882)
- Improve docs building workflow
- Cleanup
#if-#endifpreprocessor directives using PolySharp polyfills (#2881)
Full Changelog: dotnet/BenchmarkDotNet@v0.15.7...v0.15.8
0.15.7
This release introduces Roslyn analyzers to catch incorrect BenchmarkDotNet usage at compile time, improves .NET Framework version detection, and updates OS detection support.
Features
- Add Roslyn analyzers to detect incorrect usage of BenchmarkDotNet at compile-time (#2837)
- Validates benchmark class structure (public, non-sealed, generic constraints)
- Checks
[Arguments],[Params], and[ParamsAllValues]attribute usage - Verifies
[GenericTypeArguments]requirements - Ensures only one baseline method per category
- Validates
BenchmarkRunner.Runinvocations
Improvements
- Improve .NET Framework version detection by retrieving version from
TargetFrameworkAttribute(#2682) - Bump Perfolizer 0.6.0 → 0.6.1, bringing updated Windows and macOS version detection in
OsBrandHelper
Bug Fixes
- Fix null reference handling and exception logging in
TestCaseFilterfor the test adapter - Fix flaky CI tests by increasing build timeout values (#2854)
Internal
- Improve release workflow in
release.yaml
Full Changelog: dotnet/BenchmarkDotNet@v0.15.6...v0.15.7
0.15.6
v0.15.6
This release adds ref struct parameter support for [ArgumentsSource], fixes Native AOT runtime moniker resolution, and upgrades to Perfolizer 0.6.0 with the new Pragmastat statistical engine.
Features
- Add ref struct parameter support for
[ArgumentsSource]attribute, enablingSpan<T>andReadOnlySpan<char>parameters (#2849)
Bug Fixes
- Fix runtime moniker normalization for Native AOT targets (#2852)
Improvements
- Upgrade to Perfolizer 0.6.0 with Pragmastat statistical engine integration
Documentation
- Add documentation for breaking changes related to disassembler native dependencies (#2836)
Internal
- Introduce GitHub Actions release workflow
Full Changelog: dotnet/BenchmarkDotNet@v0.15.5...v0.15.6
0.15.5
This release fixes job naming consistency when using --runtimes, clamps histogram bin bounds to avoid confusing negative values, and reduces output directory clutter by filtering unnecessary runtime and satellite assembly files.
Features
- Add custom MSBuild targets to remove unnecessary files from the bin directory (#2737)
- Filters out Capstone native binaries for non-target platforms
- Removes satellite assemblies from Microsoft.CodeAnalysis packages
Bug Fixes
- Fix job names consistency between
SimpleJobAttributeand--runtimesCLI option (#2841)- Jobs now use runtime names as IDs consistently across all runtime monikers
- Clamp histogram bin lower bounds to non-negative values (#1821)
- Prevents confusing negative values in histogram output for non-negative measurements
Internal
- Bump Perfolizer: 0.5.3 → 0.5.4 (#2773)
- Update changelog and GitHub Pages generation workflows
- Enable
workflow_dispatchfor test workflow (#2835)
Full Changelog: dotnet/BenchmarkDotNet@v0.15.4...v0.15.5
0.15.4
This release fixes issues with ParamsSource attribute resolution in inheritance scenarios and corrects a MSBuild syntax error in the TestAdapter.
Bug Fixes
- Allow
[ParamsSource]to resolve overridden methods and properties in derived classes (#2832) - Fix MSBuild condition syntax for
TestTfmsInParallelproperty that prevented Visual Studio from loading projects (#2831)
Full Changelog: dotnet/BenchmarkDotNet@v0.15.3...v0.15.4
0.15.3
This release brings .NET 10 NativeAOT instruction set support, improved CPU detection on Windows when WMIC is unavailable, test adapter filtering, and numerous bug fixes.
Breaking Changes
- Deprecated
.WithNuget()job extension in favor of.WithMsBuildArguments()(#2812)
Features
- Add VS Test Adapter filter support for running specific benchmarks (#2788)
- Update NativeAOT instruction set support for .NET 10+ (#2828)
Improvements
- Add PowerShell-based CPU detection fallback for Windows when WMIC is unavailable (#2749)
- Improve
IsNetCoreandIsNativeAOTdetection for single-file apps without AOT (#2799) - Use
--nodeReuse:falsefor dotnet CLI commands to improve build isolation (#2814) - Enable assembly signing for debug builds (#2774)
Bug Fixes
- Fix
ArgumentsSourceon external types not working if the argument type is not primitive (#2820) - Fix workload warmup mode not working correctly
- Fix
EtwProfilerfor file paths slightly under 260 characters (#2808) - Fix console logs being output twice when using TestAdapter (#2790)
- Fix
EventProcessor.OnEndValidationStagenot being called when critical validation errors occur (#2816) - Fix
XmlExceptionthrown whenTextReader.Nullis passed toAppConfigGenerator(#2817) - Fix case sensitivity issue in
NativeMemoryLogParserprogram name matching (#2795) - Fix typo in
BuildPlots.R
Internal
- Replace StyleCop.Analyzers with unstable version for improved analysis (#2796)
- Add workflow to run selected tests (#2797)
- Fix flaky
MemoryDiagnosertests on macOS (#2813) - Fix x86 disassembler tests for net462 (#2792)
- Split
TimeConsumingBenchmarkclass to reduce test time - Update
BenchmarkDotNetDiagnoserspackage version (#2805) - Fix comment in package props about
GenerateProgramFile(#2802)
Full Changelog: dotnet/BenchmarkDotNet@v0.15.2...v0.15.3
0.15.2
This release improves memory allocation measurement accuracy and adds new features for job ordering and runtime validation.
Features
- Add
JobOrderPolicyoption to sort jobs in numeric order instead of ordinal order (#2770) - Add
RuntimeValidatorto detect benchmarks with null runtime configuration (#2771)
Improvements
- Improve memory diagnoser accuracy with better allocation measurement isolation, warm-up phase, and handling of tiered JIT (#2562)
Bug Fixes
- Auto-generate unique job IDs between benchmark runs to prevent ID collisions
- Skip null runtime validation for in-process toolchain (#2780)
- Fix flaky memory allocation test (#2782)
- Fix benchmark test adapter enumeration issues (#2766)
Internal
- Modify macOS runner image for CI (#2775)
- Add setting to skip test reports when original workflow is cancelled (#2772)
- Suppress xunit non-serializable data warnings (#2769)
- Enable
--force-clonefor docs-fetch in generate-gh-pages workflow - Allow
workflow_dispatchfor publish-nightly workflow - Enhance docs-fetch command with additional options
- Remove
docs/_changelogfolder from main branch (migrated to docs-changelog branch)
Full Changelog: dotnet/BenchmarkDotNet@v0.15.1...v0.15.2
0.15.1
A maintenance release with improved cross-platform compatibility, a new feature for referencing external types in source attributes, and several bug fixes for ARM CPUs and unsupported operating systems.
Features
- Allow
[ArgumentsSource]and[ParamsSource]to reference methods in other types via new constructor overload:[ArgumentsSource(typeof(MyClass), nameof(MyClass.Values))](#2748)
Bug Fixes
- Fix WakeLock P/Invoke compatibility with ARM CPUs by refactoring
REASON_CONTEXTto use proper union structure (#2745, #2756) - Fix
Console.CancelKeyPresscrash on platforms that don't support it (Android, iOS, tvOS, WASM) (#2739, #2741) - Fix CPU detection crash on unsupported operating systems by returning
CpuInfo.Unknown(#2740) - Support
.slnxsolution file format when searching for solution files (#2764)
Improvements
- Bump Perfolizer: 0.5.2 → 0.5.3
- Make
ExporterBase.GetArtifactFullNameaccessibility modifier more permissive
Internal
- Update .NET SDK version to 8.0.410 (#2762)
- Update Microsoft.NET.Test.Sdk and other package dependencies (#2750, #2755)
- Rework changelog generation to use
docs-changelogbranch (#93d12c42) - Fix line-endings to LF in several files
- Update GitHub Actions workflows
Full Changelog: dotnet/BenchmarkDotNet@v0.15.0...v0.15.1
0.15.0
BenchmarkDotNet v0.15.0 brings .NET 10 support, a new WakeLock feature to prevent system sleep during benchmarks, improved engine internals for more consistent measurements, and numerous bug fixes and improvements.
Features
- WakeLock support: New
[WakeLock]attribute and--wakeLockCLI option to prevent the system from entering sleep mode while benchmarks are running (#2670) - .NET 10 support: Added
RuntimeMoniker.Net10,NativeAot10, andMono10with full toolchain support (#2642) - Box plots in ScottPlotExporter: New box plot visualization for benchmark results with improved font sizing
- RiscV64 platform support: Added
Platform.RiscV64for RISC-V 64-bit architecture (#2644, #2647) - Required properties support: Benchmark classes can now use C# 11
requiredproperties (#2579) - HostSignal.AfterProcessStart: New signal allows diagnosers to obtain the process ID of a benchmark process started in suspended state (#2674)
- Parallel build control: New
ConfigOptions.DisableParallelBuildoption to force sequential builds (#2725) - Auto-hide empty metric columns:
ThreadingDiagnoserandExceptionDiagnosernow support configuration to hide columns when metrics have no values (#2673) - Measurements in DiagnoserResults: Custom diagnosers can now access measurements for calculations (#2731)
Improvements
- Constant stack size engine refactoring: Engine stages refactored to use
IEngineStageEvaluatorfor more consistent instruction location and simpler code (#2688) - Use ArtifactsPath instead of IntermediateOutputPath: Improved build artifact handling for SDK 8+ (#2676)
- InProcessNoEmitRunner NativeAOT support: Basic support for running
InProcessNoEmitRunnerwith NativeAOT (#2702) - Allow ParamsAttribute values from derived classes:
ParamsAttribute.Valuessetter is now protected instead of private (#2716) - Updated clrmd to 3.1: Disassembler now uses
ClrMdV3Disassembler(#2488) - Updated ScottPlot to 5.0.54: Plotting exporter updated to latest ScottPlot version (#2709)
- Perfolizer upgraded to 0.5.2: CPU/OS detection logic moved to Perfolizer with new
Perfonarexporters replacingPhdexporters - Log warnings for empty benchmarks: Clear warning messages when running benchmarks that match no methods (#2718)
- Validation for sealed benchmark classes: Compiler now warns when benchmark classes are sealed (#2660)
- Improved baseline warning message: More descriptive warning when baseline benchmarks are misconfigured (#2650)
Bug Fixes
- Fix async GlobalSetup/GlobalCleanup with InProcessEmit: Async setup and cleanup methods are now properly awaited (#2109)
- Fix Windows path too long: Handle Windows MAX_PATH limitations in build paths (#2681)
- Fix builds with --keepFiles: Include auto-incremented ID in build artifacts directory to avoid conflicts (#2423)
- Fix Ctrl-C handling: System state (power management, console title) is now properly reverted on process termination (#2483, #2661)
- Fix dotnet command failure detection: Commands now always fail when dotnet returns non-zero exit code (#2535)
- Fix deadlock in GetDotNetSdkVersion: Resolved potential deadlock in SDK version detection (#2622)
- Fix lscpu CPU frequency parsing: Corrected frequency parsing from lscpu output
- Make lscpu call language-invariant: CPU detection now works correctly regardless of system locale (#2577)
- Clean up unsupported Native AOT flags: Removed obsolete
IlcGenerateCompleteTypeMetadataand updated flag names (#2616) - Native AOT projects copy SettingsWeWantToCopy: Build settings are now properly propagated (#2665)
Breaking Changes
- Removed ConfigCompatibilityValidator: No longer validates config compatibility between runs (#2599)
- Phd exporters renamed to Perfonar:
[PhdExporter]→[PerfonarExporter],PhdJsonExporter→PerfonarJsonExporter,PhdMdExporter→PerfonarMdExporter - Removed netstandard1.0 target from Annotations package: Minimum target is now netstandard2.0
Documentation
- Added Visual Studio Profiler documentation with samples (#2672)
- Added WakeLock documentation and samples (#2670)
... (truncated)
Commits viewable in compare view.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.