@rushstack/rush-sdk 5.147.2 → 5.148.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/rush-lib.d.ts
CHANGED
|
@@ -1476,6 +1476,14 @@ export declare interface IExperimentsJson {
|
|
|
1476
1476
|
* When this toggle is enabled, Rush will only scan specific paths, significantly speeding up Git operations.
|
|
1477
1477
|
*/
|
|
1478
1478
|
enableSubpathScan?: boolean;
|
|
1479
|
+
/**
|
|
1480
|
+
* Rush has a policy that normally requires Rush projects to specify `workspace:*` in package.json when depending
|
|
1481
|
+
* on other projects in the workspace, unless they are explicitly declared as `decoupledLocalDependencies`
|
|
1482
|
+
* in rush.json. Enabling this experiment will remove that requirement for dependencies belonging to a different
|
|
1483
|
+
* subspace. This is useful for large product groups who work in separate subspaces and generally prefer to consume
|
|
1484
|
+
* each other's packages via the NPM registry.
|
|
1485
|
+
*/
|
|
1486
|
+
exemptDecoupledDependenciesBetweenSubspaces?: boolean;
|
|
1479
1487
|
}
|
|
1480
1488
|
|
|
1481
1489
|
/**
|
package/dist/tsdoc-metadata.json
CHANGED
|
@@ -94,6 +94,14 @@ export interface IExperimentsJson {
|
|
|
94
94
|
* When this toggle is enabled, Rush will only scan specific paths, significantly speeding up Git operations.
|
|
95
95
|
*/
|
|
96
96
|
enableSubpathScan?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Rush has a policy that normally requires Rush projects to specify `workspace:*` in package.json when depending
|
|
99
|
+
* on other projects in the workspace, unless they are explicitly declared as `decoupledLocalDependencies`
|
|
100
|
+
* in rush.json. Enabling this experiment will remove that requirement for dependencies belonging to a different
|
|
101
|
+
* subspace. This is useful for large product groups who work in separate subspaces and generally prefer to consume
|
|
102
|
+
* each other's packages via the NPM registry.
|
|
103
|
+
*/
|
|
104
|
+
exemptDecoupledDependenciesBetweenSubspaces?: boolean;
|
|
97
105
|
}
|
|
98
106
|
/**
|
|
99
107
|
* Use this class to load the "common/config/rush/experiments.json" config file.
|
|
@@ -1,32 +1,35 @@
|
|
|
1
1
|
import type { ITerminal } from '@rushstack/terminal';
|
|
2
2
|
import type { RushConfigurationProject } from '../../api/RushConfigurationProject';
|
|
3
3
|
import type { BuildCacheConfiguration } from '../../api/BuildCacheConfiguration';
|
|
4
|
-
|
|
4
|
+
import type { OperationExecutionRecord } from '../operations/OperationExecutionRecord';
|
|
5
|
+
export interface IOperationBuildCacheOptions {
|
|
5
6
|
/**
|
|
6
7
|
* The repo-wide configuration for the build cache.
|
|
7
8
|
*/
|
|
8
9
|
buildCacheConfiguration: BuildCacheConfiguration;
|
|
9
10
|
/**
|
|
10
|
-
* The
|
|
11
|
+
* The terminal to use for logging.
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
|
+
terminal: ITerminal;
|
|
14
|
+
}
|
|
15
|
+
export type IProjectBuildCacheOptions = IOperationBuildCacheOptions & {
|
|
13
16
|
/**
|
|
14
17
|
* Value from rush-project.json
|
|
15
18
|
*/
|
|
16
19
|
projectOutputFolderNames: ReadonlyArray<string>;
|
|
17
20
|
/**
|
|
18
|
-
* The
|
|
21
|
+
* The project to be cached.
|
|
19
22
|
*/
|
|
20
|
-
|
|
23
|
+
project: RushConfigurationProject;
|
|
21
24
|
/**
|
|
22
|
-
* The
|
|
25
|
+
* The hash of all relevant inputs and configuration that uniquely identifies this execution.
|
|
23
26
|
*/
|
|
24
|
-
|
|
27
|
+
operationStateHash: string;
|
|
25
28
|
/**
|
|
26
29
|
* The name of the phase that is being cached.
|
|
27
30
|
*/
|
|
28
31
|
phaseName: string;
|
|
29
|
-
}
|
|
32
|
+
};
|
|
30
33
|
export declare class ProjectBuildCache {
|
|
31
34
|
private static _tarUtilityPromise;
|
|
32
35
|
private readonly _project;
|
|
@@ -40,6 +43,7 @@ export declare class ProjectBuildCache {
|
|
|
40
43
|
private static _tryGetTarUtility;
|
|
41
44
|
get cacheId(): string | undefined;
|
|
42
45
|
static getProjectBuildCache(options: IProjectBuildCacheOptions): ProjectBuildCache;
|
|
46
|
+
static forOperation(operation: OperationExecutionRecord, options: IOperationBuildCacheOptions): ProjectBuildCache;
|
|
43
47
|
tryRestoreFromCacheAsync(terminal: ITerminal, specifiedCacheId?: string): Promise<boolean>;
|
|
44
48
|
trySetCacheEntryAsync(terminal: ITerminal, specifiedCacheId?: string): Promise<boolean>;
|
|
45
49
|
/**
|
|
@@ -9,6 +9,8 @@ import type { IPhase } from '../../api/CommandLineConfiguration';
|
|
|
9
9
|
import type { RushConfigurationProject } from '../../api/RushConfigurationProject';
|
|
10
10
|
import { type ILogFilePaths } from './ProjectLogWritable';
|
|
11
11
|
import type { IOperationExecutionResult } from './IOperationExecutionResult';
|
|
12
|
+
import type { IInputsSnapshot } from '../incremental/InputsSnapshot';
|
|
13
|
+
import type { BuildCacheConfiguration } from '../../api/BuildCacheConfiguration';
|
|
12
14
|
export interface IOperationExecutionRecordContext {
|
|
13
15
|
streamCollator: StreamCollator;
|
|
14
16
|
onOperationStatusChanged?: (record: OperationExecutionRecord) => void;
|
|
@@ -80,6 +82,7 @@ export declare class OperationExecutionRecord implements IOperationRunnerContext
|
|
|
80
82
|
private readonly _context;
|
|
81
83
|
private _collatedWriter;
|
|
82
84
|
private _status;
|
|
85
|
+
private _stateHash;
|
|
83
86
|
constructor(operation: Operation, context: IOperationExecutionRecordContext);
|
|
84
87
|
get name(): string;
|
|
85
88
|
get weight(): number;
|
|
@@ -99,6 +102,7 @@ export declare class OperationExecutionRecord implements IOperationRunnerContext
|
|
|
99
102
|
get status(): OperationStatus;
|
|
100
103
|
set status(newStatus: OperationStatus);
|
|
101
104
|
get silent(): boolean;
|
|
105
|
+
get stateHash(): string;
|
|
102
106
|
/**
|
|
103
107
|
* {@inheritdoc IOperationRunnerContext.runWithTerminalAsync}
|
|
104
108
|
*/
|
|
@@ -110,5 +114,9 @@ export declare class OperationExecutionRecord implements IOperationRunnerContext
|
|
|
110
114
|
onStart: (record: OperationExecutionRecord) => Promise<OperationStatus | undefined>;
|
|
111
115
|
onResult: (record: OperationExecutionRecord) => Promise<void>;
|
|
112
116
|
}): Promise<void>;
|
|
117
|
+
calculateStateHash(options: {
|
|
118
|
+
inputsSnapshot: IInputsSnapshot;
|
|
119
|
+
buildCacheConfiguration: BuildCacheConfiguration;
|
|
120
|
+
}): string;
|
|
113
121
|
}
|
|
114
122
|
//# sourceMappingURL=OperationExecutionRecord.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rushstack/rush-sdk",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.148.0",
|
|
4
4
|
"description": "An API for interacting with the Rush engine",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -35,22 +35,22 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@pnpm/lockfile.types": "~1.0.3",
|
|
37
37
|
"tapable": "2.2.1",
|
|
38
|
-
"@rushstack/lookup-by-path": "0.5.
|
|
39
|
-
"@rushstack/
|
|
40
|
-
"@rushstack/
|
|
41
|
-
"@rushstack/terminal": "0.14.
|
|
38
|
+
"@rushstack/lookup-by-path": "0.5.2",
|
|
39
|
+
"@rushstack/node-core-library": "5.10.2",
|
|
40
|
+
"@rushstack/package-deps-hash": "4.3.3",
|
|
41
|
+
"@rushstack/terminal": "0.14.5"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/semver": "7.5.0",
|
|
45
45
|
"@types/webpack-env": "1.18.0",
|
|
46
46
|
"webpack": "~5.95.0",
|
|
47
|
-
"@
|
|
48
|
-
"@
|
|
49
|
-
"@rushstack/
|
|
47
|
+
"@microsoft/rush-lib": "5.148.0",
|
|
48
|
+
"@rushstack/heft": "0.68.13",
|
|
49
|
+
"@rushstack/heft-webpack5-plugin": "0.11.11",
|
|
50
|
+
"@rushstack/stream-collator": "4.1.81",
|
|
50
51
|
"local-node-rig": "1.0.0",
|
|
51
|
-
"@rushstack/
|
|
52
|
-
"@rushstack/
|
|
53
|
-
"@rushstack/ts-command-line": "4.23.2"
|
|
52
|
+
"@rushstack/webpack-preserve-dynamic-require-plugin": "0.11.80",
|
|
53
|
+
"@rushstack/ts-command-line": "4.23.3"
|
|
54
54
|
},
|
|
55
55
|
"scripts": {
|
|
56
56
|
"build": "heft build --clean",
|