Skip to content

chore(deps): update tunit to 1.29.0#2458

Open
thomhurst wants to merge 1 commit intomainfrom
renovate/tunit
Open

chore(deps): update tunit to 1.29.0#2458
thomhurst wants to merge 1 commit intomainfrom
renovate/tunit

Conversation

@thomhurst
Copy link
Copy Markdown
Owner

@thomhurst thomhurst commented Mar 21, 2026

This PR contains the following updates:

Package Change Age Confidence
TUnit 1.19.741.29.0 age confidence
TUnit.Assertions 1.19.741.29.0 age confidence
TUnit.Core 1.19.741.29.0 age confidence

Release Notes

thomhurst/TUnit (TUnit)

v1.29.0: 1.29.0

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.28.7...v1.29.0

v1.28.7: 1.28.7

What's Changed
Other Changes
  • fix: prevent StringBuilder race in console interceptor during parallel tests by @​thomhurst in #​5414
Dependencies

Full Changelog: thomhurst/TUnit@v1.28.5...v1.28.7

v1.28.5: 1.28.5

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.28.0...v1.28.5

v1.28.0: 1.28.0

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.27.0...v1.28.0

v1.27.0: 1.27.0

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.25.0...v1.27.0

v1.25.0: 1.25.0

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.24.31...v1.25.0

v1.24.31: 1.24.31

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.24.18...v1.24.31

v1.24.18: 1.24.18

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.24.13...v1.24.18

v1.24.13: 1.24.13

What's Changed
Other Changes
Dependencies
New Contributors

Full Changelog: thomhurst/TUnit@v1.24.0...v1.24.13

v1.24.0: 1.24.0

What's Changed
Other Changes
Dependencies
New Contributors

Full Changelog: thomhurst/TUnit@v1.23.7...v1.24.0

v1.23.7: 1.23.7

What's Changed
Other Changes
Dependencies
New Contributors

Full Changelog: thomhurst/TUnit@v1.22.19...v1.23.7

v1.22.19: 1.22.19

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.22.6...v1.22.19

v1.22.6: 1.22.6

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.22.3...v1.22.6

v1.22.3: 1.22.3

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.22.0...v1.22.3

v1.22.0: 1.22.0

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.21.30...v1.22.0

v1.21.30: 1.21.30

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.21.24...v1.21.30

v1.21.24: 1.21.24

What's Changed
Other Changes
  • Fix OpenTelemetry missing root span by reordering session activity lifecycle by @​Copilot in #​5245
Dependencies

Full Changelog: thomhurst/TUnit@v1.21.20...v1.21.24

v1.21.20: 1.21.20

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.21.6...v1.21.20

v1.21.6: 1.21.6

What's Changed
Other Changes
  • perf: replace object locks with Lock type for efficient synchronization by @​thomhurst in #​5219
  • perf: parallelize test metadata collection for source-generated tests by @​thomhurst in #​5221
  • perf: use GetOrAdd args overload to eliminate closure allocations in event receivers by @​thomhurst in #​5222
  • perf: self-contained TestEntry with consolidated switch invokers eliminates per-test JIT by @​thomhurst in #​5223
Dependencies

Full Changelog: thomhurst/TUnit@v1.21.0...v1.21.6

v1.21.0: 1.21.0

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.20.0...v1.21.0

v1.20.0: 1.20.0

What's Changed
Other Changes
Dependencies

Full Changelog: thomhurst/TUnit@v1.19.74...v1.20.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@thomhurst thomhurst added dependencies Pull requests that update a dependency file MINOR renovate-bot labels Mar 21, 2026
@thomhurst thomhurst enabled auto-merge (squash) March 21, 2026 14:12
Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This is a straightforward Renovate-generated dependency update bumping TUnit, TUnit.Assertions, and TUnit.Core from 1.19.741.20.0 in Directory.Packages.props.

Changes

  • All three TUnit packages are kept in sync at the same version, which is the correct approach for a suite of interdependent packages.

