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
This commit is contained in:
@@ -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
|
||||
@@ -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,
|
||||
@@ -54,7 +55,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;
|
||||
}
|
||||
|
||||
@@ -83,7 +84,9 @@ export async function updateTriggerPackages(
|
||||
hasOutput = true;
|
||||
}
|
||||
|
||||
const triggerDependencies = getTriggerDependencies(packageJson);
|
||||
const triggerDependencies = await getTriggerDependencies(packageJson, packageJsonPath);
|
||||
|
||||
logger.debug("Resolved trigger deps", { triggerDependencies });
|
||||
|
||||
function getVersionMismatches(
|
||||
deps: Dependency[],
|
||||
@@ -268,7 +271,10 @@ type Dependency = {
|
||||
version: string;
|
||||
};
|
||||
|
||||
function getTriggerDependencies(packageJson: PackageJson): Dependency[] {
|
||||
async function getTriggerDependencies(
|
||||
packageJson: PackageJson,
|
||||
packageJsonPath: string
|
||||
): Promise<Dependency[]> {
|
||||
const deps: Dependency[] = [];
|
||||
|
||||
for (const type of ["dependencies", "devDependencies"] as const) {
|
||||
@@ -291,13 +297,41 @@ function getTriggerDependencies(packageJson: PackageJson): Dependency[] {
|
||||
continue;
|
||||
}
|
||||
|
||||
deps.push({ type, name, version });
|
||||
const $version = await tryResolveTriggerPackageVersion(name, packageJsonPath);
|
||||
|
||||
deps.push({ type, name, version: $version ?? version });
|
||||
}
|
||||
}
|
||||
|
||||
return deps;
|
||||
}
|
||||
|
||||
async function tryResolveTriggerPackageVersion(
|
||||
name: string,
|
||||
packageJsonPath: string
|
||||
): Promise<string | undefined> {
|
||||
try {
|
||||
const resolvedPath = nodeResolve.sync(name, {
|
||||
basedir: dirname(packageJsonPath),
|
||||
});
|
||||
|
||||
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) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
function mutatePackageJsonWithUpdatedPackages(
|
||||
packageJson: PackageJson,
|
||||
depsToUpdate: Dependency[],
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user