diff --git a/apps/api-extractor/config/heft.json b/apps/api-extractor/config/heft.json index 64cf00b82a3..0b965cec36a 100644 --- a/apps/api-extractor/config/heft.json +++ b/apps/api-extractor/config/heft.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ "extends": "decoupled-local-node-rig/profiles/default/config/heft.json", diff --git a/apps/heft/src/schemas/heft-legacy.schema.json b/apps/heft/src/schemas/heft-legacy.schema.json index 79143dcfd8f..45d26aa00f0 100644 --- a/apps/heft/src/schemas/heft-legacy.schema.json +++ b/apps/heft/src/schemas/heft-legacy.schema.json @@ -20,7 +20,7 @@ }, "extends": { - "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects.", + "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects. To delete an inherited setting, set it to `null` in this file.", "type": "string" }, diff --git a/apps/heft/src/schemas/heft.schema.json b/apps/heft/src/schemas/heft.schema.json index d4a3ce5719d..cba91630724 100644 --- a/apps/heft/src/schemas/heft.schema.json +++ b/apps/heft/src/schemas/heft.schema.json @@ -104,7 +104,7 @@ }, "extends": { - "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects.", + "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects. To delete an inherited setting, set it to `null` in this file.", "type": "string" }, diff --git a/apps/heft/src/schemas/node-service.schema.json b/apps/heft/src/schemas/node-service.schema.json index ee9700a5308..67af1bc48a9 100644 --- a/apps/heft/src/schemas/node-service.schema.json +++ b/apps/heft/src/schemas/node-service.schema.json @@ -13,7 +13,7 @@ }, "extends": { - "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects.", + "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects. To delete an inherited setting, set it to `null` in this file.", "type": "string" }, diff --git a/apps/heft/src/schemas/templates/heft.json b/apps/heft/src/schemas/templates/heft.json index 087762787dd..870a1a538a3 100644 --- a/apps/heft/src/schemas/templates/heft.json +++ b/apps/heft/src/schemas/templates/heft.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/heft.json", diff --git a/apps/lockfile-explorer-web/config/heft.json b/apps/lockfile-explorer-web/config/heft.json index 5a56a867004..e031c98a5c5 100644 --- a/apps/lockfile-explorer-web/config/heft.json +++ b/apps/lockfile-explorer-web/config/heft.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ "extends": "local-web-rig/profiles/app/config/heft.json", diff --git a/apps/lockfile-explorer/config/heft.json b/apps/lockfile-explorer/config/heft.json index 858939560cb..425aa0a60d9 100644 --- a/apps/lockfile-explorer/config/heft.json +++ b/apps/lockfile-explorer/config/heft.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ "extends": "local-node-rig/profiles/default/config/heft.json", diff --git a/apps/lockfile-explorer/config/node-service.json b/apps/lockfile-explorer/config/node-service.json index c1cedd887ee..ba18df29aaf 100644 --- a/apps/lockfile-explorer/config/node-service.json +++ b/apps/lockfile-explorer/config/node-service.json @@ -8,6 +8,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/serve-command.json", diff --git a/build-tests-samples/heft-web-rig-library-tutorial/config/api-extractor.json b/build-tests-samples/heft-web-rig-library-tutorial/config/api-extractor.json index 8fcd66198e4..4cd36c3e066 100644 --- a/build-tests-samples/heft-web-rig-library-tutorial/config/api-extractor.json +++ b/build-tests-samples/heft-web-rig-library-tutorial/config/api-extractor.json @@ -8,6 +8,8 @@ * Optionally specifies another JSON config file that this file extends from. This provides a way for * standard settings to be shared across multiple projects. * + * To delete an inherited setting, set it to `null` in this file. + * * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be * resolved using NodeJS require(). diff --git a/build-tests/heft-fastify-test/config/node-service.json b/build-tests/heft-fastify-test/config/node-service.json index 67a768f75d6..62e904d49ce 100644 --- a/build-tests/heft-fastify-test/config/node-service.json +++ b/build-tests/heft-fastify-test/config/node-service.json @@ -8,6 +8,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/serve-command.json", diff --git a/build-tests/localization-plugin-test-01/config/heft.json b/build-tests/localization-plugin-test-01/config/heft.json index abfbce326e5..4d81cfade08 100644 --- a/build-tests/localization-plugin-test-01/config/heft.json +++ b/build-tests/localization-plugin-test-01/config/heft.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ "extends": "local-node-rig/profiles/default/config/heft.json", diff --git a/build-tests/localization-plugin-test-02/config/heft.json b/build-tests/localization-plugin-test-02/config/heft.json index e97c7b80c59..6d560f084ee 100644 --- a/build-tests/localization-plugin-test-02/config/heft.json +++ b/build-tests/localization-plugin-test-02/config/heft.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ "extends": "local-node-rig/profiles/default/config/heft.json", diff --git a/common/changes/@microsoft/api-extractor/config-file-null_2025-04-16-01-15.json b/common/changes/@microsoft/api-extractor/config-file-null_2025-04-16-01-15.json new file mode 100644 index 00000000000..9d8d259566d --- /dev/null +++ b/common/changes/@microsoft/api-extractor/config-file-null_2025-04-16-01-15.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Update documentation for `extends`", + "type": "patch", + "packageName": "@microsoft/api-extractor" + } + ], + "packageName": "@microsoft/api-extractor", + "email": "dmichon-msft@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush/config-file-null_2025-04-16-01-15.json b/common/changes/@microsoft/rush/config-file-null_2025-04-16-01-15.json new file mode 100644 index 00000000000..008eda99f5b --- /dev/null +++ b/common/changes/@microsoft/rush/config-file-null_2025-04-16-01-15.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Update documentation for `extends`", + "type": "none", + "packageName": "@microsoft/rush" + } + ], + "packageName": "@microsoft/rush", + "email": "dmichon-msft@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-api-extractor-plugin/config-file-null_2025-04-16-01-15.json b/common/changes/@rushstack/heft-api-extractor-plugin/config-file-null_2025-04-16-01-15.json new file mode 100644 index 00000000000..4170d8d7520 --- /dev/null +++ b/common/changes/@rushstack/heft-api-extractor-plugin/config-file-null_2025-04-16-01-15.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Update documentation for `extends`", + "type": "patch", + "packageName": "@rushstack/heft-api-extractor-plugin" + } + ], + "packageName": "@rushstack/heft-api-extractor-plugin", + "email": "dmichon-msft@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-config-file/config-file-null_2025-04-16-00-37.json b/common/changes/@rushstack/heft-config-file/config-file-null_2025-04-16-00-37.json new file mode 100644 index 00000000000..f574e7084c1 --- /dev/null +++ b/common/changes/@rushstack/heft-config-file/config-file-null_2025-04-16-00-37.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/heft-config-file", + "comment": "Allow use of the value `null` to discard any value set for the property from a parent config file..", + "type": "minor" + } + ], + "packageName": "@rushstack/heft-config-file" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-node-rig/config-file-null_2025-04-16-01-15.json b/common/changes/@rushstack/heft-node-rig/config-file-null_2025-04-16-01-15.json new file mode 100644 index 00000000000..75e1eee2dbc --- /dev/null +++ b/common/changes/@rushstack/heft-node-rig/config-file-null_2025-04-16-01-15.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Update documentation for `extends`", + "type": "patch", + "packageName": "@rushstack/heft-node-rig" + } + ], + "packageName": "@rushstack/heft-node-rig", + "email": "dmichon-msft@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-sass-plugin/config-file-null_2025-04-16-01-15.json b/common/changes/@rushstack/heft-sass-plugin/config-file-null_2025-04-16-01-15.json new file mode 100644 index 00000000000..cd261e0234d --- /dev/null +++ b/common/changes/@rushstack/heft-sass-plugin/config-file-null_2025-04-16-01-15.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Update documentation for `extends`", + "type": "patch", + "packageName": "@rushstack/heft-sass-plugin" + } + ], + "packageName": "@rushstack/heft-sass-plugin", + "email": "dmichon-msft@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-typescript-plugin/config-file-null_2025-04-16-01-15.json b/common/changes/@rushstack/heft-typescript-plugin/config-file-null_2025-04-16-01-15.json new file mode 100644 index 00000000000..f40ba849fc9 --- /dev/null +++ b/common/changes/@rushstack/heft-typescript-plugin/config-file-null_2025-04-16-01-15.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Update documentation for `extends`", + "type": "patch", + "packageName": "@rushstack/heft-typescript-plugin" + } + ], + "packageName": "@rushstack/heft-typescript-plugin", + "email": "dmichon-msft@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-web-rig/config-file-null_2025-04-16-01-15.json b/common/changes/@rushstack/heft-web-rig/config-file-null_2025-04-16-01-15.json new file mode 100644 index 00000000000..c7a28221017 --- /dev/null +++ b/common/changes/@rushstack/heft-web-rig/config-file-null_2025-04-16-01-15.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Update documentation for `extends`", + "type": "patch", + "packageName": "@rushstack/heft-web-rig" + } + ], + "packageName": "@rushstack/heft-web-rig", + "email": "dmichon-msft@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft/config-file-null_2025-04-16-01-15.json b/common/changes/@rushstack/heft/config-file-null_2025-04-16-01-15.json new file mode 100644 index 00000000000..c0ebb0781b5 --- /dev/null +++ b/common/changes/@rushstack/heft/config-file-null_2025-04-16-01-15.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Update documentation for `extends`", + "type": "patch", + "packageName": "@rushstack/heft" + } + ], + "packageName": "@rushstack/heft", + "email": "dmichon-msft@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/lockfile-explorer/config-file-null_2025-04-16-01-15.json b/common/changes/@rushstack/lockfile-explorer/config-file-null_2025-04-16-01-15.json new file mode 100644 index 00000000000..fb52e6fb85e --- /dev/null +++ b/common/changes/@rushstack/lockfile-explorer/config-file-null_2025-04-16-01-15.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Update documentation for `extends`", + "type": "patch", + "packageName": "@rushstack/lockfile-explorer" + } + ], + "packageName": "@rushstack/lockfile-explorer", + "email": "dmichon-msft@users.noreply.github.com" +} \ No newline at end of file diff --git a/heft-plugins/heft-api-extractor-plugin/src/schemas/api-extractor-task.schema.json b/heft-plugins/heft-api-extractor-plugin/src/schemas/api-extractor-task.schema.json index bfaec0ab038..9710f292181 100644 --- a/heft-plugins/heft-api-extractor-plugin/src/schemas/api-extractor-task.schema.json +++ b/heft-plugins/heft-api-extractor-plugin/src/schemas/api-extractor-task.schema.json @@ -13,7 +13,7 @@ }, "extends": { - "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects.", + "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects. To delete an inherited setting, set it to `null` in this file.", "type": "string" }, diff --git a/heft-plugins/heft-sass-plugin/src/schemas/heft-sass-plugin.schema.json b/heft-plugins/heft-sass-plugin/src/schemas/heft-sass-plugin.schema.json index 252929c3139..0ff5b533c91 100644 --- a/heft-plugins/heft-sass-plugin/src/schemas/heft-sass-plugin.schema.json +++ b/heft-plugins/heft-sass-plugin/src/schemas/heft-sass-plugin.schema.json @@ -13,7 +13,7 @@ }, "extends": { - "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects.", + "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects. To delete an inherited setting, set it to `null` in this file.", "type": "string" }, diff --git a/heft-plugins/heft-sass-plugin/src/templates/sass.json b/heft-plugins/heft-sass-plugin/src/templates/sass.json index 241166bb89f..88b2b1a7120 100644 --- a/heft-plugins/heft-sass-plugin/src/templates/sass.json +++ b/heft-plugins/heft-sass-plugin/src/templates/sass.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/serve-command.json", diff --git a/heft-plugins/heft-typescript-plugin/src/schemas/typescript.schema.json b/heft-plugins/heft-typescript-plugin/src/schemas/typescript.schema.json index ff66372aa51..d42ff1f0476 100644 --- a/heft-plugins/heft-typescript-plugin/src/schemas/typescript.schema.json +++ b/heft-plugins/heft-typescript-plugin/src/schemas/typescript.schema.json @@ -13,7 +13,7 @@ }, "extends": { - "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects.", + "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects. To delete an inherited setting, set it to `null` in this file.", "type": "string" }, diff --git a/libraries/heft-config-file/src/ConfigurationFileBase.ts b/libraries/heft-config-file/src/ConfigurationFileBase.ts index bd17fb686ce..91dec3f5095 100644 --- a/libraries/heft-config-file/src/ConfigurationFileBase.ts +++ b/libraries/heft-config-file/src/ConfigurationFileBase.ts @@ -16,6 +16,8 @@ interface IConfigurationJson { * @beta * * The set of possible mechanisms for merging properties from parent configuration files. + * If a child configuration file sets a property value to `null`, that will always delete the value + * specified in the parent configuration file, regardless of the inheritance type. */ const InheritanceType = { /** @@ -251,6 +253,7 @@ export interface ICustomPropertyInheritance extends IPropertyInheritanc * Provides a custom inheritance function. This function takes two arguments: the first is the * child file's object, and the second is the parent file's object. The function should return * the resulting combined object. + * This function will not be invoked if the current value is `null`, the property will simply be deleted. */ inheritanceFunction: PropertyInheritanceCustomFunction; } @@ -1085,7 +1088,15 @@ export abstract class ConfigurationFileBase { things: string[]; thingsObj: { A: { B: string }; D: { E: string } }; booleanProp: boolean; + stringProp?: string; } it('Correctly loads the config file', () => { @@ -266,7 +267,8 @@ describe('ConfigurationFile', () => { const expectedConfigFile: ISimpleConfigFile = { things: ['A', 'B', 'C'], thingsObj: { A: { B: 'C' }, D: { E: 'F' } }, - booleanProp: true + booleanProp: true, + stringProp: 'someValue' }; expect(JSON.stringify(loadedConfigFile)).toEqual(JSON.stringify(expectedConfigFile)); }); @@ -284,7 +286,8 @@ describe('ConfigurationFile', () => { const expectedConfigFile: ISimpleConfigFile = { things: ['A', 'B', 'C'], thingsObj: { A: { B: 'C' }, D: { E: 'F' } }, - booleanProp: true + booleanProp: true, + stringProp: 'someValue' }; expect(JSON.stringify(loadedConfigFile)).toEqual(JSON.stringify(expectedConfigFile)); }); @@ -317,7 +320,8 @@ describe('ConfigurationFile', () => { A: { B: nodeJsPath.resolve(__dirname, configFileFolderName, 'C') }, D: { E: nodeJsPath.resolve(__dirname, configFileFolderName, 'F') } }, - booleanProp: true + booleanProp: true, + stringProp: 'someValue' }; expect(JSON.stringify(loadedConfigFile)).toEqual(JSON.stringify(expectedConfigFile)); }); @@ -350,7 +354,8 @@ describe('ConfigurationFile', () => { A: { B: nodeJsPath.resolve(__dirname, configFileFolderName, 'C') }, D: { E: nodeJsPath.resolve(__dirname, configFileFolderName, 'F') } }, - booleanProp: true + booleanProp: true, + stringProp: 'someValue' }; expect(JSON.stringify(loadedConfigFile)).toEqual(JSON.stringify(expectedConfigFile)); }); @@ -383,7 +388,8 @@ describe('ConfigurationFile', () => { A: { B: nodeJsPath.resolve(projectRoot, 'C') }, D: { E: nodeJsPath.resolve(projectRoot, 'F') } }, - booleanProp: true + booleanProp: true, + stringProp: 'someValue' }; expect(JSON.stringify(loadedConfigFile)).toEqual(JSON.stringify(expectedConfigFile)); }); @@ -416,7 +422,8 @@ describe('ConfigurationFile', () => { A: { B: nodeJsPath.resolve(projectRoot, 'C') }, D: { E: nodeJsPath.resolve(projectRoot, 'F') } }, - booleanProp: true + booleanProp: true, + stringProp: 'someValue' }; expect(JSON.stringify(loadedConfigFile)).toEqual(JSON.stringify(expectedConfigFile)); }); @@ -435,6 +442,7 @@ describe('ConfigurationFile', () => { things: string[]; thingsObj: { A: { B?: string; D?: string }; D?: { E: string }; F?: { G: string } }; booleanProp: boolean; + stringProp?: string; } it('Correctly loads the config file with default config meta', () => { diff --git a/libraries/heft-config-file/src/test/simpleConfigFile/simpleConfigFile.json b/libraries/heft-config-file/src/test/simpleConfigFile/simpleConfigFile.json index 37dfdc3f199..4db0a32d630 100644 --- a/libraries/heft-config-file/src/test/simpleConfigFile/simpleConfigFile.json +++ b/libraries/heft-config-file/src/test/simpleConfigFile/simpleConfigFile.json @@ -9,5 +9,7 @@ "E": "F" } }, - "booleanProp": true + "booleanProp": true, + + "stringProp": "someValue" } diff --git a/libraries/heft-config-file/src/test/simpleConfigFile/simpleConfigFile.schema.json b/libraries/heft-config-file/src/test/simpleConfigFile/simpleConfigFile.schema.json index 3d118ed35a1..0c2c53a91b8 100644 --- a/libraries/heft-config-file/src/test/simpleConfigFile/simpleConfigFile.schema.json +++ b/libraries/heft-config-file/src/test/simpleConfigFile/simpleConfigFile.schema.json @@ -24,6 +24,10 @@ "booleanProp": { "type": "boolean" + }, + + "stringProp": { + "type": "string" } } } diff --git a/libraries/heft-config-file/src/test/simpleConfigFileWithExtends/simpleConfigFileWithExtends.json b/libraries/heft-config-file/src/test/simpleConfigFileWithExtends/simpleConfigFileWithExtends.json index ce8b0e3e2b4..5a4b4c5ce9e 100644 --- a/libraries/heft-config-file/src/test/simpleConfigFileWithExtends/simpleConfigFileWithExtends.json +++ b/libraries/heft-config-file/src/test/simpleConfigFileWithExtends/simpleConfigFileWithExtends.json @@ -13,5 +13,7 @@ } }, - "booleanProp": false + "booleanProp": false, + + "stringProp": null } diff --git a/libraries/rush-lib/assets/website-only/rush-project.json b/libraries/rush-lib/assets/website-only/rush-project.json index 819dd322050..1347fb59eea 100644 --- a/libraries/rush-lib/assets/website-only/rush-project.json +++ b/libraries/rush-lib/assets/website-only/rush-project.json @@ -8,6 +8,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "my-rig/profiles/default/config/rush-project.json", diff --git a/libraries/rush-lib/src/schemas/pnpm-config.schema.json b/libraries/rush-lib/src/schemas/pnpm-config.schema.json index 6ab70eb2667..a5256c98228 100644 --- a/libraries/rush-lib/src/schemas/pnpm-config.schema.json +++ b/libraries/rush-lib/src/schemas/pnpm-config.schema.json @@ -11,7 +11,7 @@ }, "extends": { - "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects.", + "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects. To delete an inherited setting, set it to `null` in this file.", "type": "string" }, diff --git a/libraries/rush-lib/src/schemas/rush-project.schema.json b/libraries/rush-lib/src/schemas/rush-project.schema.json index 50bec9241da..6e686581253 100644 --- a/libraries/rush-lib/src/schemas/rush-project.schema.json +++ b/libraries/rush-lib/src/schemas/rush-project.schema.json @@ -12,7 +12,7 @@ }, "extends": { - "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects.", + "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects. To delete an inherited setting, set it to `null` in this file.", "type": "string" }, diff --git a/rigs/heft-node-rig/profiles/default/config/heft.json b/rigs/heft-node-rig/profiles/default/config/heft.json index cc2763f149a..922aed1cd6b 100644 --- a/rigs/heft-node-rig/profiles/default/config/heft.json +++ b/rigs/heft-node-rig/profiles/default/config/heft.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/heft.json", diff --git a/rigs/heft-node-rig/profiles/default/config/typescript.json b/rigs/heft-node-rig/profiles/default/config/typescript.json index 50ab4719c5d..ac7c00881b3 100644 --- a/rigs/heft-node-rig/profiles/default/config/typescript.json +++ b/rigs/heft-node-rig/profiles/default/config/typescript.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/typescript.json", diff --git a/rigs/heft-web-rig/profiles/app/config/heft.json b/rigs/heft-web-rig/profiles/app/config/heft.json index bdf1a762f11..9830c15f31c 100644 --- a/rigs/heft-web-rig/profiles/app/config/heft.json +++ b/rigs/heft-web-rig/profiles/app/config/heft.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/heft.json", diff --git a/rigs/heft-web-rig/profiles/app/config/sass.json b/rigs/heft-web-rig/profiles/app/config/sass.json index 2aabb61e19d..f6fe4ffe9c5 100644 --- a/rigs/heft-web-rig/profiles/app/config/sass.json +++ b/rigs/heft-web-rig/profiles/app/config/sass.json @@ -10,6 +10,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/serve-command.json", diff --git a/rigs/heft-web-rig/profiles/app/config/typescript.json b/rigs/heft-web-rig/profiles/app/config/typescript.json index 123e40a0d2f..91a9bc59c3b 100644 --- a/rigs/heft-web-rig/profiles/app/config/typescript.json +++ b/rigs/heft-web-rig/profiles/app/config/typescript.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/typescript.json", diff --git a/rigs/heft-web-rig/profiles/library/config/api-extractor-task.json b/rigs/heft-web-rig/profiles/library/config/api-extractor-task.json index 46fdc5f876a..a051e971819 100644 --- a/rigs/heft-web-rig/profiles/library/config/api-extractor-task.json +++ b/rigs/heft-web-rig/profiles/library/config/api-extractor-task.json @@ -10,6 +10,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/api-extractor-task.json", diff --git a/rigs/heft-web-rig/profiles/library/config/heft.json b/rigs/heft-web-rig/profiles/library/config/heft.json index bdf1a762f11..9830c15f31c 100644 --- a/rigs/heft-web-rig/profiles/library/config/heft.json +++ b/rigs/heft-web-rig/profiles/library/config/heft.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/heft.json", diff --git a/rigs/heft-web-rig/profiles/library/config/sass.json b/rigs/heft-web-rig/profiles/library/config/sass.json index 2aabb61e19d..f6fe4ffe9c5 100644 --- a/rigs/heft-web-rig/profiles/library/config/sass.json +++ b/rigs/heft-web-rig/profiles/library/config/sass.json @@ -10,6 +10,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/serve-command.json", diff --git a/rigs/heft-web-rig/profiles/library/config/typescript.json b/rigs/heft-web-rig/profiles/library/config/typescript.json index 123e40a0d2f..91a9bc59c3b 100644 --- a/rigs/heft-web-rig/profiles/library/config/typescript.json +++ b/rigs/heft-web-rig/profiles/library/config/typescript.json @@ -7,6 +7,8 @@ /** * Optionally specifies another JSON config file that this file extends from. This provides a way for standard * settings to be shared across multiple projects. + * + * To delete an inherited setting, set it to `null` in this file. */ // "extends": "base-project/config/typescript.json", diff --git a/rush-plugins/rush-serve-plugin/src/schemas/rush-project-serve.schema.json b/rush-plugins/rush-serve-plugin/src/schemas/rush-project-serve.schema.json index af1dad75e00..dde1549b4a6 100644 --- a/rush-plugins/rush-serve-plugin/src/schemas/rush-project-serve.schema.json +++ b/rush-plugins/rush-serve-plugin/src/schemas/rush-project-serve.schema.json @@ -12,7 +12,7 @@ }, "extends": { - "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects.", + "description": "Optionally specifies another JSON config file that this file extends from. This provides a way for standard settings to be shared across multiple projects. To delete an inherited setting, set it to `null` in this file.", "type": "string" },