Skip to content

THRIFT-6440: Let the .NET tool run where only .NET 9 or later is installed - #4035

Open
Jens-G wants to merge 1 commit into
apache:masterfrom
Jens-G:THRIFT-6440
Open

Jens-G wants to merge 1 commit into
apache:masterfrom
Jens-G:THRIFT-6440

Conversation

@Jens-G

@Jens-G Jens-G commented Oct 20, 2026

Copy link
Copy Markdown
Member

THRIFT-6440

Apache.Thrift.Compiler targets net8.0 and set no RollForward. On a machine with only .NET 9 or 10, dotnet tool install --global Apache.Thrift.Compiler therefore succeeded, and thrift then refused to start: "You must install or update .NET to run this application", asking for Microsoft.NETCore.App 8.0.0.

  • Apache.Thrift.Compiler.csproj: <RollForward>Major</RollForward>. The launcher uses the next newer .NET when 8 is missing; where 8 is installed, nothing changes.
  • test-dotnet-tool.ps1: checks that the packed runtimeconfig.json allows that roll forward. The install-and-run step cannot show the problem on the CI runners, because they have .NET 8: it passed there with the unfixed package.
  • build/windows/README.md describes both.

Checked in the official SDK images: packed from this branch with the 0.25.0 thrift.exe as payload, then test-dotnet-tool.ps1 run on the package.

image master this branch
mcr.microsoft.com/dotnet/sdk:10.0, only .NET 10 4 of 20 checks fail: the new one, and the tool does not start (exit 150) 20 of 20 pass
mcr.microsoft.com/dotnet/sdk:9.0, only .NET 9 not run 20 of 20 pass
mcr.microsoft.com/dotnet/sdk:8.0, only .NET 8 not run 20 of 20 pass

The published 0.25.0 package fails the same 4 checks in the .NET 10 image. It cannot be changed any more; #4033 tells README readers to reinstall it with --allow-roll-forward.

  • Apache Jira ticket: THRIFT-6440
  • Single commit
  • Code change, so the commit carries no CI-skip marker.

🤖 Generated with Claude Code

…alled

Client: build

Apache.Thrift.Compiler targets net8.0 and set no RollForward, so on a
machine with only .NET 9 or 10 the tool installed and then refused to
start, asking for .NET 8. With RollForward=Major the launcher uses the
next newer .NET when 8 is missing; where 8 is installed, nothing
changes.

test-dotnet-tool.ps1 now checks the runtimeconfig.json in the package.
The CI runners have .NET 8 next to newer versions, so installing and
running the tool there could not show the problem.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@mergeable mergeable Bot added the build and general CI cmake, automake and build system changes label Oct 20, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build and general CI cmake, automake and build system changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant