Skip to content

Commit 3aa5811

Browse files
authored
fix 3.0.0 update warning (#1308)
* Attempt to fix false package mismatch warnings * Add changeset * Add ability to test update checks in prerelease packages * Resolve the trigger.dev package based on the package.json dir * Try this * Don’t use the version module, just resolve the packageJson * One more dirname * Comment * Remove the version export because we aren’t using it anymore
1 parent 94698ad commit 3aa5811

File tree

3 files changed

+47
-6
lines changed

3 files changed

+47
-6
lines changed

.changeset/calm-berries-trade.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@trigger.dev/sdk": patch
3+
"trigger.dev": patch
4+
"@trigger.dev/build": patch
5+
"@trigger.dev/core": patch
6+
---
7+
8+
Fixing false-positive package version mismatches

packages/cli-v3/src/commands/update.ts

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { confirm, intro, isCancel, log, outro } from "@clack/prompts";
22
import { Command } from "commander";
33
import { detectPackageManager, installDependencies } from "nypm";
4-
import { resolve } from "path";
4+
import { basename, dirname, resolve } from "path";
55
import { PackageJson, readPackageJSON, resolvePackageJSON } from "pkg-types";
66
import { z } from "zod";
77
import { CommonCommandOptions, OutroCommandError, wrapCommandAction } from "../cli/common.js";
@@ -12,6 +12,7 @@ import { logger } from "../utilities/logger.js";
1212
import { spinner } from "../utilities/windows.js";
1313
import { VERSION } from "../version.js";
1414
import { hasTTY } from "std-env";
15+
import nodeResolve from "resolve";
1516

1617
export const UpdateCommandOptions = CommonCommandOptions.pick({
1718
logLevel: true,
@@ -54,7 +55,7 @@ export async function updateTriggerPackages(
5455
let hasOutput = false;
5556
const cliVersion = VERSION;
5657

57-
if (cliVersion.startsWith("0.0.0")) {
58+
if (cliVersion.startsWith("0.0.0") && process.env.ENABLE_PRERELEASE_UPDATE_CHECKS !== "1") {
5859
return false;
5960
}
6061

@@ -83,7 +84,9 @@ export async function updateTriggerPackages(
8384
hasOutput = true;
8485
}
8586

86-
const triggerDependencies = getTriggerDependencies(packageJson);
87+
const triggerDependencies = await getTriggerDependencies(packageJson, packageJsonPath);
88+
89+
logger.debug("Resolved trigger deps", { triggerDependencies });
8790

8891
function getVersionMismatches(
8992
deps: Dependency[],
@@ -268,7 +271,10 @@ type Dependency = {
268271
version: string;
269272
};
270273

271-
function getTriggerDependencies(packageJson: PackageJson): Dependency[] {
274+
async function getTriggerDependencies(
275+
packageJson: PackageJson,
276+
packageJsonPath: string
277+
): Promise<Dependency[]> {
272278
const deps: Dependency[] = [];
273279

274280
for (const type of ["dependencies", "devDependencies"] as const) {
@@ -291,13 +297,41 @@ function getTriggerDependencies(packageJson: PackageJson): Dependency[] {
291297
continue;
292298
}
293299

294-
deps.push({ type, name, version });
300+
const $version = await tryResolveTriggerPackageVersion(name, packageJsonPath);
301+
302+
deps.push({ type, name, version: $version ?? version });
295303
}
296304
}
297305

298306
return deps;
299307
}
300308

309+
async function tryResolveTriggerPackageVersion(
310+
name: string,
311+
packageJsonPath: string
312+
): Promise<string | undefined> {
313+
try {
314+
const resolvedPath = nodeResolve.sync(name, {
315+
basedir: dirname(packageJsonPath),
316+
});
317+
318+
logger.debug(`Resolved ${name} package version path`, { name, resolvedPath });
319+
320+
// IMPORTANT: keep the two dirname calls, as the first one resolves the nested package.json inside dist/commonjs or dist/esm
321+
const { packageJson } = await getPackageJson(dirname(dirname(resolvedPath)));
322+
323+
if (packageJson.version) {
324+
logger.debug(`Resolved ${name} package version`, { name, version: packageJson.version });
325+
return packageJson.version;
326+
}
327+
328+
return;
329+
} catch (error) {
330+
logger.debug("Failed to resolve package version", { name, error });
331+
return undefined;
332+
}
333+
}
334+
301335
function mutatePackageJsonWithUpdatedPackages(
302336
packageJson: PackageJson,
303337
depsToUpdate: Dependency[],

scripts/publish-prerelease.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ else
1515
fi
1616

1717
# Run your commands
18-
rm .changeset/pre.json
1918

2019
echo "Running: pnpm exec changeset version --snapshot $version"
2120
pnpm exec changeset version --snapshot $version

0 commit comments

Comments
 (0)