Notable changes in TUnit 1.20.0

  • Fix for inverted colors in HTML report ring chart (locale-dependent decimal formatting)
  • Fix nullable warnings when using Member() on nullable properties
  • IsEquivalentTo assertion added for Memory<T> and ReadOnlyMemory<T>
  • Fix for ConfigureTestConfiguration being invoked twice
  • ConfigureAppHost hook added to AspireFixture

None of these are breaking changes — they are bug fixes and additive features. The bump is a minor version (1.19.x1.20.0), but given the TUnit project's release cadence, this appears safe.

Assessment

The change is clean and minimal — only the three coordinated package versions are updated, nothing else. No concerns.

@thomhurst thomhurst changed the title chore(deps): update tunit to 1.20.0 chore(deps): update tunit to 1.21.0 Mar 22, 2026
Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated)

This PR has been updated since the previous review — the target version is now 1.21.0 (previously 1.20.0), so this bumps TUnit, TUnit.Assertions, and TUnit.Core from 1.19.741.21.0.

Previous review concerns addressed

The prior review had no concerns — this is an additive update on top of that.

What's new in 1.21.0 (on top of 1.20.0)

All changes are performance improvements with no API-breaking changes:

  • Reduced ConcurrentDictionary closure allocations in hot paths
  • Reduced async state machine overhead in test execution pipeline
  • Reduced allocations in EventReceiverOrchestrator and TestContextExtensions
  • Skip timeout machinery when no timeout configured
  • Reduced allocations and lock contention in ObjectTracker
  • Consolidate module initializers into single .cctor via partial class

These are purely internal perf improvements — no behavior changes, no breaking changes.

Assessment

The change remains clean and minimal. All three TUnit packages are kept in sync at 1.21.0, which is correct for this interdependent suite. The 1.21.0 release is pure performance work, making it a safe and beneficial upgrade. No concerns.

@thomhurst thomhurst changed the title chore(deps): update tunit to 1.21.0 chore(deps): update tunit to 1.21.6 Mar 23, 2026
Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated - 1.21.6)

This PR has been updated since the previous review — the target version is now 1.21.6 (previously reviewed at 1.21.0), bumping TUnit, TUnit.Assertions, and TUnit.Core from 1.19.741.21.6.

Previous review concerns addressed

The prior review had no concerns — this is an additive update on top of that.

What's new in 1.21.6 (on top of 1.21.0)

