Skip to content

fix: Include Windows DLL sidecars in releases - #13162

Closed
Balance8 wants to merge 1 commit into
vercel:mainfrom
Balance8:fix/windows-dll-sidecars
Closed

Balance8 wants to merge 1 commit into
vercel:mainfrom
Balance8:fix/windows-dll-sidecars

Conversation

@Balance8

Copy link
Copy Markdown
Contributor

Problem:
Windows release packaging can publish @turbo/windows-* without runtime DLL sidecars required by turbo.exe. The Rust artifact upload only included turbo*, and the native npm packer only copied turbo.exe. If the binary imports a sidecar such as ghostty-vt.dll, the installed package fails before startup with a missing shared library error.

Solution:
Upload DLL sidecars from the Windows build output with the release artifact, then copy DLLs into bin next to turbo.exe when building the native npm package. The copy filter is case-insensitive so mixed-case Windows DLL filenames are included.

Validation:
node --import tsx --test src/operations.test.ts
pnpm --filter @turbo/releaser check-types
oxfmt --check .github/workflows/turborepo-release.yml packages/turbo-releaser/src/operations.ts packages/turbo-releaser/src/operations.test.ts
git diff --check
pre-push: lint-staged, format, check:toml

Copilot AI review requested due to automatic review settings June 30, 2026 05:32
@Balance8
Balance8 requested a review from a team as a code owner June 30, 2026 05:32
@Balance8
Balance8 requested review from tknickman and removed request for a team June 30, 2026 05:32
@vercel

vercel Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

@Balance8 is attempting to deploy a commit to the Vercel Team on Vercel.

A member of the Team first needs to authorize it.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Ensures Windows releases and the Windows native npm packages include required runtime DLL sidecars (e.g., ghostty-vt.dll) alongside turbo.exe, preventing “missing shared library” startup failures after install.

Changes:

  • Copy any .dll sidecars found next to the Windows turbo.exe into the packaged bin/ directory during native npm package creation.
  • Extend unit coverage to validate DLL sidecars are included (case-insensitive .dll handling).
  • Update the release workflow to upload Windows .dll sidecars with the Rust build artifacts.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
packages/turbo-releaser/src/operations.ts Copies Windows DLL sidecars into the native package bin/ directory next to turbo.exe.
packages/turbo-releaser/src/operations.test.ts Adds assertions verifying DLL sidecars are copied for Windows packaging.
.github/workflows/turborepo-release.yml Uploads *.dll from the Windows build output along with turbo* artifacts.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 87 to 91
assert.equal(mockGenerateNativePackage.mock.calls.length, 1);
assert.equal(mockMkdir.mock.calls.length, 1);
assert.equal(mockCopyFile.mock.calls.length, 1);
assert.equal(mockCopyFile.mock.calls.length, 2);
assert.equal(mockChmod.mock.calls.length, 1);
assert.equal(mockChmod.mock.calls[0].arguments[1], 0o111);
@anthonyshew

Copy link
Copy Markdown
Contributor

Closed for slop.

@Balance8

Balance8 commented Jun 30, 2026 •

Copy link
Copy Markdown
Contributor Author

Closed for slop.

I appreciate you fixing the issue. I apologize that this solution wasn't up to par. I will work harder next time.

#13171

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade from 2.10.0 to 2.10.1. Broken turbo commands on Windows

3 participants