mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-26 09:52:11 +03:00
feat(ci): TypeScript 7 native shadow for typecheck:core (WS4.2, advisory) (#7091)
TS7 went GA 2026-07-08 (native Go compiler). Hybrid adoption is the officially documented pattern: the Compiler API only arrives in 7.1, so typescript-eslint, type-coverage and the Stryker checker must stay on typescript 6.x — only the pure type-check gate can move. This adds an ADVISORY shadow step to the fast-gates job running the SAME tsconfig.typecheck-core.json under TS7 via an isolated npx (deliberately NOT a dependency: an alias install could collide node_modules/.bin/tsc with 6.x and silently swap the blocking gate's binary). Live parity evidence (this tree): TS7 exit 0 / 0 errors vs TS6 exit 0 / 0 errors — identical verdicts. Local wall: 25s -> 19s (warm dev box; upstream reports 8-12x on cold/large runs — the shadow exists to measure OUR CI number). Promotion to blocking after ~1 week of parity, per the v3.8.49 plan.
This commit is contained in:
committed by
GitHub
parent
4505e67c04
commit
17cea8f49e
14
.github/workflows/quality.yml
vendored
14
.github/workflows/quality.yml
vendored
@@ -143,6 +143,20 @@ jobs:
|
||||
- run: npm run check:complexity-ratchets
|
||||
- name: Typecheck (core)
|
||||
run: npm run typecheck:core
|
||||
# WS4.2 (v3.8.49 plan): TypeScript 7 native-compiler SHADOW — advisory only.
|
||||
# TS7 went GA 2026-07-08 with 8-12x type-check speedups; its Compiler API only
|
||||
# arrives in 7.1, so typescript-eslint / type-coverage / Stryker stay on 6.x
|
||||
# (the hybrid is the officially documented pattern). Isolated npx on purpose:
|
||||
# installing an alias package could collide node_modules/.bin/tsc with 6.x.
|
||||
# Promote to the blocking gate after ~1 week of parity with the step above.
|
||||
- name: Typecheck (core) — TS7 native shadow (advisory)
|
||||
continue-on-error: true
|
||||
run: |
|
||||
RC=0
|
||||
START=$(date +%s)
|
||||
npx -y -p typescript@7 tsc --pretty false -p tsconfig.typecheck-core.json || RC=$?
|
||||
echo "[ts7-shadow] exit=$RC elapsed=$(( $(date +%s) - START ))s — the 6.x step above stays authoritative"
|
||||
exit $RC
|
||||
# TIA: build the impact map at runtime (gitignored, ~21MB) and run only the
|
||||
# unit tests impacted by this PR's changed files. On hub/unmapped changes the
|
||||
# selector returns __RUN_ALL__ — full-suite authority is the parallel
|
||||
|
||||
1
changelog.d/maintenance/ts7-shadow-typecheck.md
Normal file
1
changelog.d/maintenance/ts7-shadow-typecheck.md
Normal file
@@ -0,0 +1 @@
|
||||
- **CI**: TypeScript 7 (native compiler, GA 2026-07-08) now runs as an advisory SHADOW of the blocking `typecheck:core` gate on the fast path — same tsconfig, isolated `npx` (no dependency change; the Compiler API only lands in TS 7.1, so typescript-eslint/type-coverage/Stryker stay on 6.x). Local parity proven (0 errors on both, exit 0); promotion to the blocking gate after ~1 week of CI parity
|
||||
Reference in New Issue
Block a user