Skip to content

Conversation

@thomhurst
Copy link
Owner

This PR contains the following updates:

Package Type Update Change
Polyfill nuget minor 9.4.19.5.0

Release Notes

SimonCropp/Polyfill (Polyfill)

v9.5.0

Compare Source


Configuration

📅 Schedule: 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 this update 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 labels Dec 23, 2025
Copilot AI review requested due to automatic review settings December 23, 2025 21:09
@thomhurst thomhurst added renovate-bot dependencies Pull requests that update a dependency file labels Dec 23, 2025
@thomhurst thomhurst enabled auto-merge (squash) December 23, 2025 21:09
@claude
Copy link
Contributor

claude bot commented Dec 23, 2025

Code Review - PR #4152: Update Polyfill to 9.5.0

⚠️ Critical Issue: Incomplete Update

The PR updates the Polyfill version in TUnit.Core.targets but misses a required update in Directory.Packages.props.

Current state:

  • TUnit.Core.targets line 11: 9.5.0 (updated)
  • Directory.Packages.props line 63: 9.4.1 (not updated)

Impact:
This creates a version mismatch. Projects using Central Package Management (CPM) will reference 9.4.1 from Directory.Packages.props, while the TUnit.Core.targets file uses VersionOverride to inject 9.5.0. This could lead to:

  1. Confusion during debugging
  2. Potential dependency resolution issues
  3. Inconsistent behavior between CPM and non-CPM projects

🔧 Required Fix

Update Directory.Packages.props line 63:

-    <PackageVersion Include="Polyfill" Version="9.4.1" />
+    <PackageVersion Include="Polyfill" Version="9.5.0" />

✅ Positive Aspects

  • Minor version bump (9.4.1 → 9.5.0) - low risk
  • Update is in the correct file for auto-injection logic
  • No code changes required (dependency-only update)

📋 Recommendation

Do not merge until Directory.Packages.props is updated to match. The Renovate bot should update both files atomically to maintain consistency.


Review based on TUnit CLAUDE.md guidelines - ensuring consistency across build configuration files.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the Polyfill dependency from version 9.4.1 to 9.5.0, a minor version update. This is an automated dependency update generated by Renovate Bot.

Key Changes:

  • Updates the Polyfill version string in TUnit.Core.targets to 9.5.0

<!-- Auto-include Polyfill package for compile-time type generation -->
<PropertyGroup>
<_TUnitPolyfillVersion>9.4.1</_TUnitPolyfillVersion>
<_TUnitPolyfillVersion>9.5.0</_TUnitPolyfillVersion>
Copy link

Copilot AI Dec 23, 2025

Choose a reason for hiding this comment

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

The Polyfill version is also defined in Directory.Packages.props at line 63 and needs to be updated to 9.5.0 to maintain consistency. The project uses Central Package Management (CPM) as evidenced by Directory.Packages.props, and TUnit.Core.targets references this version for automatic Polyfill injection. Both version definitions should be kept in sync.

Copilot uses AI. Check for mistakes.
@claude
Copy link
Contributor

claude bot commented Dec 23, 2025

PR Review: Polyfill 9.4.1 → 9.5.0 Update

Summary

This PR updates the Polyfill dependency from version 9.4.1 to 9.5.0. The change is isolated to the TUnit.Core.targets file and follows the standard Renovate Bot workflow.

✅ Positive Observations

  1. Minimal, Focused Change: The update is confined to a single version property (_TUnitPolyfillVersion), reducing risk.

  2. Dual-Mode Compatibility: ✅ The Polyfill package is used for compile-time polyfills via source generation, so this update should not affect the dual-mode implementation (source-gen vs reflection) since it only provides type definitions for older frameworks.

  3. Proper Scope: The package is correctly scoped with PrivateAssets=all and IncludeAssets=compile; analyzers in the targets file (lines 18-20), ensuring it's only used at compile-time and doesn't leak into consumer dependencies.

  4. Version Synchronization: Note that Directory.Packages.props (line 63) still shows 9.4.1. This is intentional—the .targets file uses VersionOverride for NuGet consumers, while internal projects reference the centrally managed version.

