[ 
https://issues.apache.org/jira/browse/THRIFT-6400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jens Geyer resolved THRIFT-6400.
--------------------------------
    Fix Version/s: 0.26.0
       Resolution: Fixed

> Package the voted compiler in the .NET tool
> -------------------------------------------
>
>                 Key: THRIFT-6400
>                 URL: https://issues.apache.org/jira/browse/THRIFT-6400
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Build Process
>            Reporter: Jens Geyer
>            Assignee: Jens Geyer
>            Priority: Major
>             Fix For: 0.26.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> The {{.NET tool}} workflow builds {{thrift.exe}} from the release tag and 
> packs that build into {{Apache.Thrift.Compiler}}. Two builds of the same 
> source are not the same bytes, so the package on nuget.org does not contain 
> the {{thrift-<version>.exe}} that the release vote covered. THRIFT-6397 made 
> the Windows installer package the voted executable, and the .NET tool should 
> do the same. The 0.25.0 package was built from the tag, and a NuGet version 
> cannot be replaced, so this applies from the next release on.
> h2. Change
> * When the GitHub release is published, the workflow downloads 
> {{thrift-<version>.exe}} from {{dist/release}} with 
> {{get-voted-compiler.ps1}}, which checks its checksums and its signature 
> against {{KEYS}}. It packs that file with the {{LICENSE}} and {{NOTICE}} of 
> the release tag. If the download or a check fails, nothing is packed: a 
> release does not fall back to building its own compiler.
> * A manual run takes a new {{compiler_url}} input, as 
> {{windows-packages.yml}} does, and packs the executable at that URL, for 
> example a release candidate's. A manual run never publishes. The input is 
> what lets the voted path run on a Windows runner without a release.
> * Pull requests, and manual runs without {{compiler_url}}, still build the 
> compiler from source.
> * {{test-dotnet-tool.ps1}} gets {{-ExpectedSha256}}, which the workflow uses 
> to check that the {{thrift.exe}} in the package is the file it packed.
> * The README shown on nuget.org, {{build/windows/README.md}} and 
> {{doc/ReleaseManagement.md}} describe it.
> _Drafted with AI assistance (Claude Opus 5.5)._



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to