From 012b0f61c3ebf8c460b9522f21748f918f0e0135 Mon Sep 17 00:00:00 2001 From: Brandon Bothell Date: Fri, 24 Apr 2026 01:53:47 -0400 Subject: [PATCH 1/2] Update vscode settings generated by @yarnpkg/sdks --- packages/yarnpkg-sdks/sources/sdkUtils.ts | 22 ++++++++++++++++++++ packages/yarnpkg-sdks/sources/sdks/vscode.ts | 15 +++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/packages/yarnpkg-sdks/sources/sdkUtils.ts b/packages/yarnpkg-sdks/sources/sdkUtils.ts index 167091f3f3b8..ef4a1730ac0e 100644 --- a/packages/yarnpkg-sdks/sources/sdkUtils.ts +++ b/packages/yarnpkg-sdks/sources/sdkUtils.ts @@ -21,3 +21,25 @@ export const addSettingWorkspaceConfiguration = async (pnpApi: PnpApi, relativeF automaticNewlines: true, }); }; + +export const removeSettingWorkspaceConfiguration = async (pnpApi: PnpApi, relativeFileName: PortablePath, keysToRemove: Array) => { + const topLevelInformation = pnpApi.getPackageInformation(pnpApi.topLevel)!; + const projectRoot = npath.toPortablePath(topLevelInformation.packageLocation); + + const filePath = ppath.join(projectRoot, relativeFileName); + + if (!await xfs.existsPromise(filePath)) + return; + + const content = await xfs.readFilePromise(filePath, `utf8`); + const data = CJSON.parse(content); + + for (const key of keysToRemove) + delete data[key]; + + const patched = `${CJSON.stringify(data, null, 2)}\n`; + + await xfs.changeFilePromise(filePath, patched, { + automaticNewlines: true, + }); +}; diff --git a/packages/yarnpkg-sdks/sources/sdks/vscode.ts b/packages/yarnpkg-sdks/sources/sdks/vscode.ts index b47880c59fe9..a0a48689a7f9 100644 --- a/packages/yarnpkg-sdks/sources/sdks/vscode.ts +++ b/packages/yarnpkg-sdks/sources/sdks/vscode.ts @@ -14,6 +14,11 @@ export const addVSCodeWorkspaceConfiguration = async (pnpApi: PnpApi, type: VSCo await sdkUtils.addSettingWorkspaceConfiguration(pnpApi, relativeFilePath, patch); }; +export const removeVSCodeWorkspaceConfiguration = async (pnpApi: PnpApi, type: VSCodeConfiguration, patch: any) => { + const relativeFilePath = `.vscode/${type}` as PortablePath; + await sdkUtils.removeSettingWorkspaceConfiguration(pnpApi, relativeFilePath, patch); +}; + export const generateDefaultWrapper: GenerateDefaultWrapper = async (pnpApi: PnpApi) => { await addVSCodeWorkspaceConfiguration(pnpApi, VSCodeConfiguration.settings, { [`search.exclude`]: { @@ -94,15 +99,21 @@ export const generateRelayCompilerWrapper: GenerateIntegrationWrapper = async (p }; export const generateTypescriptWrapper: GenerateIntegrationWrapper = async (pnpApi: PnpApi, target: PortablePath, wrapper: Wrapper) => { + // Remove old TypeScript settings if present to prevent deprecation warnings from vscode + await removeVSCodeWorkspaceConfiguration(pnpApi, VSCodeConfiguration.settings, [ + `typescript.tsdk`, + `typescript.enablePromptUseWorkspaceTsdk`, + ]); + await addVSCodeWorkspaceConfiguration(pnpApi, VSCodeConfiguration.settings, { - [`typescript.tsdk`]: npath.fromPortablePath( + [`js/ts.tsdk.path`]: npath.fromPortablePath( ppath.dirname( wrapper.getProjectPathTo( `lib/tsserver.js` as PortablePath, ), ), ), - [`typescript.enablePromptUseWorkspaceTsdk`]: true, + [`js/ts.tsdk.promptToUseWorkspaceVersion`]: true, }); }; From 3226c31b6e2c792b0b529b15c473fac5675da768 Mon Sep 17 00:00:00 2001 From: Brandon Bothell Date: Fri, 24 Apr 2026 01:54:50 -0400 Subject: [PATCH 2/2] Generate release strategy --- .yarn/versions/c309a37a.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .yarn/versions/c309a37a.yml diff --git a/.yarn/versions/c309a37a.yml b/.yarn/versions/c309a37a.yml new file mode 100644 index 000000000000..55d8fd5f41f4 --- /dev/null +++ b/.yarn/versions/c309a37a.yml @@ -0,0 +1,2 @@ +releases: + "@yarnpkg/sdks": major