Skip to content

Commit 1003aae

Browse files
Copiloticlanton
andauthored
(chore) rush update for new @rushstack/rush-schemas package
Agent-Logs-Url: https://github.com/microsoft/rushstack/sessions/b7297c08-8212-4a0e-b5fa-f4d4ff39a8db Co-authored-by: iclanton <5010588+iclanton@users.noreply.github.com>
1 parent 1b4df78 commit 1003aae

25 files changed

Lines changed: 887 additions & 213 deletions

common/changes/@microsoft/rush-lib/zod-schema-pilot_2026-04-19.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"changes": [
33
{
44
"packageName": "@microsoft/rush-lib",
5-
"comment": "Pilot for @rushstack/heft-zod-schema-plugin: introduce experiments.zod.ts as a parallel zod-based source of truth for experiments.json. The hand-authored IExperimentsJson interface and experiments.schema.json remain unchanged; a compile-time assertion now guarantees the zod schema stays in sync with the interface.",
5+
"comment": "Move the IExperimentsJson interface declaration to the new @rushstack/rush-schemas package. rush-lib re-exports the interface so existing imports remain stable.",
66
"type": "none"
77
}
88
],
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@rushstack/rush-schemas",
5+
"comment": "Initial release. Pilots a dedicated home for zod-authored Rush configuration schemas (experiments, cobuild, repo-state, build-cache) that emits both runtime validators and *.schema.json artifacts.",
6+
"type": "none"
7+
}
8+
],
9+
"packageName": "@rushstack/rush-schemas"
10+
}

common/config/rush/browser-approved-packages.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@
4646
"name": "@rushstack/problem-matcher",
4747
"allowedCategories": [ "libraries" ]
4848
},
49+
{
50+
"name": "@rushstack/rush-schemas",
51+
"allowedCategories": [ "libraries" ]
52+
},
4953
{
5054
"name": "@rushstack/rush-themed-ui",
5155
"allowedCategories": [ "libraries" ]

common/config/subspaces/build-tests-subspace/pnpm-lock.yaml

Lines changed: 36 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush.
22
{
3-
"pnpmShrinkwrapHash": "4497f5b169c39c6d45b2f351e4484d4879102c71",
3+
"pnpmShrinkwrapHash": "0d3fa0f98a02504bf1f36a2cea15fadf76e1f0b9",
44
"preferredVersionsHash": "550b4cee0bef4e97db6c6aad726df5149d20e7d9",
5-
"packageJsonInjectedDependenciesHash": "e7087a8987565f709ad2f841d39cd7078a57d8ad"
5+
"packageJsonInjectedDependenciesHash": "c4fba4181349178d4b8b8aa1fee6cfe76e3639c0"
66
}

common/config/subspaces/default/pnpm-lock.yaml

Lines changed: 22 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/reviews/api/rush-lib.api.md

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { CredentialCache } from '@rushstack/credential-cache';
1717
import { HookMap } from 'tapable';
1818
import { ICredentialCacheEntry } from '@rushstack/credential-cache';
1919
import { ICredentialCacheOptions } from '@rushstack/credential-cache';
20+
import type { IExperimentsJson } from '@rushstack/rush-schemas/lib/experiments.zod';
2021
import { IFileDiffStatus } from '@rushstack/package-deps-hash';
2122
import { IPackageJson } from '@rushstack/node-core-library';
2223
import { IPrefixMatch } from '@rushstack/lookup-by-path';
@@ -466,28 +467,7 @@ export interface IExecutionResult {
466467
readonly status: OperationStatus;
467468
}
468469

469-
// @beta
470-
export interface IExperimentsJson {
471-
allowCobuildWithoutCache?: boolean;
472-
buildCacheWithAllowWarningsInSuccessfulBuild?: boolean;
473-
buildSkipWithAllowWarningsInSuccessfulBuild?: boolean;
474-
cleanInstallAfterNpmrcChanges?: boolean;
475-
enableSubpathScan?: boolean;
476-
exemptDecoupledDependenciesBetweenSubspaces?: boolean;
477-
forbidPhantomResolvableNodeModulesFolders?: boolean;
478-
generateProjectImpactGraphDuringRushUpdate?: boolean;
479-
noChmodFieldInTarHeaderNormalization?: boolean;
480-
omitAppleDoubleFilesFromBuildCache?: boolean;
481-
omitImportersFromPreventManualShrinkwrapChanges?: boolean;
482-
printEventHooksOutputToConsole?: boolean;
483-
rushAlerts?: boolean;
484-
strictChangefileValidation?: boolean;
485-
useIPCScriptsInWatchMode?: boolean;
486-
usePnpmFrozenLockfileForRushInstall?: boolean;
487-
usePnpmLockfileOnlyThenFrozenLockfileForRushUpdate?: boolean;
488-
usePnpmPreferFrozenLockfileForRushUpdate?: boolean;
489-
usePnpmSyncForInjectedDependencies?: boolean;
490-
}
470+
export { IExperimentsJson }
491471

492472
// @beta
493473
export interface IFileSystemBuildCacheProviderOptions {

libraries/rush-lib/config/heft.json

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -97,23 +97,6 @@
9797
]
9898
}
9999
}
100-
},
101-
102-
// PILOT (heft-zod-schema-plugin): generate the experiments.json
103-
// JSON Schema from the colocated experiments.zod.ts source file.
104-
// Writes to temp/zod-schemas to avoid colliding with the legacy
105-
// hand-authored schema in src/schemas/. The generated file is for
106-
// review during the pilot; the runtime still uses the legacy schema.
107-
"zod-schemas": {
108-
"taskDependencies": ["typescript"],
109-
"taskPlugin": {
110-
"pluginPackage": "@rushstack/heft-zod-schema-plugin",
111-
"pluginName": "zod-schema-plugin",
112-
"options": {
113-
"inputGlobs": ["lib-intermediate-commonjs/schemas/*.zod.js"],
114-
"outputFolder": "temp/zod-schemas"
115-
}
116-
}
117100
}
118101
}
119102
}

libraries/rush-lib/package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
"pnpm-sync-lib": "0.3.3",
7575
"read-package-tree": "~5.1.5",
7676
"rxjs": "~6.6.7",
77+
"@rushstack/rush-schemas": "workspace:*",
7778
"semver": "~7.7.4",
7879
"ssri": "~8.0.0",
7980
"strict-uri-encode": "~2.0.0",
@@ -84,7 +85,6 @@
8485
"devDependencies": {
8586
"@pnpm/lockfile.types-900": "npm:@pnpm/lockfile.types@~900.0.0",
8687
"@rushstack/heft-webpack5-plugin": "workspace:*",
87-
"@rushstack/heft-zod-schema-plugin": "workspace:*",
8888
"@rushstack/heft": "workspace:*",
8989
"@rushstack/operation-graph": "workspace:*",
9090
"@rushstack/webpack-deep-imports-plugin": "workspace:*",
@@ -99,8 +99,7 @@
9999
"@types/webpack-env": "1.18.8",
100100
"eslint": "~9.37.0",
101101
"local-node-rig": "workspace:*",
102-
"webpack": "~5.105.2",
103-
"zod": "~4.3.6"
102+
"webpack": "~5.105.2"
104103
},
105104
"publishOnlyDependencies": {
106105
"@rushstack/rush-amazon-s3-build-cache-plugin": "workspace:*",

0 commit comments

Comments
 (0)