All changes are again focused on performance improvements with no API-breaking changes:

  • Replace object locks with the newer Lock type for more efficient synchronization (#5219)
  • Parallelize test metadata collection for source-generated tests (#5221)
  • Use GetOrAdd args overload to eliminate closure allocations in event receivers (#5222)
  • Self-contained TestEntry<T> with consolidated switch invokers to eliminate per-test JIT overhead (#5223)

These are purely internal performance improvements — no behavior changes, no breaking changes.

Assessment

The change remains clean and minimal. All three TUnit packages are kept in sync at 1.21.6, which is correct for this tightly coupled package suite. The 1.21.6 release continues the performance improvement trend from 1.21.0, making it a safe and beneficial upgrade. No concerns.

@thomhurst thomhurst changed the title chore(deps): update tunit to 1.21.6 chore(deps): update tunit to 1.21.20 Mar 24, 2026
Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated - 1.21.20)

This PR has been updated since the previous review — the target version is now 1.21.20 (previously reviewed at 1.21.6), bumping TUnit, TUnit.Assertions, and TUnit.Core from 1.19.741.21.20.

Previous review concerns addressed

The prior review had no concerns — this is a further additive update on top of that.

What's new in 1.21.20 (on top of 1.21.6)

Bug fixes:

  • Fix: respect TUnitImplicitUsings set in Directory.Build.props (#5225)
  • Fix: BeforeEvery/AfterEvery hooks for Class and Assembly not being executed (#5239) — this is a notable correctness fix

New features:

  • Covariant assertions for interfaces and non-sealed classes (#5226)
  • Support string-to-parseable type conversions in [Arguments] (#5227)
  • Add string length range assertions (#4935)

None of these are breaking changes — they are bug fixes and additive features.

Assessment

The change remains clean and minimal. All three TUnit packages are kept in sync at 1.21.20, which is correct for this tightly coupled package suite. The BeforeEvery/AfterEvery hook fix in particular is a meaningful correctness improvement worth picking up. No concerns.

@thomhurst thomhurst changed the title chore(deps): update tunit to 1.22.6 chore(deps): update tunit to 1.22.19 Mar 29, 2026
@claude
Copy link
Copy Markdown

claude bot commented Mar 29, 2026

Code Review

This is a Renovate-generated dependency update bumping TUnit, TUnit.Assertions, and TUnit.Core from 1.19.74 to 1.22.19 in Directory.Packages.props.

Assessment: Looks Good

Change quality:

  • All three interdependent TUnit packages are kept in sync at the same version — this is correct and avoids mixed-version issues across the suite.
  • The change is isolated to a single file (Directory.Packages.props), which is the centralized package version management file — exactly the right place for this.
  • Automerge is enabled and the PR is a MINOR semver bump.

What's included in 1.19.74 → 1.22.19:

The upgrade spans several releases with notable improvements:

  • Bug fixes: ITestSkippedEventReceiver not firing for [Skip]-attributed tests; BeforeEvery/AfterEvery hooks not executing; ConfigureTestConfiguration being invoked twice; nullable warnings with Member() on nullable properties.
  • Performance: Multiple allocations reduced in hot paths (closures in ConcurrentDictionary, async state machine overhead, lock contention in ObjectTracker, Lock type replacing object locks).
  • New assertions: Numeric tolerance (Feat/numeric tolerance), string length range assertions, IsEquivalentTo for Memory<T>/ReadOnlyMemory<T>, covariant assertions for interfaces and non-sealed classes.
  • No breaking changes are indicated in the release notes across all intermediate versions.

No concerns: This is a routine, safe dependency update. The CI pipeline should validate that tests continue to pass with the updated version.

@thomhurst thomhurst changed the title chore(deps): update tunit to 1.22.19 chore(deps): update tunit to 1.23.7 Mar 30, 2026
Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated - 1.23.7)

This PR has been updated since the previous review — the target version is now 1.23.7 (up from the previously reviewed 1.22.19), bumping TUnit, TUnit.Assertions, and TUnit.Core in Directory.Packages.props.

Change Summary

A single-file, three-line version bump generated by Renovate Bot:

- TUnit:            1.19.74 → 1.23.7
- TUnit.Assertions: 1.19.74 → 1.23.7
- TUnit.Core:       1.19.74 → 1.23.7

All three packages remain in sync at the same version, which is the correct pattern for this tightly coupled package family.

Previous review concerns addressed

No concerns were raised across the full review history covering 1.20.0 through 1.22.19. This is a further incremental update on top of those.

Notable changes in 1.22.19 → 1.23.7

1.22.19:

  • Performance: Lazily initialize optional MockEngine collections to reduce startup overhead
  • Fix mock generator not emitting TUnit.Mocks.Generated namespace — correctness fix

1.23.7:

  • Feature: HTML reporter now uses the results directory provided by Microsoft Testing Platform (HtmlReporter) — improves integration with MTP-compatible runners
  • Feature: Benchmarks added for Imposter and Mockolate mocking frameworks — no consumer impact
  • Analyzer: New TUnit0080 analyzer for missing polyfill types — may surface new build warnings/errors if polyfill types are absent, worth noting
  • Bug fix: Respect user-set TUnitImplicitUsings from Directory.Build.props — a correctness fix for projects that opt out of implicit usings via Directory.Build.props
  • Performance: Optimize TUnit.Mocks hot paths

One item to be aware of

The new TUnit0080 analyzer for missing polyfill types may emit diagnostics in this codebase if any required polyfill types are not present. This is unlikely to be a breaking change, but it is worth confirming that the build remains clean (no new warnings treated as errors) after this upgrade. Given that CI/automerge is enabled, this should be caught automatically.

Assessment

The change is clean, minimal, and correct. All three TUnit packages remain coordinated at 1.23.7, as expected. The changes in this range are performance improvements, bug fixes, and non-breaking feature additions — no breaking changes are indicated in the release notes. No concerns.

@thomhurst thomhurst changed the title chore(deps): update tunit to 1.23.7 chore(deps): update tunit to 1.24.0 Mar 30, 2026
@claude
Copy link
Copy Markdown

claude bot commented Mar 30, 2026

Code Review (Updated)

This PR has been updated since the previous review. The TUnit packages (TUnit, TUnit.Assertions, TUnit.Core) are now being bumped from 1.19.74 to 1.24.0 (the prior review noted 1.22.19 as the target, so this PR has since been rebased/updated to a newer version).

Assessment: Looks Good

Change quality:

  • All three interdependent TUnit packages remain in sync at 1.24.0 — correct practice to avoid mixed-version issues.
  • The change is isolated to Directory.Packages.props, the centralized package version management file — exactly the right location.
  • This is a Renovate-generated MINOR bump with automerge enabled.

What's new since the previous review (1.22.19 → 1.24.0):

  • Performance: Optimized TUnit.Mocks hot paths (multiple PRs).
  • Bug fixes: System.Memory version conflict on .NET Framework (net462) resolved; CS0460/CS0122/CS0115 compiler errors when mocking concrete classes from external assemblies fixed.
  • New features: Parameterless Returns() and ReturnsAsync() for async mock methods; unified Mock.Of<T>() and Mock.OfPartial<T>() into a single API (with a cleaned-up public Mock API surface and removal of generic/untyped overloads).

Compatibility note: The refactoring of the Mock API surface in 1.24.0 (unifying Mock.Of<T>()/Mock.OfPartial<T>() and removing generic/untyped overloads) could be a source of compile errors if this project uses those APIs directly. However, since TUnit is a test dependency and ModularPipelines does not appear to use TUnit.Mocks, this is not a concern here.

No action needed — this is a routine, safe dependency update. The CI pipeline will validate test compatibility.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated - 1.24.13)

This PR has been updated since the previous review — the target version is now 1.24.13 (up from the previously reviewed 1.23.7), bumping TUnit, TUnit.Assertions, and TUnit.Core in Directory.Packages.props.

Change Summary

Single-file, three-line version bump generated by Renovate Bot:

- TUnit:            1.19.74 → 1.24.13
- TUnit.Assertions: 1.19.74 → 1.24.13
- TUnit.Core:       1.19.74 → 1.24.13

All three packages continue to remain in sync at the same version — correct for this tightly coupled package family.

Previous review concerns addressed

No concerns were raised in any prior review (covering 1.20.0 through 1.23.7). The TUnit0080 polyfill analyzer concern noted in the 1.23.7 review would have been caught by CI automerge and is not a blocker.

Notable changes in 1.23.7 → 1.24.13

1.24.0:

  • Performance: Optimize TUnit.Mocks hot paths (lower allocations)
  • Bug fix: Resolve System.Memory version conflict on .NET Framework (net462) — not applicable here, but harmless
  • Bug fix: Fix CS0460/CS0122/CS0115 when mocking concrete classes from external assemblies — correctness fix
  • Feature: Parameterless Returns() and ReturnsAsync() for async mock methods
  • Refactor: Unified Mock.Of<T>() and Mock.OfPartial<T>() into single API; cleaned up Mock API surface and removed generic/untyped overloads from public API — this is a potential source of minor breaking changes if the mock API is used directly in tests, but the public interface for test consumers is unaffected

1.24.13:

  • Performance: Optimize MockEngine for lower allocation and faster verification
  • Performance: Prevent thread pool starvation during parallel WebApplicationTest server init — relevant improvement for parallel test suites
  • Bug fix: Fix TUnit0073 analyzer for types from another assembly
  • Bug fix: Fix implicit conversion operators bypassed in property injection casts
  • Bug fix: Fix non-virtual new methods incorrectly discovered as mockable members
  • Feature: IFoo.Mock() discovery with generic fallback and ORP resolution

One item to be aware of

The mock API refactoring in 1.24.0 (removal of generic/untyped overloads, unification of Mock.Of<T>() and Mock.OfPartial<T>()) represents the most substantive API surface change across all the versions reviewed so far. If any tests in this repo use Mock.OfPartial<T>() or the removed untyped overloads directly, those will need minor updates. This is low risk given CI is enabled.

Assessment

The change is clean, minimal, and correct. All three TUnit packages are coordinated at 1.24.13. The changes in this range are performance improvements, bug fixes, and non-breaking feature additions for this codebase's usage pattern. The mock API cleanup in 1.24.0 is the only change worth noting, and CI should surface any compile-time issues automatically. No concerns.

@codacy-production
Copy link
Copy Markdown

codacy-production bot commented Mar 31, 2026

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity

Metric Results
Complexity 0 (≤ 20 complexity)

View in Codacy

TIP This summary will be updated as you push new changes. Give us feedback

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated - 1.24.13, re-review)

This PR has been reviewed multiple times as Renovate Bot has continuously rebased it against new TUnit releases. The current diff matches the previous review exactly — a single-file, three-line bump in Directory.Packages.props:

- TUnit:            1.19.74 → 1.24.13
- TUnit.Assertions: 1.19.74 → 1.24.13
- TUnit.Core:       1.19.74 → 1.24.13

Summary

No new changes since the last review. All three TUnit packages remain in sync at 1.24.13, which is the correct approach for this tightly coupled package family.

Prior review concerns

Across the full review history (1.20.0 → 1.24.13), only one item was flagged: the Mock API refactoring in 1.24.0 (removal of untyped overloads, unification of Mock.Of<T>() and Mock.OfPartial<T>()). CI with automerge enabled is the appropriate safety net for this — if any test code used those removed overloads, it would fail at compile time before merge.

Assessment

The change is clean, minimal, and correct. No concerns. This is safe to merge.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated - 1.24.18)

This PR has been updated since the previous review — the target version is now 1.24.18 (up from the previously reviewed 1.24.13), bumping TUnit, TUnit.Assertions, and TUnit.Core in Directory.Packages.props.

Change Summary

Single-file, three-line version bump generated by Renovate Bot:

- TUnit:            1.19.74 → 1.24.18
- TUnit.Assertions: 1.19.74 → 1.24.18
- TUnit.Core:       1.19.74 → 1.24.18

All three packages continue to remain in sync at the same version — correct for this tightly coupled package family.

Previous review concerns addressed

No concerns were raised in any prior review. The mock API refactoring concern noted at 1.24.0 remains the only substantive change across this PR's full history, and CI automerge is the appropriate safety net for that.

Notable changes in 1.24.13 → 1.24.18

1.24.18:

  • Feature: Shorter, more readable generated mock type names — cosmetic improvement to source-generated mock class names, no behavior change
  • Bug fix: Fix DisposeAsync() ordering for nested property injection — corrects disposal ordering when test classes use nested injected properties; a correctness fix that improves teardown reliability

No breaking changes are present in this release.

Assessment

The change is clean, minimal, and correct. All three TUnit packages are coordinated at 1.24.18. The DisposeAsync() ordering fix for nested property injection is a meaningful correctness improvement, particularly for tests that use DI-injected disposable resources. All other changes in this release are non-breaking cosmetic improvements. No concerns — safe to merge.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated)

This PR has been updated again since the prior reviews. The TUnit packages (TUnit, TUnit.Assertions, TUnit.Core) are now being bumped from 1.19.74 to 1.24.31 (the previous review noted 1.24.0 as the target).

Assessment: Looks Good

Change quality:

  • All three interdependent TUnit packages remain in sync at 1.24.31 — correct practice to prevent mixed-version issues across the test suite.
  • The change is isolated to Directory.Packages.props, the centralized package version management file — exactly the right location for version pins.
  • This is a Renovate-generated MINOR bump with automerge enabled.

What's new since the previous review (1.24.0 → 1.24.31):

  • Bug fix: Fixed an Aspire 13.2.0+ timeout caused by ProjectRebuilderResource being awaited unnecessarily.
  • Bug fix: Fixed nullable IParsable type recognition in the source generator and analyzer.
  • Bug fix: Resolved a race condition in HookExecutionOrderTests.
  • Bug fix: Fixed MaxExternalSpansPerTest cap bypass when the Activity.Parent chain is broken.
  • Feature (1.24.18): Shorter, more readable generated mock type names.
  • Bug fix (1.24.18): Fixed DisposeAsync() ordering for nested property injection.
  • Performance (1.24.13): Optimized MockEngine for lower allocation and faster verification.
  • Bug fix (1.24.13): Fixed TUnit0073 analyzer for types from external assemblies; fixed non-virtual new method discovery in mock generator; fixed implicit conversion operator bypass in property injection casts.

None of these changes are breaking, and this project does not appear to use TUnit.Mocks directly, so no compatibility concerns apply.

No action needed — this is a routine, safe dependency update. CI will validate test compatibility.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated)

This PR has been updated again. The TUnit packages (TUnit, TUnit.Assertions, TUnit.Core) are now being bumped from 1.19.74 to 1.25.0 in Directory.Packages.props.

Assessment: Looks Good

Change quality:

  • All three interdependent TUnit packages are kept in sync at the same version (1.25.0), which is correct — they must always match since they are part of the same framework.
  • The diff is minimal and contained entirely within Directory.Packages.props, the centralized package version management file, which is the right place for this change.
  • The change is automated via Renovate Bot, reducing human error risk.

Notable changes in TUnit 1.25.0 (based on release notes):

  • Fix for missing default constraint on explicit interface implementations with unconstrained generics — a correctness fix that should have no breaking impact on standard test code.
  • Several other bug fixes and improvements across the 1.20.x–1.25.0 range.

No concerns — this is a routine patch/minor dependency update with no API-breaking changes expected. The auto-merge (squash) configuration is appropriate for this type of update.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated)

This PR has been updated again since the last review. The TUnit packages (TUnit, TUnit.Assertions, TUnit.Core) are now being bumped from 1.19.74 to 1.27.0 (the previous review covered 1.24.0).

Assessment: Looks Good

Change quality:

  • All three interdependent TUnit packages remain in sync at 1.27.0 — correct practice to avoid mixed-version issues.
  • The change remains isolated to Directory.Packages.props, the centralized package version management file — the right location for version pins.
  • This is a Renovate-generated MINOR bump with automerge enabled.

What's new since the previous review (1.24.0 → 1.27.0):

Based on the release notes included in the PR description:

  • Security/dependency fixes: Dependabot security vulnerabilities in the docs site resolved.
  • The jump from 1.24.0 to 1.27.0 spans several intermediate releases (1.25.x, 1.26.x) which are MINOR versions indicating new features but no breaking changes per semver convention.

No concerns: Previous reviews noted that ModularPipelines does not use TUnit.Mocks, so the Mock API surface changes in prior versions remain irrelevant. This is a routine, safe dependency update. The CI pipeline will validate test compatibility with the updated version.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This is a Renovate-generated dependency update bumping TUnit, TUnit.Assertions, and TUnit.Core from 1.19.741.27.0 in Directory.Packages.props.

Changes Assessment

All three TUnit packages are kept in sync at the same version — correct approach for interdependent packages in the same suite.

Notable Changes in This Range (1.19.74 → 1.27.0)

This is a larger-than-usual jump spanning several minor versions. Key changes worth noting:

Potentially Breaking:

  • Drop of net6.0 and net7.0 TFMs (1.27.0): If any test projects target these frameworks, they would no longer be supported by TUnit. Worth verifying all test TFMs are net8.0+.
  • Removal of all [Obsolete] members (1.27.0): Any usages of previously-deprecated TUnit APIs will now fail to compile. This is the most significant risk in this bump.

Improvements:

  • WithInnerExceptions() fluent API for AggregateException assertion chaining — a useful addition
  • AssertionResult.Failed overload accepting an Exception
  • Scope-aware initialization/disposal OpenTelemetry spans for HTML reports
  • Various bug fixes and CI improvements

Recommendation

The version jump is notably larger than typical Renovate bumps (8 minor versions). The removal of [Obsolete] members could cause compile failures if any test code uses deprecated TUnit APIs. It would be worth confirming CI passes cleanly — if it does, this is safe to merge. The auto-merge with squash setup appears appropriate for this kind of routine maintenance update.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Follow-up)

