Jens Geyer created THRIFT-6400:
----------------------------------

             Summary: 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


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