Skip to content

Upgrade projects to .NET 10 and bump deps#157

Open
syrle-foronda wants to merge 36 commits into
mainfrom
upgrade-to-net10-sdk
Open

Upgrade projects to .NET 10 and bump deps#157
syrle-foronda wants to merge 36 commits into
mainfrom
upgrade-to-net10-sdk

Conversation

@syrle-foronda

Copy link
Copy Markdown
Member

This pull request upgrades the project to .NET 10 across all pipelines and projects. It updates all relevant CI pipeline configurations and project files to target .NET 10, and includes associated package updates to ensure compatibility. Several dependencies are also updated to their latest versions to support .NET 10.

.NET 10 Migration

  • All pipeline YAML files (build-pipeline.yml, build-telemetry.yml, gen-catalog.yml, gen-design-notes.yml, gen-usage-pipeline.yml, release-telemetry.yml, and pipeline templates) now use the .NET 10 SDK instead of .NET 8. [1] [2] [3] [4] [5] [6] [7] [8]
  • All project files (.csproj) in src/ are updated to target net10.0 (or net10.0-windows where appropriate) instead of net8.0. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

Dependency Updates

  • Updated Azure.Identity to 1.21.0 and added Basic.Reference.Assemblies.Net100 for .NET 10 support.
  • Updated Microsoft.Azure.Functions.Worker and related packages, Microsoft.Azure.Kusto.Data, and several Microsoft.Extensions.* packages to their latest versions compatible with .NET 10.
  • Updated transitive dependencies such as System.Formats.Asn1, System.IO.Packaging, and System.Text.Json to .NET 10 compatible versions.

Azure Function Runtime Update

  • The Azure Functions runtime stack in the telemetry release pipeline is updated to use DOTNET|10.0.

These changes ensure the codebase is ready for .NET 10 development and deployment.

syrle-foronda and others added 30 commits June 2, 2026 09:36
Migrate the repository to .NET 10: update TargetFrameworks across many csproj files and switch pipeline UseDotNet tasks and Azure Functions runtime to .NET 10. Bump several package versions (Azure.Identity, Microsoft.Azure.Functions.Worker and related packages, Microsoft.Extensions.*, Microsoft.Azure.Kusto.Data, transitive System.* versions) and add Basic.Reference.Assemblies.Net100 for test/reference support. Adjust test infra and code to support Net10 (add Net10 enum, default AssemblyBuilder framework, Net100 references, and a new TargetFrameworkCollector test). Add defensive parsing and robustness in ApiCatalog (GetMarkup bounds/token checks; PlatformAnnotationContext guards and exception handling) to prevent crashes when encountering malformed data.
GetMarkup now honors the negative-offset "no markup" sentinel and no longer
throws, so the ArgumentOutOfRangeException try/catch is removed to restore the
original control flow.

Quote stripping is restored to the original semantics via an UnquoteLiteral
helper that strips surrounding quotes for the expected "platform" literal form,
while guarding the degenerate short/unquoted case that the old
Substring(1, Length - 2) could not handle.
…entinel

A negative markup offset is the existing "no markup" sentinel in this blob
format (same convention used for absent ReferenceTokens). Some declarations
legitimately have no markup, so honor that sentinel and return an empty markup.

Removes the span.Length < 4 and tokenCount <= 0 guards, which silently masked
genuine catalog corruption and changed behavior for valid data. This keeps the
only required .NET 10 adaptation (tolerating the no-markup sentinel) while
preserving the original behavior for all valid catalog data.
Add packageType: sdk and includePreviewVersions: true to UseDotNet@2 steps across multiple pipeline files (gen-catalog, gen-design-notes, gen-usage-pipeline, templates/steps-build-planner.yml, templates/upload-build-planner.yml). In templates/steps-gen-usage.yml change packageType from runtime to sdk, remove explicit installationPath and DOTNET_ROOT, and simplify the dotnet invocation to use the PATH (dotnet ...). These changes ensure the SDK (including preview builds) is used consistently and simplify local dotnet tooling invocation in the pipelines.
Change UseDotNet@2 inputs to install the SDK (packageType: sdk) and enable preview versions across pipelines. In release-gen-design-notes-pipeline, switch from installing the runtime to the SDK, remove installationPath and DOTNET_ROOT, and call dotnet directly (instead of using the explicit Agent.ToolsDirectory path). These changes ensure the dotnet CLI is available on PATH and simplify invocation for GenDesignNotes; also apply the same SDK packageType addition to build and telemetry pipelines.
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