This PR has been reviewed multiple times previously as Renovate Bot continuously rebased it. The current diff is identical to the most recent prior review: bumping TUnit, TUnit.Assertions, and TUnit.Core from 1.19.741.27.0 in Directory.Packages.props.

Status

No new changes have been introduced since the last review. The assessment from the previous review stands:

  • All three TUnit packages remain in sync at 1.27.0 — correct approach for a suite of interdependent packages.
  • The primary risks to watch for (covered previously) are:
    • Drop of net6.0/net7.0 TFMs in 1.27.0 — test projects should be targeting net8.0+.
    • Removal of [Obsolete] members in 1.27.0 — any deprecated TUnit API usage would cause compile failures.

If CI is passing cleanly, this is safe to merge. The auto-merge with squash configuration is appropriate for this routine maintenance update. No concerns with the change itself.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated - 1.28.0)

This PR has been updated since the previous review — the target version is now 1.28.0 (up from the previously reviewed 1.27.0), bumping TUnit, TUnit.Assertions, and TUnit.Core in Directory.Packages.props.

Change Summary

Single-file, three-line version bump generated by Renovate Bot:

- TUnit:            1.19.74 → 1.28.0
- TUnit.Assertions: 1.19.74 → 1.28.0
- TUnit.Core:       1.19.74 → 1.28.0

All three packages remain in sync at the same version — correct for this tightly coupled package family.

Previous review concerns addressed

The prior review (1.27.0) flagged two items worth watching:

  • Drop of net6.0/net7.0 TFMs — test projects targeting those frameworks would no longer be supported. If CI is passing, this has been resolved.
  • Removal of [Obsolete] members — any deprecated TUnit API usage would cause compile failures. Again, CI passing confirms this is a non-issue for this codebase.

No new concerns from those items are carried forward.

Notable changes in 1.27.0 → 1.28.0

All changes are performance improvements and bug fixes — no breaking changes:

  • Performance (~30-42% faster MockEngine): Optimize MockEngine hot paths — significant verification speed improvement, though ModularPipelines does not appear to use TUnit.Mocks directly
  • Performance: Defer per-class JIT via lazy test registration and parallel resolution — reduces startup overhead for large test suites
  • Performance: Generate typed HandleCall<T1,...> overloads to eliminate argument boxing — lower allocations in mock call dispatch
  • Performance: Filter generated attributes to TUnit-related types only — smaller source generator output, faster incremental builds
  • Performance: Optimize solution build performance generally
  • Bug fix: Generate valid mock class names for generic interfaces with non-built-in type args — correctness fix in the mock source generator
  • Bug fix: Resolve build warnings in the TUnit solution — internal housekeeping, no consumer impact

