Skip to content

Feat: introduce diagnostics and concurrency benchmark suites#71

Merged
rian-be merged 3 commits into
mainfrom
develop
Jul 3, 2026
Merged

Feat: introduce diagnostics and concurrency benchmark suites#71
rian-be merged 3 commits into
mainfrom
develop

Conversation

@rian-be

@rian-be rian-be commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR expands benchmark coverage for ModularityKit.Mutator by adding dedicated diagnostics and concurrency benchmark suites, then updates the CI signing workflow with optional signed package verification.

Highlights

Diagnostics benchmarks

  • Add dedicated diagnostics benchmarks under Benchmarks/Diagnostics.
  • Measure baseline execution, audit/history overhead, and combined diagnostics overhead.
  • Add interceptor overhead benchmarks for passive and logging-style interception.
  • Keep diagnostics benchmark mutations, state, stores, and interceptors scoped to the benchmark project.

Concurrency benchmarks

  • Add dedicated concurrency benchmarks under Benchmarks/Concurrency.
  • Measure parallel execution across distinct runtime state identifiers.
  • Measure state level gate contention in the core mutation runtime.
  • Measure concurrent batch scheduling under limited runtime availability.
  • Add support helpers for repeatable concurrency benchmark scenarios.

Package signing workflow

  • Add NUGET_SIGN_SKIP_VERIFICATION support.
  • Expose signature_verification_enabled from signing workflow steps.
  • Gate signed package verification separately from package signing.
  • Allow CI to keep signing enabled while disabling verification when needed.

Why

Issue #58 asks for benchmark visibility into diagnostics overhead across audit, history, and interception paths.

The new concurrency suite adds runtime-level performance coverage for parallel execution, gate contention, and batch scheduling scenarios.

The signing workflow update makes package publishing more flexible by separating signing from signature verification.

Checks

  • dotnet build Benchmarks/ModularityKit.Mutator.Benchmarks.csproj -c Release
  • sample local BenchmarkDotNet runs for diagnostics and concurrency scenarios

Closes

rian-be added 3 commits July 3, 2026 01:14
Introduce NUGET_SIGN_SKIP_VERIFICATION to allow skipping signed package verification. Expose a new signature_verification_enabled output (steps.signing.outputs.verify_enabled) and write verify_enabled to GITHUB_OUTPUT based on the env/secret. Update publish-artifacts, publish-packages, publish-attested and release-drafter to accept the new input/secret and gate 'Verify signed packages' steps on both signing_enabled and signature_verification_enabled. This enables disabling verification in CI without turning off signing.
@rian-be rian-be self-assigned this Jul 3, 2026
@github-actions github-actions Bot added performance Performance improvements or regressions ci CI/CD and repository automation changes benchmark Benchmark coverage and performance measurement changes and removed performance Performance improvements or regressions labels Jul 3, 2026
@rian-be rian-be merged commit 3a73522 into main Jul 3, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

benchmark Benchmark coverage and performance measurement changes ci CI/CD and repository automation changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Benchmark]: Measure concurrency and gate contention [Benchmark]: Measure interception and diagnostics overhead

1 participant