Repository navigation
build: use TypeScript 7.1.0-dev.20261007.1 - #246
Draft
andrewzolotukhin wants to merge 2 commits into
Draft
andrewzolotukhin wants to merge 2 commits into
andrewzolotukhin wants to merge 2 commits into
Conversation
andrewzolotukhin
marked this pull request as ready for review
October 9, 2026 07:16
andrewzolotukhin
marked this pull request as draft
October 9, 2026 10:44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Deferred until the official TypeScript 7.1 release. The nightly evaluation and CI fixes are retained here for later review.
Description
Pin builds and typechecks to
typescript@7.1.0-dev.20261007.1. Clean monorepo builds take 62.8% less time on the measured host (37.81s → 14.06s median), with the candidate faster in all five paired runs.experimental.useTypeScriptCli.scripts/benchmark-build.mjsand document reproduction.concurrently9.2.5 andshell-quote1.12.0 to clear the dependency-security CI failure.Performance
Baseline: development at
bd8b3791c52e3b79cd49b59cd5bbe00b0859a413, TypeScript 6.0.3. Benchmark candidate:674699c14c090972fba804785d68532b22c4b073. Follow-up commitc3b84e06ded35650c02bbab364378285ef727f33only updates the two development-tool lockfile entries; compiler and build code are unchanged.npm run build -- --forceSame Linux x64 host, eight logical CPUs (i5-13500), Node 24.15.0, npm 11.12.1. Separate clean installations; one unmeasured warm-up per checkout followed by five alternating pairs. Remove generated package outputs/build-info before full builds; bypass Turbo cache reads; exclude installation time; filesystem caches remain warm. No concurrent local builds/tests during measured runs. The root build includes libraries and demos (24 tasks), and excludes websites as its existing script specifies. These are local measurements, not a promised CI speedup.
# Run npm ci in each disposable checkout first. node scripts/benchmark-build.mjs --baseline /tmp/framework-baseline \ --candidate /tmp/framework-candidate --runs 5 --output /tmp/build-results.jsonValidation
CI run on the final commit: all four jobs passed.
Additional local compatibility checks:
npm ci; 22 packed packages / 52 entry points, declarations and browser bundle: passed.Dependency audit
The failed security gate was caused by
concurrently9.2.4 pinningshell-quote1.9.0, affected by GHSA-pqg4-j6r4-53mv. The lockfile now selectsconcurrently9.2.5 and its patchedshell-quote1.12.0 dependency. Only those two dependency entries changed in the CI fix.npm audit --audit-level=highpasses locally and in CI, with no high or critical findings. The existing audit threshold is unchanged; five lower-severity findings remain (three low, two moderate).Tooling compatibility
npm ls typescript --allalso flags the T3 environment packages' optional stable-only>=5.0.0peer range. Clean installation and both website builds pass; the lockfile/compiler-isolation test confirms no legacy compiler outside TypeDoc. This remains a nightly compiler using unstable AST APIs, pinned exactly for reproducibility.Type of Change
Checklist
npm run lintand fixed any issuesnpm run buildnpm run testand all tests passRaw benchmark measurements and environment
The runner captured checkout metadata before the candidate was committed during warm-up. The candidate working-tree sources measured here are commit
674699c14c090972fba804785d68532b22c4b073; timings are unmodified.{ "recordedAt": "2026-10-08T11:39:53.866Z", "machine": { "platform": "linux", "architecture": "x64", "cpu": "13th Gen Intel(R) Core(TM) i5-13500", "logicalCpus": 8, "memoryBytes": 25205882880, "node": "v24.15.0", "npm": "11.12.1" }, "methodology": { "runs": 5, "warmups": 1, "ordering": "alternating baseline/candidate, reversed on odd iterations", "cleanBuild": "remove package dist and tsbuildinfo; npm run build -- --force", "declarations": "sequential tsc --project <library>/tsconfig.build.json --emitDeclarationOnly --incremental false --composite false for every published library", "incremental": "schema declaration-only incremental build immediately after an untimed priming build", "installationExcluded": true, "caches": "Turbo cache reads bypassed with --force; filesystem cache warm" }, "checkouts": [ { "name": "baseline", "root": "/tmp/framework-ts71-baseline", "commit": "bd8b3791c52e3b79cd49b59cd5bbe00b0859a413", "diffSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "lockSha256": "097ec53bfc3522c5b6c963559d1570f14034d0e4a805f54bd44ab70c53cfeaf5", "compiler": "Version 6.0.3", "libraries": [ "async", "auth", "client", "deep", "di", "env", "knex-clickhouse", "knex-schema", "log", "mapper", "orm", "orm-cli", "otel", "react-form", "scheduler", "scheduler-postgres", "schema", "schema-json", "server", "server-openapi", "storage", "storage-s3" ] }, { "name": "candidate", "root": "/tmp/framework-ts71", "commit": "bd8b3791c52e3b79cd49b59cd5bbe00b0859a413", "diffSha256": "03f532c2b09ee5fd30229c6b9bbbc20b8588f0b668bf4960f568e6d2a721def9", "lockSha256": "da84f88e43acf109486f7ca0df46c1dbeb646dca0e843ee6987fe464d9cd5fd7", "compiler": "Version 7.1.0-dev.20261007.1", "libraries": [ "async", "auth", "client", "deep", "di", "env", "knex-clickhouse", "knex-schema", "log", "mapper", "orm", "orm-cli", "otel", "react-form", "scheduler", "scheduler-postgres", "schema", "schema-json", "server", "server-openapi", "storage", "storage-s3" ] } ], "samples": [ { "iteration": 0, "warmup": true, "checkout": "baseline", "buildSeconds": 40.913456928, "declarationSeconds": 41.808942591000005, "incrementalSeconds": 0.33943513399999936 }, { "iteration": 0, "warmup": true, "checkout": "candidate", "buildSeconds": 15.408772026000007, "declarationSeconds": 8.456198915000002, "incrementalSeconds": 0.09165949700000056 }, { "iteration": 1, "warmup": false, "checkout": "candidate", "buildSeconds": 14.613228548999992, "declarationSeconds": 8.451224402000006, "incrementalSeconds": 0.06483084000000963 }, { "iteration": 1, "warmup": false, "checkout": "baseline", "buildSeconds": 37.324625558, "declarationSeconds": 38.705917591, "incrementalSeconds": 0.35729190400001243 }, { "iteration": 2, "warmup": false, "checkout": "baseline", "buildSeconds": 37.811679111000004, "declarationSeconds": 38.62591365900001, "incrementalSeconds": 0.35259891999996035 }, { "iteration": 2, "warmup": false, "checkout": "candidate", "buildSeconds": 14.073769008999982, "declarationSeconds": 8.18921567299997, "incrementalSeconds": 0.0715616550000268 }, { "iteration": 3, "warmup": false, "checkout": "candidate", "buildSeconds": 13.992978033000021, "declarationSeconds": 8.455170488999983, "incrementalSeconds": 0.07223540199996205 }, { "iteration": 3, "warmup": false, "checkout": "baseline", "buildSeconds": 38.00458164699999, "declarationSeconds": 38.21540492, "incrementalSeconds": 0.4236684869999881 }, { "iteration": 4, "warmup": false, "checkout": "baseline", "buildSeconds": 37.142466781000024, "declarationSeconds": 39.006707345, "incrementalSeconds": 0.3511056220000028 }, { "iteration": 4, "warmup": false, "checkout": "candidate", "buildSeconds": 13.985192161999992, "declarationSeconds": 8.362248239999987, "incrementalSeconds": 0.06268616500002099 }, { "iteration": 5, "warmup": false, "checkout": "candidate", "buildSeconds": 14.062949465999962, "declarationSeconds": 8.382470354999997, "incrementalSeconds": 0.07342295899998862 }, { "iteration": 5, "warmup": false, "checkout": "baseline", "buildSeconds": 38.573014371, "declarationSeconds": 39.97003503399994, "incrementalSeconds": 0.4589196750000119 } ], "summary": { "buildSeconds": { "baseline": { "median": 37.811679111000004, "min": 37.142466781000024, "max": 38.573014371 }, "candidate": { "median": 14.062949465999962, "min": 13.985192161999992, "max": 14.613228548999992 }, "improvementPercent": 62.80792126497013, "fasterPairs": 5 }, "declarationSeconds": { "baseline": { "median": 38.705917591, "min": 38.21540492, "max": 39.97003503399994 }, "candidate": { "median": 8.382470354999997, "min": 8.18921567299997, "max": 8.455170488999983 }, "improvementPercent": 78.34318141330124, "fasterPairs": 5 }, "incrementalSeconds": { "baseline": { "median": 0.35729190400001243, "min": 0.3511056220000028, "max": 0.4589196750000119 }, "candidate": { "median": 0.0715616550000268, "min": 0.06268616500002099, "max": 0.07342295899998862 }, "improvementPercent": 79.97109528683183, "fasterPairs": 5 } } }