From 8f77ca4996110a7dd50cbc8c71d1e541626f4d53 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 21 May 2025 17:16:51 -0700 Subject: [PATCH 1/4] Set access config --- _packages/native-preview/package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_packages/native-preview/package.json b/_packages/native-preview/package.json index 7682cd6954..f80dedced8 100644 --- a/_packages/native-preview/package.json +++ b/_packages/native-preview/package.json @@ -21,6 +21,9 @@ "type": "git", "url": "https://github.com/microsoft/typescript-go.git" }, + "publishConfig": { + "access": "public" + }, "type": "module", "preferUnplugged": true, "engines": { From 4544078cfcd2c8b479c367b05fee6da54bc63829 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 21 May 2025 17:24:02 -0700 Subject: [PATCH 2/4] Hack up the VSIX version --- Herebyfile.mjs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Herebyfile.mjs b/Herebyfile.mjs index b70573e9e5..6fd7871cb6 100644 --- a/Herebyfile.mjs +++ b/Herebyfile.mjs @@ -83,6 +83,11 @@ const { values: rawOptions } = parseArgs({ */ const options = /** @type {Options} */ (rawOptions); +if (options.forRelease && !options.setPrerelease) { + throw new Error("forRelease requires setPrerelease"); + z; +} + const defaultGoBuildTags = [ ...(options.noembed ? ["noembed"] : []), ]; @@ -1153,7 +1158,22 @@ export const packNativePreviewExtensions = task({ await $({ cwd: extensionDir })`npm run bundle`; - const version = getVersion(); + let version = "0.0.0"; + if (options.forRelease) { + assert(options.setPrerelease, "forRelease is true but setPrerelease is not set"); + const prerelease = options.setPrerelease; + assert(typeof prerelease === "string", "setPrerelease is not a string"); + // parse `dev..`. + const match = prerelease.match(/dev\.(\d+)\.(\d+)/); + if (!match) { + throw new Error(`Prerelease version should be in the form of dev.., but got ${prerelease}`); + } + // Set version to `0..`. + version = `0.${match[1]}.${match[2]}`; + } + + console.log("Version:", version); + const platforms = nativePreviewPlatforms(); await Promise.all(platforms.map(async ({ npmDir, vscodeTarget, extensionDir: thisExtensionDir, vsixPath, vsixManifestPath, vsixSignaturePath }) => { From a2e8c10c88690926ccd28ae379e4e9236b35c5be Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 21 May 2025 17:24:22 -0700 Subject: [PATCH 3/4] Comment --- Herebyfile.mjs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Herebyfile.mjs b/Herebyfile.mjs index 6fd7871cb6..e64f00a387 100644 --- a/Herebyfile.mjs +++ b/Herebyfile.mjs @@ -1160,6 +1160,8 @@ export const packNativePreviewExtensions = task({ let version = "0.0.0"; if (options.forRelease) { + // No real semver prerelease versioning. + // https://code.visualstudio.com/api/working-with-extensions/publishing-extension#prerelease-extensions assert(options.setPrerelease, "forRelease is true but setPrerelease is not set"); const prerelease = options.setPrerelease; assert(typeof prerelease === "string", "setPrerelease is not a string"); From 3e547a0c8ecf1eaaba9478443f49d44a77015a9b Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 21 May 2025 17:24:56 -0700 Subject: [PATCH 4/4] oops --- Herebyfile.mjs | 1 - 1 file changed, 1 deletion(-) diff --git a/Herebyfile.mjs b/Herebyfile.mjs index e64f00a387..2c65ad375d 100644 --- a/Herebyfile.mjs +++ b/Herebyfile.mjs @@ -85,7 +85,6 @@ const options = /** @type {Options} */ (rawOptions); if (options.forRelease && !options.setPrerelease) { throw new Error("forRelease requires setPrerelease"); - z; } const defaultGoBuildTags = [