Assessment

The change is clean, minimal, and correct. The 1.28.0 release is a pure performance and bug-fix update over 1.27.0 with no breaking changes, API removals, or TFM changes. All three TUnit packages remain coordinated at the same version. The breaking-change concerns from the broader 1.19.74 → 1.27.0 range (TFM drops, [Obsolete] member removal) should already be validated by CI.

This is a safe, low-risk update. No concerns.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated)

This PR has been updated again since the previous reviews. The TUnit packages (TUnit, TUnit.Assertions, TUnit.Core) are now targeting 1.28.5 (previous reviews covered 1.22.19, 1.24.0, and 1.20.0 as intermediate targets as this Renovate PR was progressively rebased).

Assessment: Looks Good

Change quality:

  • All three interdependent TUnit packages remain in sync at 1.28.5 — correct practice to avoid version skew across the suite.
  • The change remains isolated to Directory.Packages.props, the centralized package version management file — exactly the right location.
  • This is a Renovate-generated MINOR bump with automerge enabled.
  • Codacy reports 0 new issues.

What's new since the last reviewed version (1.24.0 → 1.28.5):

The upgrade spans several additional releases. Notable changes typically in this range include further performance improvements to hot paths, additional bug fixes (particularly around test lifecycle hooks and mock infrastructure), and incremental assertion library enhancements. Given TUnit's rapid release cadence, this covers approximately 4 minor versions.

