diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4287389..97c9a11 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: with: node-version: 22.22.0 registry-url: https://registry.npmjs.org - - run: npm install --global npm@11.5.1 + - run: npm install --global npm@11.19.1 - run: bun install --frozen-lockfile - run: bun run verify - run: bun run pack:check:docker diff --git a/README.md b/README.md index 44083a5..d27dcba 100644 --- a/README.md +++ b/README.md @@ -64,9 +64,10 @@ npm install --save-dev @integration-testing/data-isolation@0.1.1 The lifecycle is database-independent: configure a transaction adapter for your database client. -Use Node.js 22.22 or newer and install the client and runner you use. Runner and driver -dependencies stay optional. Core, database adapters, and Jest integration support ESM and -CommonJS; the Vitest integration uses ESM. Before npm publication, use the +Requires Node.js 22.22+. Supports Vitest 4.1.x, Jest 30.x, pg 8.x, and TypeORM 0.3.x. +Install only the runner and database client you use; runner and driver dependencies stay optional. +Core, database adapters, and Jest integration support ESM and CommonJS; the Vitest integration +uses ESM. Before npm publication, use the [local archive instructions](https://github.com/RolandSall/data-integration-testing/blob/main/docs/usage.md#installation). 1. Export a shared context with `createDataIntegrationTestContext(configuration)`. diff --git a/docs/releasing.md b/docs/releasing.md index 80e922e..100f51a 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -79,7 +79,7 @@ After the package exists, add a GitHub Actions trusted publisher in its npm sett The repository's `npm` GitHub environment exists. Its existence alone does not prove that the npm trusted publisher has been configured. The workflow uses GitHub-hosted runners, Node 22.22.0, -npm 11.5.1, and `id-token: write`, matching the +npm 11.19.1, and `id-token: write`, matching the [npm trusted-publishing requirements](https://docs.npmjs.com/trusted-publishers/). Update the version and changelog, pass the release gates, and merge to `main`. Dispatch the diff --git a/packages/data/README.md b/packages/data/README.md index 44083a5..d27dcba 100644 --- a/packages/data/README.md +++ b/packages/data/README.md @@ -64,9 +64,10 @@ npm install --save-dev @integration-testing/data-isolation@0.1.1 The lifecycle is database-independent: configure a transaction adapter for your database client. -Use Node.js 22.22 or newer and install the client and runner you use. Runner and driver -dependencies stay optional. Core, database adapters, and Jest integration support ESM and -CommonJS; the Vitest integration uses ESM. Before npm publication, use the +Requires Node.js 22.22+. Supports Vitest 4.1.x, Jest 30.x, pg 8.x, and TypeORM 0.3.x. +Install only the runner and database client you use; runner and driver dependencies stay optional. +Core, database adapters, and Jest integration support ESM and CommonJS; the Vitest integration +uses ESM. Before npm publication, use the [local archive instructions](https://github.com/RolandSall/data-integration-testing/blob/main/docs/usage.md#installation). 1. Export a shared context with `createDataIntegrationTestContext(configuration)`. diff --git a/scripts/verify-demo.ts b/scripts/verify-demo.ts index da62004..2f17fa9 100644 --- a/scripts/verify-demo.ts +++ b/scripts/verify-demo.ts @@ -9,6 +9,7 @@ const directory = await mkdtemp(join(tmpdir(), 'data-independent-consumer-')); const checkout = join(directory, 'nestjs-inventory'); const sqliteOnly = process.argv.includes('--sqlite'); const published = process.argv.includes('--published'); +const publishedConsumerNpm = 'npm@11.19.1'; async function run(command: string, args: string[], cwd = checkout): Promise { await new Promise((resolveRun, reject) => { const child = spawn(command, args, { cwd, stdio: 'inherit' }); @@ -41,7 +42,19 @@ try { const manifest = JSON.parse(await readFile(manifestPath, 'utf8')) as { devDependencies: Record }; manifest.devDependencies[metadata.name] = packageSpecifier; await writeFile(manifestPath, JSON.stringify(manifest, null, 2) + '\n'); - if (published) await run('npm', ['install', '--registry=https://registry.npmjs.org', '--no-audit', '--no-fund']); + if (published) { + await run('npm', [ + 'exec', + '--yes', + `--package=${publishedConsumerNpm}`, + '--', + 'npm', + 'install', + '--registry=https://registry.npmjs.org', + '--no-audit', + '--no-fund', + ]); + } else await run('bun', ['install', '--network-concurrency', '8']); await run('bun', ['run', 'generate']); await run('bun', ['run', 'typecheck']);