diff --git a/.changeset/cli-bundle-dockerfile-utils-src.md b/.changeset/cli-bundle-dockerfile-utils-src.md new file mode 100644 index 0000000000..266dc99a03 --- /dev/null +++ b/.changeset/cli-bundle-dockerfile-utils-src.md @@ -0,0 +1,5 @@ +--- +'@e2b/cli': patch +--- + +Bundle `@e2b/dockerfile-utils` from source so the CLI build no longer races with concurrent workspace package rebuilds during release diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index ae2834dc28..d4cb3637bc 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -18,7 +18,8 @@ "paths": { "src": ["./src/index.ts"], "src/*": ["./src/*"], - "e2b": ["../js-sdk/src"] + "e2b": ["../js-sdk/src"], + "@e2b/dockerfile-utils": ["../dockerfile-utils-js/src"] } }, "exclude": ["dist", "node_modules"] diff --git a/packages/cli/tsdown.config.ts b/packages/cli/tsdown.config.ts index bf4ccffa67..70682681ce 100644 --- a/packages/cli/tsdown.config.ts +++ b/packages/cli/tsdown.config.ts @@ -1,4 +1,5 @@ import { createRequire } from 'node:module' +import { fileURLToPath } from 'node:url' import { defineConfig } from 'tsdown' @@ -21,6 +22,13 @@ export default defineConfig({ dts: false, sourcemap: true, clean: true, + // Bundle from source rather than dist: during a release `changeset publish` + // rebuilds workspace packages concurrently, and their `clean` wipes dist. + alias: { + '@e2b/dockerfile-utils': fileURLToPath( + new URL('../dockerfile-utils-js/src/index.ts', import.meta.url) + ), + }, deps: { // Bundle all runtime dependencies (except those that must stay external) alwaysBundle: Object.keys(packageJSON.dependencies).filter( diff --git a/packages/cli/vitest.config.ts b/packages/cli/vitest.config.ts index d7ea506624..3cff84e768 100644 --- a/packages/cli/vitest.config.ts +++ b/packages/cli/vitest.config.ts @@ -17,6 +17,10 @@ export default defineConfig({ // already resolve to. Without it `e2b` resolves to the workspace package's // `main`, which only exists once the SDK has been built. e2b: path.resolve(__dirname, '../js-sdk/src'), + '@e2b/dockerfile-utils': path.resolve( + __dirname, + '../dockerfile-utils-js/src/index.ts' + ), }, }, })