Upgrade projects to .NET 10 and bump deps#157
Open
syrle-foronda wants to merge 36 commits into
Open
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
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].csproj) insrc/are updated to targetnet10.0(ornet10.0-windowswhere appropriate) instead ofnet8.0. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]Dependency Updates
Azure.Identityto 1.21.0 and addedBasic.Reference.Assemblies.Net100for .NET 10 support.Microsoft.Azure.Functions.Workerand related packages,Microsoft.Azure.Kusto.Data, and severalMicrosoft.Extensions.*packages to their latest versions compatible with .NET 10.System.Formats.Asn1,System.IO.Packaging, andSystem.Text.Jsonto .NET 10 compatible versions.Azure Function Runtime Update
DOTNET|10.0.These changes ensure the codebase is ready for .NET 10 development and deployment.