Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,15 @@ jobs:
- name: Checkout pinned TypeScript source
run: npm run checkout:typescript-source -- --out .tmp/TypeScript --force

- name: Read required Go version
id: go-version
run: echo "version=$(awk '/^go / { print $2; exit }' .tmp/TypeScript/tsc/go.mod)" >> "$GITHUB_OUTPUT"

- uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
with:
go-version: "${{ steps.go-version.outputs.version }}"
cache-dependency-path: .tmp/TypeScript/tsc/go.sum

- name: Run blocking TypeScript integration
run: npm run test:typescript:full -- --typescript-dir ./.tmp/TypeScript --summary-out typescript-integration-artifacts/summary.md --baseline-diff-out typescript-integration-artifacts/baseline-changes.diff --focused-baselines-out typescript-integration-artifacts/focused --local-baselines-out typescript-integration-artifacts/raw-local-baselines

Expand Down
70 changes: 0 additions & 70 deletions .github/workflows/test-typescript-go.yml

This file was deleted.

9 changes: 9 additions & 0 deletions .github/workflows/test-typescript.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,15 @@ jobs:
- name: Checkout pinned TypeScript source
run: npm run checkout:typescript-source -- --out .tmp/TypeScript --force

- name: Read required Go version
id: go-version
run: echo "version=$(awk '/^go / { print $2; exit }' .tmp/TypeScript/tsc/go.mod)" >> "$GITHUB_OUTPUT"

- uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
with:
go-version: "${{ steps.go-version.outputs.version }}"
cache-dependency-path: .tmp/TypeScript/tsc/go.sum

- name: Run TypeScript integration checks
run: npm run test:typescript:${{ steps.mode.outputs.mode }} -- --typescript-dir ./.tmp/TypeScript --summary-out typescript-integration-artifacts/summary.md --baseline-diff-out typescript-integration-artifacts/baseline-changes.diff --focused-baselines-out typescript-integration-artifacts/focused --local-baselines-out typescript-integration-artifacts/raw-local-baselines

Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/typescript-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,21 @@ jobs:
- name: Run standalone validation
run: npm test

- name: Checkout updated TypeScript source
run: npm run checkout:typescript-source -- --out .tmp/TypeScript --force

- name: Read required Go version
id: go-version
run: echo "version=$(awk '/^go / { print $2; exit }' .tmp/TypeScript/tsc/go.mod)" >> "$GITHUB_OUTPUT"

- uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
with:
go-version: "${{ steps.go-version.outputs.version }}"
cache-dependency-path: .tmp/TypeScript/tsc/go.sum

- name: Test updated TypeScript source
run: npm run test:typescript:gate -- --typescript-dir ./.tmp/TypeScript

- name: Prepare pull request body
run: npm run write:update-pr-body -- --out .tmp/typescript-toolchain-update-pr.md --summary-out .tmp/typescript-toolchain-update-summary.json

