Skip to content

THRIFT-6401: Declare the minimum Visual C++ runtime for WinGet and Chocolatey, and drop the dead Chocolatey icon - #3997

Merged
Jens-G merged 1 commit into
apache:masterfrom
Jens-G:THRIFT-6401
Oct 2, 2026
Merged

Jens-G merged 1 commit into
apache:masterfrom
Jens-G:THRIFT-6401

Conversation

@Jens-G

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

Copy link
Copy Markdown
Member

THRIFT-6401

The Chocolatey review of the thrift 0.25.0 package, which is still in moderation, flagged two things in thrift.nuspec.in:

  • The iconUrl, https://thrift.apache.org/assets/images/thrift-logo.svg, returns 404. There is no square Thrift logo to point at: the site's favicon is the ASF leaf, and the ASF logo service only has the wordmark. So the package goes without an icon, as the 0.12.0 package did.
  • The vcredist140 dependency names no version. Microsoft's binary compatibility rules say that the installed redistributable "must be at least as new as the latest build tools used by any app component", and thrift-0.25.0.exe reports linker version 14.51. Without a minimum, any vcredist140 that is already installed satisfies the dependency and is not updated.

The WinGet manifest declares Microsoft.VCRedist.2015+.x64 without a minimum as well.

Changes

  • thrift.nuspec.in: no iconUrl, and <dependency id="vcredist140" version="14.51" />.
  • Apache.Thrift.installer.yaml.in: MinimumVersion: '14.51' under the redistributable. The value is quoted, so that YAML does not read it as a number and the schema does not reject it.
  • test-chocolatey-package.ps1 checks that the dependency names a minimum, that it matches the WinGet template, and that the nuspec names no icon. test-winget-manifests.ps1 checks that the rendered manifest carries the quoted minimum.
  • doc/ReleaseManagement.md, in the compiler build steps: raise both values when the compiler is built with newer build tools. dumpbin /headers shows their version. build/windows/README.md mentions the minimum.

Both package managers offer 14.51.36247 of the redistributable, so the minimum can be met.

Verification

  • On the unchanged templates the new checks fail: three of 26 in the Chocolatey test (no minimum, no match, icon present) and one of 24 in the WinGet test. With this change, 26 and 24 checks pass.
  • Rendered for 0.25.0 from the GitHub release asset, the three WinGet manifests pass validate_manifests.py against the WinGet 1.12.0 schemas. The staged nuspec is well-formed and carries the versioned dependency and no icon. choco pack itself runs in this PR's Chocolatey job.
  • thrift-0.25.0.exe (9e1cb466…): objdump -p gives MajorLinkerVersion 14 and MinorLinkerVersion 51.

After this is merged, the Chocolatey workflow pushes 0.25.0 again with the same version, which Chocolatey allows while the version is in moderation. The open WinGet submission for 0.25.0 is left as it is.

🤖 Generated with Claude Code

…ocolatey, and drop the dead Chocolatey icon

Client: build

The Chocolatey review of the thrift 0.25.0 package flagged the nuspec's
iconUrl, which returns 404, and a dependency without a version. There
is no square Thrift logo to point at, so the package goes without an
icon, as the 0.12.0 package did.

The released thrift.exe links the shared Visual C++ runtime, and the
installed redistributable has to be at least as new as the build tools
the program was built with; thrift-0.25.0.exe reports linker version
14.51. Without a minimum, any vcredist140 that is already installed
satisfies the dependency and is not updated, and the WinGet manifest
had the same gap. The nuspec now asks for vcredist140 14.51 or later,
and the WinGet installer manifest asks for Microsoft.VCRedist.2015+.x64
14.51 or later through MinimumVersion, quoted so that YAML keeps it a
string.

The tests check both minimums, that the two agree, and that the nuspec
names no icon. doc/ReleaseManagement.md says to raise the minimum when
the compiler is built with newer build tools, and build/windows/README.md
mentions it.

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 1, 2026
@Jens-G
Jens-G merged commit 50bbda1 into apache:master Oct 2, 2026
119 of 120 checks passed
@Jens-G
Jens-G deleted the THRIFT-6401 branch October 2, 2026 00:05
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