🔍 Considerations

  1. Central Package Management (CPM) Synchronization: While the .targets file is updated, you should verify whether Directory.Packages.props needs updating as well. Based on the code review:

    • TUnit.Core.targets (this PR): Used by external NuGet consumers
    • Directory.Packages.props: Used by internal TUnit projects

    Recommendation: Update Directory.Packages.props line 63 to match:

    <PackageVersion Include="Polyfill" Version="9.5.0" />
  2. Testing Strategy: Since Polyfill provides compile-time type definitions for netstandard2.0/2.1 and .NET Framework:

    • ✅ CI tests should validate builds against these target frameworks
    • ✅ Ensure snapshot tests pass (no source generator changes expected)
    • The ongoing CI checks will verify this
  3. Breaking Changes: Without access to the Polyfill 9.5.0 release notes, I cannot confirm if there are breaking changes. However:

    • Minor version bump (9.4 → 9.5) typically follows semver (non-breaking)
    • Polyfill is a well-maintained library with stable APIs
    • Risk is low, but monitor CI results

📋 Pre-Merge Checklist

  • Change is minimal and isolated
  • No dual-mode implementation concerns (Polyfill is compile-time only)
  • No snapshot test updates required (Polyfill doesn't affect generated code)
  • No public API changes
  • AOT/Trimming compatibility unaffected (Polyfill provides compile-time attributes)
  • CI checks running (currently in progress)
  • Action Required: Consider updating Directory.Packages.props line 63 to 9.5.0 for consistency

🎯 Recommendation

LGTM with minor suggestion: The PR is safe to merge once CI passes. Consider updating Directory.Packages.props in a follow-up commit to keep internal and external versions synchronized, though this is not strictly required if the versions are intentionally managed separately.

The automerge configuration should proceed safely once all status checks complete.


Review generated following TUnit development guidelines in CLAUDE.md

@claude
Copy link
Contributor

claude bot commented Dec 23, 2025

Pull Request Review

Summary

This PR updates the Polyfill dependency from version 9.4.1 to 9.5.0. This is a Renovate-generated dependency update for a compile-time polyfill package used to support older target frameworks (netstandard2.0, netstandard2.1, and .NET Framework).

Code Quality ✅

  • Change is minimal and focused: Single version number update in TUnit.Core.targets
  • Follows project conventions: Properly updates the _TUnitPolyfillVersion property
  • Clean and clear: No extraneous changes

Potential Issues 🔍

⚠️ Version Sync Concern

I notice that Directory.Packages.props already shows Polyfill version 9.5.0, but this PR only updates TUnit.Core.targets. This could indicate:

  1. Possible scenario: Directory.Packages.props was already updated in a previous commit/PR
  2. Risk: The two files may get out of sync if not updated together

Recommendation: Verify that both files are in sync:

  • Directory.Packages.props (for internal TUnit projects using Central Package Management)
  • TUnit.Core.targets (for NuGet consumers of TUnit)

You can verify with:

grep 'Polyfill.*Version' Directory.Packages.props TUnit.Core/TUnit.Core.targets

If they're already in sync, this is fine. If not, ensure both are updated to 9.5.0.

Performance Considerations ✅

  • No performance impact: This is a compile-time only dependency (<IncludeAssets>compile; analyzers</IncludeAssets>)
  • No runtime overhead: Assets are explicitly excluded (<ExcludeAssets>runtime; native; contentfiles; build; buildtransitive</ExcludeAssets>)
  • Polyfill provides modern C# APIs for older target frameworks, enabling TUnit to use modern syntax across all targets

Security Concerns ✅

  • Trusted source: SimonCropp/Polyfill is a well-known, widely-used library in the .NET ecosystem
  • Minimal attack surface: Compile-time only, no runtime code
  • Minor version bump: Low risk of breaking changes (9.4.1 → 9.5.0)

Test Coverage 📋

Recommendations:

  1. ✅ Ensure all tests pass (Renovate typically waits for CI)
  2. ⚠️ Verify compatibility with older frameworks: Since Polyfill is specifically for netstandard2.0/2.1 and .NET Framework, ensure tests run on these targets:
    dotnet test --framework netstandard2.0
    dotnet test --framework netstandard2.1
  3. Check that source generator tests still pass, as Polyfill provides types used in generated code

Adherence to CLAUDE.md Guidelines ✅

From the project's development guide:

  • No VSTest references: N/A (dependency update only)
  • AOT/Trimming compatible: Polyfill is designed for this (compile-time only)
  • Minimal change: Follows the principle of focused, single-purpose changes
  • Snapshot tests: Not required for version-only dependency updates

Overall Assessment

Verdict: ✅ APPROVE with minor verification

This is a straightforward, low-risk dependency update. The change is clean, focused, and follows proper conventions.

Action items before merge:

  1. Verify Directory.Packages.props and TUnit.Core.targets are in sync (both showing 9.5.0)
  2. Confirm all CI checks pass (especially tests targeting netstandard2.0/2.1)
  3. Review Polyfill 9.5.0 release notes if any breaking changes are mentioned (though unlikely for minor version)

The automerge setting should handle this safely once CI passes. Good automated dependency management! 🤖


Review generated with assistance from Claude Code

@claude
Copy link
Contributor

claude bot commented Dec 24, 2025

Code Review - PR #4152: Update Polyfill to 9.5.0

LGTM - Clean Dependency Update

This PR correctly updates the Polyfill version reference in TUnit.Core.targets to match the version already specified in Directory.Packages.props.


📋 Review Summary

Code Quality: ✅ Excellent

  • Single-purpose change: Updates only the _TUnitPolyfillVersion property in TUnit.Core/TUnit.Core.targets:11
  • Version synchronization: Correctly aligns with Directory.Packages.props:63 which already shows 9.5.0
  • Minimal scope: 1 file, 1 line changed (+1/-1)

Dual-Mode Compatibility: ✅ Not Affected

  • Polyfill is a compile-time only dependency providing type definitions for older target frameworks (netstandard2.0/2.1, .NET Framework)
  • Does not affect runtime behavior in either source-generated or reflection execution modes
  • No changes needed to source generator or engine code

Performance: ✅ No Impact

  • Compile-time dependency (<IncludeAssets>compile; analyzers</IncludeAssets>)
  • Zero runtime overhead (<ExcludeAssets>runtime; native; contentfiles; build; buildtransitive</ExcludeAssets>)
  • Version bump is minor (9.4.1 → 9.5.0), following semver conventions

Security: ✅ Low Risk

  • Minor version update from trusted source (SimonCropp/Polyfill)
  • Compile-time only dependency with minimal attack surface
  • Renovate Bot verified and automerge enabled

Test Coverage: ✅ CI Validates

  • No snapshot test updates required (no source generator output changes)
  • No public API changes
  • CI is running full test suite across multiple platforms (Ubuntu, Windows, macOS) and locales (fr-FR, pl-PL, de-DE)
  • CodeQL and Snyk security scans passing

AOT/Trimming: ✅ Compatible

  • Polyfill is designed for AOT compatibility
  • Only provides compile-time polyfills, no runtime dependencies

📝 Pre-Commit Checklist (per CLAUDE.md)

  • Single-purpose, minimal change
  • Version synchronized with Directory.Packages.props
  • No dual-mode implementation concerns
  • No snapshot test updates needed
  • No public API changes
  • No performance-critical path changes
  • AOT/trimming compatible
  • CI checks running (in progress)
  • Follows modern C# and project conventions

Recommendation: APPROVE

This is a textbook dependency update:

  • Clean, focused change
  • Properly synchronized with central package management
  • Low risk, no behavioral changes
  • Automated testing in progress

The automerge configuration should proceed safely once CI completes. No action required from maintainers.


Review conducted following TUnit CLAUDE.md development guidelines

@thomhurst thomhurst force-pushed the renovate/_tunitpolyfillversion branch from a50cc86 to 11564a1 Compare December 24, 2025 00:53
This was referenced Dec 29, 2025
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.

3 participants