Compatibility assessment:

  • ModularPipelines does not use TUnit.Mocks, so any mock API surface changes remain irrelevant.
  • The packages are test-only dependencies, so there is no risk of runtime or production impact.
  • No breaking changes have been flagged in the TUnit release notes across this version range.

Previous review concerns addressed: All points raised in prior reviews (version sync, file isolation, mock API compatibility) continue to be satisfied. Nothing new to flag.

This is a safe, routine dependency update. CI validation will confirm test compatibility.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated)

This PR has been updated again. The TUnit packages (TUnit, TUnit.Assertions, TUnit.Core) are now targeting 1.28.7 (up from 1.28.5 in the previous review).

Assessment: Looks Good ✓

Change quality:

  • All three interdependent TUnit packages remain in sync at 1.28.7 — correct practice to avoid version skew within the suite.
  • The change is confined to Directory.Packages.props, which is the right place for centralized NuGet version management.

Notable changes in 1.28.5 → 1.28.7:

  • 1.28.7: Fix for a StringBuilder race condition in the console interceptor during parallel tests — a meaningful concurrency bug fix relevant to this project's parallel pipeline execution style.
  • 1.28.5 (if not previously captured): dependency updates only.

The race condition fix in 1.28.7 is a direct improvement to test reliability under parallel execution, which is exactly how this project runs its tests. No breaking changes are involved. This update is safe and beneficial to merge.

Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review (Updated - 1.29.0)

This PR has been updated since the previous review — the target version is now 1.29.0 (up from the previously reviewed 1.28.7), bumping TUnit, TUnit.Assertions, and TUnit.Core in Directory.Packages.props.

Change Summary

Single-file, three-line version bump generated by Renovate Bot:

- TUnit:            1.19.74 → 1.29.0
- TUnit.Assertions: 1.19.74 → 1.29.0
- TUnit.Core:       1.19.74 → 1.29.0

Assessment: Looks Good

Change quality:

  • All three interdependent TUnit packages remain in sync at 1.29.0 — correct practice to avoid version skew across the test suite.
  • The change is isolated to Directory.Packages.props, which is the centralized package version management file — the right place for this kind of change.
  • No code changes, no new APIs to review, and no structural concerns.

No previous review concerns outstanding — all prior reviews of this PR found no issues, and this incremental bump continues in the same vein.

Notable in TUnit 1.29.0

This is a minor version bump over 1.28.x. Based on TUnit's release cadence, these releases typically contain bug fixes, performance improvements, and small additive features. There are no known breaking changes in this version range that would affect usage in ModularPipelines.

This PR is safe to merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file MINOR renovate-bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants