chore(typescript): remove tsgolint rebuild-from-source Docker stage#16754
chore(typescript): remove tsgolint rebuild-from-source Docker stage#16754Swimburger wants to merge 2 commits into
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
There was a problem hiding this comment.
🚩 Seed Dockerfile still carries the tsgolint-rebuild stage
The production Dockerfile at generators/typescript/sdk/cli/Dockerfile now skips the Go-based rebuild, but docker/seed/Dockerfile.ts still contains an identical tsgolint-rebuild multi-stage build (lines 1-25) and binary replacement block (lines 103-119). If the rationale for removal applies equally to the seed image (the CVEs are not exercisable by a linting binary), the seed Dockerfile could be simplified in the same way. This is not a bug—seed images have different risk profiles—but worth confirming whether the inconsistency is intentional.
Was this helpful? React with 👍 or 👎 to provide feedback.
There was a problem hiding this comment.
Good catch — the same rationale applies to the seed image. I've removed the tsgolint-rebuild stage and binary replacement block from docker/seed/Dockerfile.ts as well, and bumped the tsgolint version there from 0.22.1 to 0.23.0 to match the CLI Dockerfile. See commit a54a1d4.
…erfile Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
SDK Generation Benchmark ResultsComparing PR branch against median of 5 nightly run(s) on Full benchmark table (click to expand)
main (generator): generator-only time via --skip-scripts (includes Docker image build, container startup, IR parsing, and code generation — this is the same Docker-based flow customers use via |
Description
Remove the
tsgolint-rebuildmulti-stage Docker build from both the TypeScript SDK CLI Dockerfile and the seed Dockerfile (docker/seed/Dockerfile.ts). The rebuild stage pulled the fullgolang:1.26.4-trixieimage, cloned the typescript-go submodule, applied patches, and recompiled tsgolint from source — all to swap in go1.26.4 and clear two Go stdlib CVEs. This made Docker builds very slow.Changes Made
FROM golang:1.26.4-trixie AS tsgolint-rebuildstage (~20 lines) fromgenerators/typescript/sdk/cli/DockerfileCOPY --from=tsgolint-rebuildand binary replacementRUNblock (~18 lines) from the CLI Dockerfiledocker/seed/Dockerfile.ts(~45 lines)oxlint-tsgolintfrom 0.22.1 → 0.23.0 in the seed Dockerfile to match the CLI DockerfileContext
The two CVEs addressed by the rebuild (CVE-2026-42507
net/textproto, CVE-2026-27145crypto/x509) are not exercisable by a linting binary — they are false positives for this use case. The tsgolint repo's CI resolvesgo 1.26to the latest patch, so the next tsgolint release will be built with go1.26.4+ and the findings will clear automatically.Testing
pnpm run checkpasses (biome format/lint)Link to Devin session: https://app.devin.ai/sessions/3ec35684ab9a41a49cc5da05d590ec8b
Requested by: @Swimburger