Skip to content

Apply various modernizations#11

Merged
centeredgebot[bot] merged 7 commits intomainfrom
modernization
Sep 29, 2025
Merged

Apply various modernizations#11
centeredgebot[bot] merged 7 commits intomainfrom
modernization

Conversation

@brantburnett
Copy link
Contributor

Motivation

Keep up to date.

Modifications

  • Drop the out-of-support .NET 6 target and add a .NET 9 target.
  • Use file-scoped namespaces.
  • Update various NuGet dependencies and update to xUnit v3.
  • Update GitHub Actions and GitVersion.
  • Switch to GitHubActionsTestLogger.
  • Update to C# 13.
  • Reduce code duplication by forwarding RunSync calls with no state to the methods which take state parameters. This may also reduce JIT code size in some scenarios.
  • Add OverloadResolutionPriority to RunSync calls so C# 13 and later prefers the Task overload to the ValueTask overload. This simplifies usage by consumers.
  • Use a strong type for work items instead of a ValueTuple.

Motivation
----------
Keep up to date.

Modifications
-------------
- Drop the out-of-support .NET 6 target and add a .NET 9 target.
- Use file-scoped namespaces.
- Update various NuGet dependencies and update to xUnit v3.
- Update GitHub Actions and GitVersion.
- Switch to GitHubActionsTestLogger.
- Update to C# 13.
- Reduce code duplication by forwarding RunSync calls with no state to
  the methods which take state parameters. This may also reduce JIT code
  size in some scenarios.
- Add OverloadResolutionPriority to RunSync calls so C# 13 and later
  prefers the Task overload to the ValueTask overload. This simplifies
  usage by consumers.
- Use a strong type for work items instead of a ValueTuple.
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 modernizes the CenterEdge.Async library by updating target frameworks, dependencies, and code to use newer .NET features. The primary goals are dropping out-of-support .NET 6, adding .NET 9 support, and improving API usability with C# 13 features.

Key changes include:

  • Updated target frameworks from .NET 6 to .NET 9 and upgraded to C# 13
  • Refactored AsyncHelper to reduce code duplication by forwarding simple RunSync calls to stateful methods
  • Added OverloadResolutionPriority attributes to prefer Task overloads over ValueTask when both are applicable

Reviewed Changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
OverloadResolutionPriorityAttribute.cs Adds internal polyfill for C# 13 overload resolution priority feature
CenterEdge.Async.csproj Updates target frameworks, language version, and package dependencies
AsyncHelper.cs Modernizes with file-scoped namespace and reduces duplication by forwarding calls
AsyncHelperTests.cs Updates tests to use cleaner syntax and TestContext cancellation tokens
Build/CI files Updates GitHub Actions, GitVersion, and test runner configurations

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@brantburnett brantburnett marked this pull request as ready for review September 28, 2025 23:50
brantburnett and others added 3 commits September 28, 2025 19:51
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Brant Burnett <bburnett@centeredgesoftware.com>
@brantburnett
Copy link
Contributor Author

/merge

@centeredgebot centeredgebot bot merged commit aee0a56 into main Sep 29, 2025
5 checks passed
@centeredgebot centeredgebot bot deleted the modernization branch September 29, 2025 12:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants