Skip to content

Upgrade to net10#31

Merged
temonk merged 45 commits intomainfrom
upgrade-to-NET10
Jan 12, 2026
Merged

Upgrade to net10#31
temonk merged 45 commits intomainfrom
upgrade-to-NET10

Conversation

@temonk
Copy link
Contributor

@temonk temonk commented Dec 30, 2025

This pull request upgrades the codebase to support .NET 10.0 and introduces several improvements to project configuration, build workflows, and the demo application. The main changes include updating target frameworks, centralizing NuGet package management, enhancing CI workflows, and expanding the demo with new models and service methods.

.NET 10.0 Upgrade and Project Configuration

  • Updated target frameworks for all projects and tests to include net10.0, and removed references to older frameworks such as net7.0. Solution files were updated for Visual Studio 18 compatibility.
  • Added Directory.Packages.props to enable central NuGet package management and standardized package versions across projects. (Directory.Packages.props, AltaSoft.DomainPrimitives.sln) [1] [2]

CI/CD Workflow Enhancements

  • Updated GitHub Actions workflows to use .NET 10.0 in build matrices, removed .NET 7.0, and ensured CI jobs run against net8.0, net9.0, and net10.0. Added publishing of symbol packages (.snupkg) in NuGet publish workflow. (.github/workflows/build_nuget_dont_publish.yml, .github/workflows/dotnet.yml, .github/workflows/publish_nuget.yml) [1] [2] [3] [4]

Demo Application Expansion

  • Updated the demo application to target .NET 10.0 and refactored the Customer model to include both domain and .NET primitive types, nullable variants, and expanded the CustomerService with methods for handling nullable addresses. (Examples/AltaSoft.DomainPrimitives.Demo/AltaSoft.DomainPrimitives.Demo.csproj, Examples/AltaSoft.DomainPrimitives.Demo/Customer.cs, Examples/AltaSoft.DomainPrimitives.Demo/CustomerService.cs) [1] [2] [3] [4] [5]

General Build and Packaging Improvements

  • Improved build properties for code style enforcement, deterministic builds, CI integration, and documentation generation in Directory.Build.props. (Directory.Build.props)

Solution Structure

  • Added the new project AltaSoft.DomainPrimitives.OpenApiExtensions to both main and demo solution files, with corresponding build configurations. (AltaSoft.DomainPrimitives.sln, Examples/AltaSoft.DomainPrimitives.Demo.sln, Examples/AltaSoft.DomainPrimitives.Demo/AltaSoft.DomainPrimitives.Demo.csproj) [1] [2] [3] [4] [5]

Let me know if you want to discuss any specific part of the upgrade or demo changes in more detail!

Temo Nikolaishvili added 30 commits November 12, 2025 13:47
…ve `net7.0` from build matrices and add `net10.0` where appropriate.'
…waggerExtensions\AltaSoft.DomainPrimitives.SwaggerExtensions.csproj'
…mlDataTypes\AltaSoft.DomainPrimitives.XmlDataTypes.csproj'
….UnitTests\AltaSoft.DomainPrimitives.UnitTests.csproj'
….Generator.Tests\AltaSoft.DomainPrimitives.Generator.Tests.csproj'
….XmlDataTypes.Tests\AltaSoft.DomainPrimitives.XmlDataTypes.Tests.csproj'
Corrected flag assignment in `DomainPrimitiveGenerator`. Added explicit operator generation, refactored helpers, and updated generated code. Added tests for disabled operator scenarios.
Enabled central package management, aligned dependency versions, and updated target frameworks to net8.0-net10.0. Simplified project files and improved NuGet metadata.
Enabled central package management. Added domain primitive schema transformers, refactored Swagger mappings, and introduced helper classes for OpenAPI processing.
Added nullable support, validation attributes, and schema updates.
Aligned method names across files and removed unnecessary null check in `DomainPrimitiveOpenApiSchemaTransformer`.
Refactored `GetOpenApiTypeAndFormat` to use a switch statement and added mappings for additional types. Introduced `DomainPrimitiveOpenApiReflectionTransformer` for schema generation via reflection. Updated test schemas to align with new formats.
Temo Nikolaishvili added 3 commits December 16, 2025 16:51
Added AltaSoft.DomainPrimitives.OpenApiExtensions and updated demo and solution files to use it. Removed related logic from SwaggerExtensions.
Copy link
Contributor

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 pull request successfully upgrades the codebase to support .NET 10.0 and introduces significant improvements to package management, OpenAPI integration, and code generation capabilities.

Key Changes:

  • Framework upgrade to support net8.0, net9.0, and net10.0 (removing net7.0)
  • Introduction of centralized package management via Directory.Packages.props
  • New OpenAPI extensions project with schema transformers for native OpenAPI support
  • Enhanced code generation with configurable flags for implicit operators and numeric operations
  • CI/CD workflow updates to build and test against the new framework versions

Reviewed changes

Copilot reviewed 103 out of 106 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
Directory.Packages.props Implements central package management for consistent NuGet versioning across the solution
Directory.Build.props Adds default target frameworks, source link support, and deterministic build settings
.github/workflows/*.yml Updates CI workflows to remove net7.0 and add net10.0 to build matrices
src/AltaSoft.DomainPrimitives.Generator Refactors OpenAPI helper generation, adds flags for controlling operator generation
src/AltaSoft.DomainPrimitives.OpenApiExtensions New project providing OpenAPI schema transformers for .NET 10's native OpenAPI support
src/AltaSoft.DomainPrimitives.SwaggerExtensions Refactored to use OpenApiHelperProcessor for better code reuse
tests/**/*.csproj Upgraded test projects to target net10.0, centralized package versions
Examples/AltaSoft.DomainPrimitives.Demo Enhanced demo with nullable variants, Scalar UI integration, and OpenAPI transformer usage
README.md Updated documentation covering .NET 10 support, new generation flags, and OpenAPI integration

Critical Issues Found:

  • Three project files (.csproj) appear to have file encoding corruption that needs to be addressed
  • Documentation has property name inconsistencies that need correction

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

README.md Outdated
<!-- Disable specific converters -->
<DomainPrimitiveGenerator_GenerateJsonConverters>false</DomainPrimitiveGenerator_GenerateJsonConverters>
<DomainPrimitiveGenerator_GenerateTypeConverters>false</DomainPrimitiveGenerator_GenerateTypeConverters>
<DomainPrimitiveGenerator_GenerateSwaggerConverters>false</DomainPrimitiveGenerator_GenerateSwaggerConverters>
Copy link

Copilot AI Dec 30, 2025

Choose a reason for hiding this comment

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

The property name in the README is incorrect. It should be DomainPrimitiveGenerator_GenerateOpenApiHelper instead of DomainPrimitiveGenerator_GenerateSwaggerConverters to match the actual property name used in the codebase.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@copilot open a new pull request to apply changes based on this feedback

Comment on lines +46 to +54
foreach (var reference in assembly.GetReferencedAssemblies())
{
if (loadedAssemblies.Contains(reference.FullName) || IsSystemAssembly(reference.FullName))
continue;

var loadedAssembly = Assembly.Load(reference);
assembliesToCheck.Enqueue(loadedAssembly);
loadedAssemblies.Add(reference.FullName);
}
Copy link

Copilot AI Dec 30, 2025

Choose a reason for hiding this comment

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

This foreach loop implicitly filters its target sequence - consider filtering the sequence explicitly using '.Where(...)'.

Copilot uses AI. Check for mistakes.
Copy link
Contributor

Copilot AI commented Dec 30, 2025

@temonk I've opened a new pull request, #32, to work on those changes. Once the pull request is ready, I'll request review from you.

temonk and others added 2 commits December 30, 2025 14:03
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@temonk
Copy link
Contributor Author

temonk commented Dec 30, 2025

@copilot can you remove: .github/upgrades/dotnet-upgrade-plan.md

Copy link
Contributor

Copilot AI commented Dec 30, 2025

@temonk I've opened a new pull request, #33, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 4 commits December 30, 2025 10:06
Co-authored-by: temonk <47372530+temonk@users.noreply.github.com>
…veGenerator_GenerateSwaggerConverters

Co-authored-by: temonk <47372530+temonk@users.noreply.github.com>
Remove obsolete DomainPrimitiveGenerator_GenerateSwaggerConverters property from README
Temo Nikolaishvili added 4 commits January 5, 2026 14:32
Applied conditional package versions, set explicit dependency versions, and simplified Scalar API reference configuration.
Copy link
Contributor

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

Copilot reviewed 103 out of 106 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@temonk temonk merged commit ce8e224 into main Jan 12, 2026
7 checks passed
@temonk temonk deleted the upgrade-to-NET10 branch January 12, 2026 09:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants