Skip to content

THRIFT-6315: Correct the Windows Docker documentation - #3917

Merged
Jens-G merged 1 commit into
apache:masterfrom
Jens-G:THRIFT-6315
Sep 20, 2026
Merged

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

Conversation

@Jens-G

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

Copy link
Copy Markdown
Member

Doc-only. Noticed while adding the Windows compiler CI job; filed then rather than folded in.

The MSVC container directory was renamed build/docker/msvc2017 → build/docker/msvc and the paths naming it were not updated: doc/ReleaseManagement.md had a broken relative link, and the README in that directory told the reader to run commands against paths that do not exist — six times.

While in there, three other things had gone stale.

The pull instruction could not have worked

It said to docker pull thrift/thrift-build:msvc2017. That Docker Hub repository carries the Linux images only — I checked the tag list:

ubuntu-bionic, ubuntu-focal, ubuntu-xenial, ubuntu-artful, ubuntu-trusty,
debian-jessie, debian-stretch, ubuntu, debian, centos

No msvc2017, no Windows tag at all. msvc.yml builds the image itself and caches it in GHCR under a tag derived from the hash of the Dockerfile and the scripts it copies, so a run only rebuilds when one of those changes. That is what the README now describes.

It also now says the build context is build\, not the Dockerfile's own directory — necessary because the image copies from build\appveyor\, easy to get wrong, and previously stated nowhere.

It still claimed a statically linked compiler

you will see it only depends on KERNEL32.DLL which means the runtime is statically linked

That stopped being true when the project moved away from a statically linked compiler. #3901 (THRIFT-6320) corrected exactly this claim in ReleaseManagement.md and left this copy behind.

It now states what is actually expected — the Visual C++ redistributable, and nothing else beyond Windows system DLLs — and points at check-compiler-imports.ps1 and the compiler-windows job, which assert it on every push.

Size and nano

The build image is very large (just under 30GB) … Once Microsoft supports build tools in nano, it should get better.

THRIFT-5952 and THRIFT-6237 have both worked on the image size since, so that number is not one to quote. It now just says the image is large. The nano remark went with it; the base image is mcr.microsoft.com/dotnet/sdk:10.0-windowsservercore-ltsc2025.

Checked

No msvc2017 remains anywhere in the tree, and every relative link in the rewritten README resolves from the README's own directory (not just from the repo root, which is the easy way to get this wrong):

OK  ../../../.github/workflows/msvc.yml
OK  ../../../.github/workflows/cmake.yml
OK  ../../../doc/ReleaseManagement.md
OK  ../build/docker/msvc/README.md        (from doc/)

JIRA: THRIFT-6315

🤖 Generated with Claude Code

Client: build

The MSVC container directory was renamed from build/docker/msvc2017 to
build/docker/msvc, and the paths naming it were not updated.
doc/ReleaseManagement.md had a broken relative link, and the README in
that directory told the reader to run commands against paths that do not
exist, six times.

Three other things in that README had also gone stale.

It said to pull thrift/thrift-build:msvc2017 from Docker Hub. That
repository carries the Linux images only - its tags are ubuntu-*,
debian-* and centos - so the pull could not have worked. The MSVC
workflow builds the image itself and caches it in GHCR under a tag
derived from the hash of the Dockerfile and the scripts it copies, which
is now what the README describes. The build context is build\, not the
Dockerfile's own directory, which was not said anywhere and is easy to
get wrong.

It said the compiler is statically linked and depends only on
KERNEL32.DLL. That stopped being true when the project moved away from a
statically linked compiler; THRIFT-6320 corrected the same claim in
ReleaseManagement.md. The README now says what is actually expected -
the Visual C++ redistributable, and nothing else beyond Windows system
DLLs - and points at check-compiler-imports.ps1 and the compiler-windows
job, which check it on every push.

It said the image is "just under 30GB" and that things should improve
"once Microsoft supports build tools in nano". THRIFT-5952 and
THRIFT-6237 have both worked on the size since, so the number is not one
to quote; it says the image is large and leaves it there.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mergeable mergeable Bot added the build and general CI cmake, automake and build system changes label Sep 20, 2026
@Jens-G
Jens-G merged commit 43cd5e0 into apache:master Sep 20, 2026
114 of 115 checks passed
@Jens-G
Jens-G deleted the THRIFT-6315 branch September 20, 2026 23:00
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