fix: dynamically discover packages in release script instead of hardcoding

- sdk.ts: discoverNpmPackages() + topoSort() for library packages
- sdk.ts: discoverCrates() via cargo metadata for workspace crates
- sdk.ts: publishNpmLibraries replaces publishNpmCliShared + publishNpmSdk
- sdk.ts: publishNpmCli now discovers CLI packages from filesystem
- update_version.ts: discovers SDK package.json files via glob
- update_version.ts: discovers internal crates from Cargo.toml path deps

This prevents packages like persist-*, acp-http-client from being
silently skipped during releases.
This commit is contained in:
Nathan Flurry 2026-02-11 17:51:32 -08:00
parent cdbe920070
commit 46193747e6
3 changed files with 240 additions and 268 deletions

View file

@ -13,7 +13,7 @@ import {
createGitHubRelease,
validateGit,
} from "./git";
import { publishCrates, publishNpmCli, publishNpmCliShared, publishNpmSdk } from "./sdk";
import { publishCrates, publishNpmCli, publishNpmLibraries } from "./sdk";
import { updateVersion } from "./update_version";
import { assert, assertEquals, fetchGitRef, versionOrCommitToRef } from "./utils";
@ -282,8 +282,7 @@ const STEPS = [
"run-ci-checks",
"build-js-artifacts",
"publish-crates",
"publish-npm-cli-shared",
"publish-npm-sdk",
"publish-npm-libraries",
"publish-npm-cli",
"tag-docker",
"promote-artifacts",
@ -324,8 +323,7 @@ const PHASE_MAP: Record<Phase, Step[]> = {
"complete-ci": [
"update-version",
"publish-crates",
"publish-npm-cli-shared",
"publish-npm-sdk",
"publish-npm-libraries",
"publish-npm-cli",
"tag-docker",
"promote-artifacts",
@ -604,14 +602,9 @@ async function main() {
await publishCrates(releaseOpts);
}
if (shouldRunStep("publish-npm-cli-shared")) {
console.log("==> Publishing NPM CLI Shared");
await publishNpmCliShared(releaseOpts);
}
if (shouldRunStep("publish-npm-sdk")) {
console.log("==> Publishing NPM SDK");
await publishNpmSdk(releaseOpts);
if (shouldRunStep("publish-npm-libraries")) {
console.log("==> Publishing NPM Libraries");
await publishNpmLibraries(releaseOpts);
}
if (shouldRunStep("publish-npm-cli")) {