Skip to content

Upgrade target framework from .NET 8 to .NET 10 #169

Description

@artcava

Summary

.NET 8 Isolated Worker will reach End of Life on 10 November 2026. Azure Functions already supports .NET 10 in GA since February 2026. This issue tracks the full upgrade of XPoster from net8.0 to net10.0.

Motivation

Azure Portal is showing the following notification on the Function App resource:

"Upgrade your app to newer version as .NET 8 Isolated will reach EOL on 10/11/2026 and will no longer be supported."

.NET 10 is an LTS release supported until 14 November 2028.

Changes Required

src/XPoster.csproj

  • Change <TargetFramework>net8.0</TargetFramework><TargetFramework>net10.0</TargetFramework>
  • Update NuGet packages to versions compatible with .NET 10 (e.g. Microsoft.Azure.Functions.Worker, Microsoft.Azure.Functions.Worker.Sdk, and any other dependency with a newer compatible version)

global.json

  • Update pinned SDK version from 8.0.x10.0.x

.github/workflows/ci.yml

  • Update actions/setup-dotnet dotnet-version from 8.x to 10.x

.github/workflows/persist-agent-graph.yml and .github/workflows/regenerate-agent-graph.yml

  • Remove the /tmp workaround currently used to escape the global.json SDK pin during graphify-dotnet installation.
  • Both workflows already install .NET 10 SDK and run graphify-dotnet from /tmp/dotnet-tool-install specifically because global.json pins the SDK to 8.0.x, which blocks the tool. Once global.json is updated to 10.0.x, the workaround is no longer needed and the install step can be simplified to a direct call:
    - name: Install graphify-dotnet
      run: dotnet tool install --global graphify-dotnet

Azure Portal

  • Update the Function App runtime stack from .NET 8 to .NET 10 in the Azure Portal configuration (or via IaC if the infra/ templates cover it).

Acceptance Criteria

  • XPoster.csproj targets net10.0
  • global.json pins .NET 10 SDK
  • All NuGet packages build and restore without warnings on .NET 10
  • ci.yml uses .NET 10 SDK
  • persist-agent-graph.yml installs graphify-dotnet without the /tmp workaround
  • regenerate-agent-graph.yml installs graphify-dotnet without the /tmp workaround
  • All existing tests pass
  • Azure Function App runtime stack updated to .NET 10

Metadata

Metadata

Assignees

No one assigned

    Labels

    approvedtriage completed successfullygood first issueGood for newcomersready for masterThis issue is ready to merge in master

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions