From 40177f63e13a5d25db9dd70f938a3efd2cf8be3c Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 16 Sep 2024 16:21:48 +0100 Subject: [PATCH 1/9] Attempt to fix false package mismatch warnings --- packages/build/package.json | 12 ++++++++++++ packages/cli-v3/package.json | 9 ++++++++- packages/cli-v3/src/commands/update.ts | 21 ++++++++++++++++++--- packages/core/package.json | 12 ++++++++++++ packages/trigger-sdk/package.json | 14 +++++++++++++- 5 files changed, 63 insertions(+), 5 deletions(-) diff --git a/packages/build/package.json b/packages/build/package.json index 30e3319a46..d4be8afd7c 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -23,6 +23,7 @@ "exports": { "./package.json": "./package.json", ".": "./src/index.ts", + "./version": "./src/version.ts", "./extensions": "./src/extensions/index.ts", "./extensions/core": "./src/extensions/core.ts", "./extensions/prisma": "./src/extensions/prisma.ts", @@ -91,6 +92,17 @@ "default": "./dist/commonjs/index.js" } }, + "./version": { + "import": { + "@triggerdotdev/source": "./src/version.ts", + "types": "./dist/esm/version.d.ts", + "default": "./dist/esm/version.js" + }, + "require": { + "types": "./dist/commonjs/version.d.ts", + "default": "./dist/commonjs/version.js" + } + }, "./extensions": { "import": { "@triggerdotdev/source": "./src/extensions/index.ts", diff --git a/packages/cli-v3/package.json b/packages/cli-v3/package.json index 89e349a73a..1ac9028c9f 100644 --- a/packages/cli-v3/package.json +++ b/packages/cli-v3/package.json @@ -42,7 +42,8 @@ "project": "./tsconfig.src.json", "exports": { "./package.json": "./package.json", - ".": "./src/index.ts" + ".": "./src/index.ts", + "./version": "./src/version.ts" } }, "devDependencies": { @@ -134,6 +135,12 @@ "types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js" } + }, + "./version": { + "import": { + "types": "./dist/esm/version.d.ts", + "default": "./dist/esm/version.js" + } } } } diff --git a/packages/cli-v3/src/commands/update.ts b/packages/cli-v3/src/commands/update.ts index f22fe9fd3e..69488e2126 100644 --- a/packages/cli-v3/src/commands/update.ts +++ b/packages/cli-v3/src/commands/update.ts @@ -83,7 +83,9 @@ export async function updateTriggerPackages( hasOutput = true; } - const triggerDependencies = getTriggerDependencies(packageJson); + const triggerDependencies = await getTriggerDependencies(packageJson); + + logger.debug("Resolved trigger deps", { triggerDependencies }); function getVersionMismatches( deps: Dependency[], @@ -268,7 +270,7 @@ type Dependency = { version: string; }; -function getTriggerDependencies(packageJson: PackageJson): Dependency[] { +async function getTriggerDependencies(packageJson: PackageJson): Promise { const deps: Dependency[] = []; for (const type of ["dependencies", "devDependencies"] as const) { @@ -291,13 +293,26 @@ function getTriggerDependencies(packageJson: PackageJson): Dependency[] { continue; } - deps.push({ type, name, version }); + const $version = await tryResolveTriggerPackageVersion(name); + + deps.push({ type, name, version: $version ?? version }); } } return deps; } +async function tryResolveTriggerPackageVersion(name: string): Promise { + try { + const versionModule = await import(`${name}/version`); + + return versionModule?.VERSION; + } catch (error) { + logger.debug("Failed to resolve package version", { name, error }); + return undefined; + } +} + function mutatePackageJsonWithUpdatedPackages( packageJson: PackageJson, depsToUpdate: Dependency[], diff --git a/packages/core/package.json b/packages/core/package.json index 935358aa64..7919c074cd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -22,6 +22,7 @@ "exports": { "./package.json": "./package.json", ".": "./src/index.ts", + "./version": "./src/version.ts", "./logger": "./src/logger.ts", "./bloom": "./src/bloom.ts", "./eventFilterMatches": "./src/eventFilterMatches.ts", @@ -225,6 +226,17 @@ "default": "./dist/commonjs/index.js" } }, + "./version": { + "import": { + "@triggerdotdev/source": "./src/version.ts", + "types": "./dist/esm/version.d.ts", + "default": "./dist/esm/version.js" + }, + "require": { + "types": "./dist/commonjs/version.d.ts", + "default": "./dist/commonjs/version.js" + } + }, "./logger": { "import": { "@triggerdotdev/source": "./src/logger.ts", diff --git a/packages/trigger-sdk/package.json b/packages/trigger-sdk/package.json index 4e67cc7ef9..30670fd690 100644 --- a/packages/trigger-sdk/package.json +++ b/packages/trigger-sdk/package.json @@ -23,7 +23,8 @@ "exports": { "./package.json": "./package.json", ".": "./src/index.ts", - "./v3": "./src/v3/index.ts" + "./v3": "./src/v3/index.ts", + "./version": "./src/version.ts" }, "sourceDialects": [ "@triggerdotdev/source" @@ -100,6 +101,17 @@ "types": "./dist/commonjs/v3/index.d.ts", "default": "./dist/commonjs/v3/index.js" } + }, + "./version": { + "import": { + "@triggerdotdev/source": "./src/version.ts", + "types": "./dist/esm/version.d.ts", + "default": "./dist/esm/version.js" + }, + "require": { + "types": "./dist/commonjs/version.d.ts", + "default": "./dist/commonjs/version.js" + } } }, "main": "./dist/commonjs/index.js", From 1aa8aee806a33af2e3dfb86892884e0bc6d70bc8 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 16 Sep 2024 16:22:39 +0100 Subject: [PATCH 2/9] Add changeset --- .changeset/calm-berries-trade.md | 8 ++++++++ scripts/publish-prerelease.sh | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/calm-berries-trade.md diff --git a/.changeset/calm-berries-trade.md b/.changeset/calm-berries-trade.md new file mode 100644 index 0000000000..9442bd89ec --- /dev/null +++ b/.changeset/calm-berries-trade.md @@ -0,0 +1,8 @@ +--- +"@trigger.dev/sdk": patch +"trigger.dev": patch +"@trigger.dev/build": patch +"@trigger.dev/core": patch +--- + +Fixing false-positive package version mismatches diff --git a/scripts/publish-prerelease.sh b/scripts/publish-prerelease.sh index 7162c6373f..0b6e56ef2e 100755 --- a/scripts/publish-prerelease.sh +++ b/scripts/publish-prerelease.sh @@ -15,7 +15,6 @@ else fi # Run your commands -rm .changeset/pre.json echo "Running: pnpm exec changeset version --snapshot $version" pnpm exec changeset version --snapshot $version From fb8214d819a69bea223f6faf3eebe303f072343c Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 16 Sep 2024 16:37:00 +0100 Subject: [PATCH 3/9] Add ability to test update checks in prerelease packages --- packages/cli-v3/src/commands/update.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli-v3/src/commands/update.ts b/packages/cli-v3/src/commands/update.ts index 69488e2126..d2215d07af 100644 --- a/packages/cli-v3/src/commands/update.ts +++ b/packages/cli-v3/src/commands/update.ts @@ -54,7 +54,7 @@ export async function updateTriggerPackages( let hasOutput = false; const cliVersion = VERSION; - if (cliVersion.startsWith("0.0.0")) { + if (cliVersion.startsWith("0.0.0") && process.env.ENABLE_PRERELEASE_UPDATE_CHECKS !== "1") { return false; } From f22164f4749e22c02b5f4285c07c95498832851f Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 16 Sep 2024 17:04:56 +0100 Subject: [PATCH 4/9] Resolve the trigger.dev package based on the package.json dir --- packages/cli-v3/src/commands/update.ts | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/packages/cli-v3/src/commands/update.ts b/packages/cli-v3/src/commands/update.ts index d2215d07af..722fd925ca 100644 --- a/packages/cli-v3/src/commands/update.ts +++ b/packages/cli-v3/src/commands/update.ts @@ -1,7 +1,7 @@ import { confirm, intro, isCancel, log, outro } from "@clack/prompts"; import { Command } from "commander"; import { detectPackageManager, installDependencies } from "nypm"; -import { resolve } from "path"; +import { basename, dirname, resolve } from "path"; import { PackageJson, readPackageJSON, resolvePackageJSON } from "pkg-types"; import { z } from "zod"; import { CommonCommandOptions, OutroCommandError, wrapCommandAction } from "../cli/common.js"; @@ -12,6 +12,7 @@ import { logger } from "../utilities/logger.js"; import { spinner } from "../utilities/windows.js"; import { VERSION } from "../version.js"; import { hasTTY } from "std-env"; +import nodeResolve from "resolve"; export const UpdateCommandOptions = CommonCommandOptions.pick({ logLevel: true, @@ -83,7 +84,7 @@ export async function updateTriggerPackages( hasOutput = true; } - const triggerDependencies = await getTriggerDependencies(packageJson); + const triggerDependencies = await getTriggerDependencies(packageJson, packageJsonPath); logger.debug("Resolved trigger deps", { triggerDependencies }); @@ -270,7 +271,10 @@ type Dependency = { version: string; }; -async function getTriggerDependencies(packageJson: PackageJson): Promise { +async function getTriggerDependencies( + packageJson: PackageJson, + packageJsonPath: string +): Promise { const deps: Dependency[] = []; for (const type of ["dependencies", "devDependencies"] as const) { @@ -293,7 +297,7 @@ async function getTriggerDependencies(packageJson: PackageJson): Promise { +async function tryResolveTriggerPackageVersion( + name: string, + packageJsonPath: string +): Promise { try { - const versionModule = await import(`${name}/version`); + const resolvedPath = nodeResolve.sync(`${name}/version`, { + basedir: dirname(packageJsonPath), + }); + + logger.debug(`Resolved ${name} package version path`, { name, resolvedPath }); + + const versionModule = await import(resolvedPath); return versionModule?.VERSION; } catch (error) { From dfd04c783294edaae50767d194e070981c55c889 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 16 Sep 2024 17:22:15 +0100 Subject: [PATCH 5/9] Try this --- packages/cli-v3/src/commands/update.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cli-v3/src/commands/update.ts b/packages/cli-v3/src/commands/update.ts index 722fd925ca..47218210e0 100644 --- a/packages/cli-v3/src/commands/update.ts +++ b/packages/cli-v3/src/commands/update.ts @@ -311,13 +311,13 @@ async function tryResolveTriggerPackageVersion( packageJsonPath: string ): Promise { try { - const resolvedPath = nodeResolve.sync(`${name}/version`, { + const resolvedPath = nodeResolve.sync(name, { basedir: dirname(packageJsonPath), }); logger.debug(`Resolved ${name} package version path`, { name, resolvedPath }); - const versionModule = await import(resolvedPath); + const versionModule = await import(`${dirname(resolvedPath)}/version.js`); return versionModule?.VERSION; } catch (error) { From 7c3c835dd1ab888804215ef796d15ee34a52ee63 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 16 Sep 2024 17:30:53 +0100 Subject: [PATCH 6/9] =?UTF-8?q?Don=E2=80=99t=20use=20the=20version=20modul?= =?UTF-8?q?e,=20just=20resolve=20the=20packageJson?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/cli-v3/src/commands/update.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/cli-v3/src/commands/update.ts b/packages/cli-v3/src/commands/update.ts index 47218210e0..1eeaeba34f 100644 --- a/packages/cli-v3/src/commands/update.ts +++ b/packages/cli-v3/src/commands/update.ts @@ -317,9 +317,14 @@ async function tryResolveTriggerPackageVersion( logger.debug(`Resolved ${name} package version path`, { name, resolvedPath }); - const versionModule = await import(`${dirname(resolvedPath)}/version.js`); + const { packageJson } = await getPackageJson(dirname(resolvedPath)); - return versionModule?.VERSION; + if (packageJson.version) { + logger.debug(`Resolved ${name} package version`, { name, version: packageJson.version }); + return packageJson.version; + } + + return; } catch (error) { logger.debug("Failed to resolve package version", { name, error }); return undefined; From a17a89e543a360d404367b42a38efd7bf5edcf2f Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 16 Sep 2024 17:35:38 +0100 Subject: [PATCH 7/9] One more dirname --- packages/cli-v3/src/commands/update.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli-v3/src/commands/update.ts b/packages/cli-v3/src/commands/update.ts index 1eeaeba34f..2393230e8f 100644 --- a/packages/cli-v3/src/commands/update.ts +++ b/packages/cli-v3/src/commands/update.ts @@ -317,7 +317,7 @@ async function tryResolveTriggerPackageVersion( logger.debug(`Resolved ${name} package version path`, { name, resolvedPath }); - const { packageJson } = await getPackageJson(dirname(resolvedPath)); + const { packageJson } = await getPackageJson(dirname(dirname(resolvedPath))); if (packageJson.version) { logger.debug(`Resolved ${name} package version`, { name, version: packageJson.version }); From dcc1dcbc1245d2bcecc2377267cb3cc9ef29c34b Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 16 Sep 2024 17:37:46 +0100 Subject: [PATCH 8/9] Comment --- packages/cli-v3/src/commands/update.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/cli-v3/src/commands/update.ts b/packages/cli-v3/src/commands/update.ts index 2393230e8f..c8262da2f2 100644 --- a/packages/cli-v3/src/commands/update.ts +++ b/packages/cli-v3/src/commands/update.ts @@ -317,6 +317,7 @@ async function tryResolveTriggerPackageVersion( logger.debug(`Resolved ${name} package version path`, { name, resolvedPath }); + // IMPORTANT: keep the two dirname calls, as the first one resolves the nested package.json inside dist/commonjs or dist/esm const { packageJson } = await getPackageJson(dirname(dirname(resolvedPath))); if (packageJson.version) { From b89fa354894b5b5c83e623164f51f1c72b62b4be Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 16 Sep 2024 17:47:19 +0100 Subject: [PATCH 9/9] =?UTF-8?q?Remove=20the=20version=20export=20because?= =?UTF-8?q?=20we=20aren=E2=80=99t=20using=20it=20anymore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/build/package.json | 12 ------------ packages/cli-v3/package.json | 9 +-------- packages/core/package.json | 12 ------------ packages/trigger-sdk/package.json | 14 +------------- 4 files changed, 2 insertions(+), 45 deletions(-) diff --git a/packages/build/package.json b/packages/build/package.json index d4be8afd7c..30e3319a46 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -23,7 +23,6 @@ "exports": { "./package.json": "./package.json", ".": "./src/index.ts", - "./version": "./src/version.ts", "./extensions": "./src/extensions/index.ts", "./extensions/core": "./src/extensions/core.ts", "./extensions/prisma": "./src/extensions/prisma.ts", @@ -92,17 +91,6 @@ "default": "./dist/commonjs/index.js" } }, - "./version": { - "import": { - "@triggerdotdev/source": "./src/version.ts", - "types": "./dist/esm/version.d.ts", - "default": "./dist/esm/version.js" - }, - "require": { - "types": "./dist/commonjs/version.d.ts", - "default": "./dist/commonjs/version.js" - } - }, "./extensions": { "import": { "@triggerdotdev/source": "./src/extensions/index.ts", diff --git a/packages/cli-v3/package.json b/packages/cli-v3/package.json index 1ac9028c9f..89e349a73a 100644 --- a/packages/cli-v3/package.json +++ b/packages/cli-v3/package.json @@ -42,8 +42,7 @@ "project": "./tsconfig.src.json", "exports": { "./package.json": "./package.json", - ".": "./src/index.ts", - "./version": "./src/version.ts" + ".": "./src/index.ts" } }, "devDependencies": { @@ -135,12 +134,6 @@ "types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js" } - }, - "./version": { - "import": { - "types": "./dist/esm/version.d.ts", - "default": "./dist/esm/version.js" - } } } } diff --git a/packages/core/package.json b/packages/core/package.json index 7919c074cd..935358aa64 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -22,7 +22,6 @@ "exports": { "./package.json": "./package.json", ".": "./src/index.ts", - "./version": "./src/version.ts", "./logger": "./src/logger.ts", "./bloom": "./src/bloom.ts", "./eventFilterMatches": "./src/eventFilterMatches.ts", @@ -226,17 +225,6 @@ "default": "./dist/commonjs/index.js" } }, - "./version": { - "import": { - "@triggerdotdev/source": "./src/version.ts", - "types": "./dist/esm/version.d.ts", - "default": "./dist/esm/version.js" - }, - "require": { - "types": "./dist/commonjs/version.d.ts", - "default": "./dist/commonjs/version.js" - } - }, "./logger": { "import": { "@triggerdotdev/source": "./src/logger.ts", diff --git a/packages/trigger-sdk/package.json b/packages/trigger-sdk/package.json index 30670fd690..4e67cc7ef9 100644 --- a/packages/trigger-sdk/package.json +++ b/packages/trigger-sdk/package.json @@ -23,8 +23,7 @@ "exports": { "./package.json": "./package.json", ".": "./src/index.ts", - "./v3": "./src/v3/index.ts", - "./version": "./src/version.ts" + "./v3": "./src/v3/index.ts" }, "sourceDialects": [ "@triggerdotdev/source" @@ -101,17 +100,6 @@ "types": "./dist/commonjs/v3/index.d.ts", "default": "./dist/commonjs/v3/index.js" } - }, - "./version": { - "import": { - "@triggerdotdev/source": "./src/version.ts", - "types": "./dist/esm/version.d.ts", - "default": "./dist/esm/version.js" - }, - "require": { - "types": "./dist/commonjs/version.d.ts", - "default": "./dist/commonjs/version.js" - } } }, "main": "./dist/commonjs/index.js",