Expand Down
12 changes: 6 additions & 6 deletions derived/current/generation.json
Original file line number Diff line number Diff line change
Expand Up @@ -1092,7 +1092,7 @@
{
"year": 2020,
"outputPath": "generated/current/year/2020/index.d.ts",
"contentHash": "sha256-7f66eaec52ccad3d4870c33071c0e9e227becdadd2f2f61725ee5cd9fcee70df",
"contentHash": "sha256-37070d861cfe386653cb7f2174009f9040e1e38e7dd8c42a271c90d03221c8cc",
"includedCompatKeys": [
"javascript.builtins.AggregateError",
"javascript.builtins.AggregateError.AggregateError",
Expand Down Expand Up @@ -1723,7 +1723,7 @@
{
"year": 2021,
"outputPath": "generated/current/year/2021/index.d.ts",
"contentHash": "sha256-9d910337717de9eb085908983fb7b95b14daa2a019805947aaff9d6f2b6bceed",
"contentHash": "sha256-32eff0354d555bac166068b673c9253de514e7d66c62d9529dca525294f56a51",
"includedCompatKeys": [
"javascript.builtins.AggregateError",
"javascript.builtins.AggregateError.AggregateError",
Expand Down Expand Up @@ -2418,7 +2418,7 @@
{
"year": 2022,
"outputPath": "generated/current/year/2022/index.d.ts",
"contentHash": "sha256-ebf80adec1d38790ab32677574c22971e2fdfab97bd0bb3c2706822254aa8cfb",
"contentHash": "sha256-3bf13c02fec1aa78b05d8181b5941a3f9a794ea0527052bad6461bb04e5685b0",
"includedCompatKeys": [
"javascript.builtins.AggregateError",
"javascript.builtins.AggregateError.AggregateError",
Expand Down Expand Up @@ -3123,7 +3123,7 @@
{
"year": 2023,
"outputPath": "generated/current/year/2023/index.d.ts",
"contentHash": "sha256-7713c5b7bb9ec55b967f04ad05931baf43001c1064a2e818e21dfbf24851add9",
"contentHash": "sha256-ab5b2463a60479471ccf98811f8ca9da76d8220a11bf92dc02b7ab06bb2044e8",
"includedCompatKeys": [
"javascript.builtins.AggregateError",
"javascript.builtins.AggregateError.AggregateError",
Expand Down Expand Up @@ -3850,7 +3850,7 @@
{
"year": 2024,
"outputPath": "generated/current/year/2024/index.d.ts",
"contentHash": "sha256-32d89c1cf963d5b3d3dc83024a3fa741d9cba39006812e8197ab2cdf1f11b0a0",
"contentHash": "sha256-09e74810ca650a81e4dff5d5fd18b3c3669ff719b9601f11987ce85ed8d1f138",
"includedCompatKeys": [
"javascript.builtins.AggregateError",
"javascript.builtins.AggregateError.AggregateError",
Expand Down Expand Up @@ -4607,7 +4607,7 @@
{
"year": 2025,
"outputPath": "generated/current/year/2025/index.d.ts",
"contentHash": "sha256-85a9499d1c70e8b1e1b88265b92731b1877c324ab79bad7c895ab8bbfc97d520",
"contentHash": "sha256-d10524e61d0ecf8177c8c6b27c6388074c9c84c30099e9485d61a1d9cb2049b1",
"includedCompatKeys": [
"javascript.builtins.AggregateError",
"javascript.builtins.AggregateError.AggregateError",
Expand Down
11 changes: 4 additions & 7 deletions docs/OPERATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@ The generator reads only these four inputs:

Before the generator reads the lib files, it compares their file count and content hash with `libSource` in the manifest.

`typescript-strada` parses declarations and performs compiler self-tests. It is an npm alias for the frozen TypeScript 6 Strada release.

The generator uses this package because the TypeScript 7 JavaScript API differs from the Strada compiler API.
`typescript-strada` parses declarations and performs compiler self-tests. It is an npm alias for the frozen TypeScript 6 release because the native TypeScript package does not expose the same JavaScript compiler API.

## Determinism and fail-closed layers

Expand All @@ -29,12 +27,11 @@ Identical inputs produce byte-identical artifacts on each supported operating sy
- The lib-source layer requires the pinned content hash and file count.
- The classification layer rejects unmanaged keys, stale registry entries, and resolution-kind changes. A strict JSON Schema validates the registry.
- The generation layer rejects excluded declarations in the output. It also compiles the complete output as a self-test.
- The packaging layer installs staged and packed packages. It compiles consumer fixtures with TypeScript 7 and Strada.
- The packaging layer installs staged and packed packages. It compiles consumer fixtures with TypeScript 7 and TypeScript 6.

## Toolchain pins

`npm run update:typescript-toolchain` refreshes these three pins in `manifests/baseline-js.json`:
`npm run update:typescript-toolchain` refreshes these two pins in `manifests/baseline-js.json`:

- `libSource` records the platform package and one content hash. The update requires identical files on Linux, macOS, and Windows.
- `typescriptSource` records the frozen Strada tag and commit for the Strada integration gate.
- `typescriptGoSource` records the `typescript/vX.Y.Z` tag and the `_submodules/TypeScript` commit.
- `typescriptSource` records the exact `microsoft/TypeScript` `main` commit used by proposal preparation and integration tests. Proposal artifacts are generated from that checkout's declaration corpus.
Loading