From 09ec54bbcf6736d6c1457294729d07cdd0a1f6bc Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Wed, 27 Aug 2025 22:37:29 +0200 Subject: [PATCH 01/17] chore: add plugin to nx.json --- .../tests/plugin-create-nodes.e2e.test.ts | 2 +- packages/nx-plugin/src/index.ts | 19 ++++++++----------- packages/nx-plugin/src/plugin/index.ts | 10 ++++++++++ packages/nx-plugin/src/plugin/plugin.ts | 5 +++-- project.json | 13 +------------ 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/e2e/nx-plugin-e2e/tests/plugin-create-nodes.e2e.test.ts b/e2e/nx-plugin-e2e/tests/plugin-create-nodes.e2e.test.ts index 7a69a281d..126bee6e2 100644 --- a/e2e/nx-plugin-e2e/tests/plugin-create-nodes.e2e.test.ts +++ b/e2e/nx-plugin-e2e/tests/plugin-create-nodes.e2e.test.ts @@ -229,7 +229,7 @@ describe('nx-plugin', () => { }); it('should consider plugin option projectPrefix in executor target', async () => { - const cwd = path.join(testFileDir, 'configuration-option-bin'); + const cwd = path.join(testFileDir, 'configuration-option-projectPrefix'); registerPluginInWorkspace(tree, { plugin: '@code-pushup/nx-plugin', options: { diff --git a/packages/nx-plugin/src/index.ts b/packages/nx-plugin/src/index.ts index 356be758c..5582aced5 100644 --- a/packages/nx-plugin/src/index.ts +++ b/packages/nx-plugin/src/index.ts @@ -1,15 +1,7 @@ +import type { CreateNodesV2, NxPlugin } from '@nx/devkit'; import { createNodes, createNodesV2 } from './plugin/index.js'; -// default export for nx.json#plugins -const plugin = { - name: '@code-pushup/nx-plugin', - createNodesV2, - // Keep for backwards compatibility with Nx < 21 - createNodes, -}; - -export default plugin; - +export { createNodes, createNodesV2 } from './plugin/index.js'; export type { AutorunCommandExecutorOptions } from './executors/cli/schema.js'; export { objectToCliArgs } from './executors/internal/cli.js'; export { generateCodePushupConfig } from './generators/configuration/code-pushup-config.js'; @@ -22,4 +14,9 @@ export { type ProcessConfig, } from './internal/execute-process.js'; export * from './internal/versions.js'; -export { createNodes, createNodesV2 } from './plugin/index.js'; + +export default { + name: 'code-pushup', + createNodesV2: createNodesV2 as CreateNodesV2, + createNodes, +} satisfies NxPlugin; diff --git a/packages/nx-plugin/src/plugin/index.ts b/packages/nx-plugin/src/plugin/index.ts index 6af7c1076..01e91a2fa 100644 --- a/packages/nx-plugin/src/plugin/index.ts +++ b/packages/nx-plugin/src/plugin/index.ts @@ -1,2 +1,12 @@ +import { NxPlugin } from '@nx/devkit'; +import { createNodesV2 } from './plugin.js'; + export { createNodes, createNodesV2 } from './plugin.js'; export type { CreateNodesOptions } from './types.js'; + +const plugin = { + createNodesV2, + name: 'code-pushup-nx-plugin', +} satisfies NxPlugin; + +export default plugin; diff --git a/packages/nx-plugin/src/plugin/plugin.ts b/packages/nx-plugin/src/plugin/plugin.ts index 1b4e3e2f1..77c4aff94 100644 --- a/packages/nx-plugin/src/plugin/plugin.ts +++ b/packages/nx-plugin/src/plugin/plugin.ts @@ -43,10 +43,11 @@ export const createNodesV2: CreateNodesV2 = [ `**/${PROJECT_JSON_FILE_NAME}`, async ( projectConfigurationFiles: readonly string[], - createNodesOptions: unknown, + createNodesOptions: CreateNodesOptions | undefined, context: CreateNodesContextV2, ): Promise => { - const parsedCreateNodesOptions = createNodesOptions as CreateNodesOptions; + const parsedCreateNodesOptions = + (createNodesOptions as CreateNodesOptions) ?? {}; return await Promise.all( projectConfigurationFiles.map(async projectConfigurationFile => { diff --git a/project.json b/project.json index 1f19a828e..890e19f04 100644 --- a/project.json +++ b/project.json @@ -1,16 +1,5 @@ { "name": "cli-workspace", "$schema": "node_modules/nx/schemas/project-schema.json", - "targets": { - "code-pushup": { - "executor": "nx:run-commands", - "options": { - "command": "node packages/cli/src/index.ts --no-progress --verbose", - "env": { - "NODE_OPTIONS": "--import tsx", - "TSX_TSCONFIG_PATH": "tsconfig.base.json" - } - } - } - } + "targets": {} } From a449ca5a8d833b2f0fb17a24cdf361bdf64ea9f2 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Wed, 27 Aug 2025 22:38:21 +0200 Subject: [PATCH 02/17] chore: add plugin to nx.json plugins --- nx.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nx.json b/nx.json index a472f35ed..c631531ed 100644 --- a/nx.json +++ b/nx.json @@ -150,6 +150,9 @@ "releaseTagPattern": "v{version}" }, "plugins": [ + { + "plugin": "@code-pushup/nx-plugin" + }, { "plugin": "@push-based/nx-verdaccio", "options": { From a2c327857e4ea872a3d8aca1c8289d9bd6f20d10 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Thu, 28 Aug 2025 11:18:37 +0200 Subject: [PATCH 03/17] refactor: test use latest version --- nx.json | 2 +- package-lock.json | 93 ++++++++++++++++++++++++- package.json | 2 + packages/nx-plugin/src/plugin/plugin.ts | 4 +- 4 files changed, 97 insertions(+), 4 deletions(-) diff --git a/nx.json b/nx.json index c631531ed..c2cba8d92 100644 --- a/nx.json +++ b/nx.json @@ -151,7 +151,7 @@ }, "plugins": [ { - "plugin": "@code-pushup/nx-plugin" + "plugin": "node_modules/@code-pushup/nx-plugin" }, { "plugin": "@push-based/nx-verdaccio", diff --git a/package-lock.json b/package-lock.json index a08a34481..8196d8d44 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,9 @@ }, "devDependencies": { "@beaussan/nx-knip": "^0.0.5-15", + "@code-pushup/cli": "^0.77.0", "@code-pushup/eslint-config": "^0.14.2", + "@code-pushup/nx-plugin": "^0.77.0", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@commitlint/config-nx-scopes": "^19.5.0", @@ -2234,6 +2236,47 @@ "url": "https://github.com/sponsors/Borewit" } }, + "node_modules/@code-pushup/cli": { + "version": "0.77.0", + "resolved": "https://registry.npmjs.org/@code-pushup/cli/-/cli-0.77.0.tgz", + "integrity": "sha512-LlRrFMoY/DndC8dGf1oy5j9q4jwG03EYAflLZovi34LgFoJOpaOTTM/1W/ika8zttqgscSnJTcFOt4eYdYdZ3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@code-pushup/core": "0.77.0", + "@code-pushup/models": "0.77.0", + "@code-pushup/utils": "0.77.0", + "ansis": "^3.3.0", + "simple-git": "^3.20.0", + "yargs": "^17.7.2" + }, + "bin": { + "code-pushup": "src/index.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@code-pushup/core": { + "version": "0.77.0", + "resolved": "https://registry.npmjs.org/@code-pushup/core/-/core-0.77.0.tgz", + "integrity": "sha512-MRBP7OfrRlSK5eVxZVtxnzPeskR/6jvpZd63vJ7sEncowwi0kam2VKcGn77XS7dolku0QEX88hoefOyfVIomqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@code-pushup/models": "0.77.0", + "@code-pushup/utils": "0.77.0", + "ansis": "^3.3.0" + }, + "peerDependencies": { + "@code-pushup/portal-client": "^0.15.0" + }, + "peerDependenciesMeta": { + "@code-pushup/portal-client": { + "optional": true + } + } + }, "node_modules/@code-pushup/eslint-config": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/@code-pushup/eslint-config/-/eslint-config-0.14.2.tgz", @@ -2318,6 +2361,32 @@ } } }, + "node_modules/@code-pushup/models": { + "version": "0.77.0", + "resolved": "https://registry.npmjs.org/@code-pushup/models/-/models-0.77.0.tgz", + "integrity": "sha512-fK1TvpBElaXHrz5SMf3T+SmlebmRMAf67hfdOnb9NO3pEoQW9r3v2EQ5i56J9iwIBQpoUNXiB0no87xue+YXpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-material-icons": "^0.1.0", + "zod": "^4.0.5" + } + }, + "node_modules/@code-pushup/nx-plugin": { + "version": "0.77.0", + "resolved": "https://registry.npmjs.org/@code-pushup/nx-plugin/-/nx-plugin-0.77.0.tgz", + "integrity": "sha512-AySOAbDZXwBnjRbA5ZdBNLT1I5Ey8c5anrC2gDw5dAK66jACDtn1YEFR2JkG4n+/9Wn8YT8HissbFFIlEFWsMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@code-pushup/models": "0.77.0", + "@code-pushup/utils": "0.77.0", + "@nx/devkit": ">=17.0.0", + "ansis": "^3.3.0", + "nx": ">=17.0.0", + "zod": "^4.0.5" + } + }, "node_modules/@code-pushup/portal-client": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/@code-pushup/portal-client/-/portal-client-0.15.0.tgz", @@ -2330,6 +2399,29 @@ "vscode-material-icons": "^0.1.0" } }, + "node_modules/@code-pushup/utils": { + "version": "0.77.0", + "resolved": "https://registry.npmjs.org/@code-pushup/utils/-/utils-0.77.0.tgz", + "integrity": "sha512-wveTiqBoPQs1kUP5msJ+vq3TB3jUOBR1FhSMxSsMo/0KX605oZA3Rx2s9OSmtvMoi7FzChH3mZKNW3MGBnIEZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@code-pushup/models": "0.77.0", + "@isaacs/cliui": "^8.0.2", + "@poppinss/cliui": "^6.4.0", + "ansis": "^3.3.0", + "build-md": "^0.4.2", + "bundle-require": "^5.1.0", + "esbuild": "^0.25.2", + "multi-progress-bars": "^5.0.3", + "semver": "^7.6.0", + "simple-git": "^3.20.0", + "zod": "^4.0.5" + }, + "engines": { + "node": ">=17.0.0" + } + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -8193,7 +8285,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" diff --git a/package.json b/package.json index e1f97c332..867832fe3 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,9 @@ }, "devDependencies": { "@beaussan/nx-knip": "^0.0.5-15", + "@code-pushup/cli": "^0.77.0", "@code-pushup/eslint-config": "^0.14.2", + "@code-pushup/nx-plugin": "^0.77.0", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@commitlint/config-nx-scopes": "^19.5.0", diff --git a/packages/nx-plugin/src/plugin/plugin.ts b/packages/nx-plugin/src/plugin/plugin.ts index 77c4aff94..489468558 100644 --- a/packages/nx-plugin/src/plugin/plugin.ts +++ b/packages/nx-plugin/src/plugin/plugin.ts @@ -39,11 +39,11 @@ export const createNodes: CreateNodes = [ }, ]; -export const createNodesV2: CreateNodesV2 = [ +export const createNodesV2: CreateNodesV2 = [ `**/${PROJECT_JSON_FILE_NAME}`, async ( projectConfigurationFiles: readonly string[], - createNodesOptions: CreateNodesOptions | undefined, + createNodesOptions: unknown, context: CreateNodesContextV2, ): Promise => { const parsedCreateNodesOptions = From 5ec4034484a760e7464c4355c9c4b52f6ff1e3d7 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Thu, 28 Aug 2025 11:23:51 +0200 Subject: [PATCH 04/17] refactor: test use latest version 2 --- nx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx.json b/nx.json index c2cba8d92..c631531ed 100644 --- a/nx.json +++ b/nx.json @@ -151,7 +151,7 @@ }, "plugins": [ { - "plugin": "node_modules/@code-pushup/nx-plugin" + "plugin": "@code-pushup/nx-plugin" }, { "plugin": "@push-based/nx-verdaccio", From 93e20e8453b965027585c19948d9940ce7aab2aa Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Mon, 1 Sep 2025 21:15:07 +0200 Subject: [PATCH 05/17] refactor: fix lint --- nx.json | 2 +- packages/nx-plugin/src/plugin/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nx.json b/nx.json index b97bdc630..0bdaac10e 100644 --- a/nx.json +++ b/nx.json @@ -336,7 +336,7 @@ }, "plugins": [ { - "plugin": "@code-pushup/nx-plugin" + "plugin": "node_modules/@code-pushup/nx-plugin/src/index.js" }, { "plugin": "@push-based/nx-verdaccio", diff --git a/packages/nx-plugin/src/plugin/index.ts b/packages/nx-plugin/src/plugin/index.ts index 01e91a2fa..4f21f2a12 100644 --- a/packages/nx-plugin/src/plugin/index.ts +++ b/packages/nx-plugin/src/plugin/index.ts @@ -1,4 +1,4 @@ -import { NxPlugin } from '@nx/devkit'; +import type { NxPlugin } from '@nx/devkit'; import { createNodesV2 } from './plugin.js'; export { createNodes, createNodesV2 } from './plugin.js'; From 3cb3a8d924ecfb6fcae3e53d37ff72c467e5f9b2 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Mon, 1 Sep 2025 21:19:45 +0200 Subject: [PATCH 06/17] refactor: wip --- nx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx.json b/nx.json index 0bdaac10e..b97bdc630 100644 --- a/nx.json +++ b/nx.json @@ -336,7 +336,7 @@ }, "plugins": [ { - "plugin": "node_modules/@code-pushup/nx-plugin/src/index.js" + "plugin": "@code-pushup/nx-plugin" }, { "plugin": "@push-based/nx-verdaccio", From 00e6fae16285ee06a6229381776507c8b73acaa4 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Mon, 1 Sep 2025 21:51:28 +0200 Subject: [PATCH 07/17] refactor: wip 2 --- code-pushup.config.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code-pushup.config.ts b/code-pushup.config.ts index 4ea96774f..0f0f669fa 100644 --- a/code-pushup.config.ts +++ b/code-pushup.config.ts @@ -20,6 +20,9 @@ const config: CoreConfig = { server: 'https://api.staging.code-pushup.dev/graphql', apiKey: process.env['CP_API_KEY'], }, + persist: { + outputDir: '.code-pushup', + }, }), plugins: [], }; From 99d988ad4f8bb98040788ca7011b87d1d8ee852f Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Wed, 3 Sep 2025 00:56:29 +0200 Subject: [PATCH 08/17] refactor: update packages --- package-lock.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package-lock.json b/package-lock.json index 60304216a..820e3538f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8285,6 +8285,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "win32" From 0e66ac87cbbb1fdd4e0532fedd875f9179507c43 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Wed, 3 Sep 2025 15:45:15 +0200 Subject: [PATCH 09/17] chore: update packages --- package-lock.json | 50 +++++++++++++++++++++++------------------------ package.json | 4 ++-- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 820e3538f..e5940de2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,9 +37,9 @@ }, "devDependencies": { "@beaussan/nx-knip": "^0.0.5-15", - "@code-pushup/cli": "^0.77.0", + "@code-pushup/cli": "^0.78.0", "@code-pushup/eslint-config": "^0.14.2", - "@code-pushup/nx-plugin": "^0.77.0", + "@code-pushup/nx-plugin": "^0.78.0", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@commitlint/config-nx-scopes": "^19.5.0", @@ -2237,15 +2237,15 @@ } }, "node_modules/@code-pushup/cli": { - "version": "0.77.0", - "resolved": "https://registry.npmjs.org/@code-pushup/cli/-/cli-0.77.0.tgz", - "integrity": "sha512-LlRrFMoY/DndC8dGf1oy5j9q4jwG03EYAflLZovi34LgFoJOpaOTTM/1W/ika8zttqgscSnJTcFOt4eYdYdZ3w==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@code-pushup/cli/-/cli-0.78.0.tgz", + "integrity": "sha512-S7AL3QJUpCSuPYv4Sab14pFP7RQECA8carKnYgixSQtep7+6rTfWt8d0DQXAAAwi2KiJpzCloBt6pXeAnBkA/w==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/core": "0.77.0", - "@code-pushup/models": "0.77.0", - "@code-pushup/utils": "0.77.0", + "@code-pushup/core": "0.78.0", + "@code-pushup/models": "0.78.0", + "@code-pushup/utils": "0.78.0", "ansis": "^3.3.0", "simple-git": "^3.20.0", "yargs": "^17.7.2" @@ -2258,14 +2258,14 @@ } }, "node_modules/@code-pushup/core": { - "version": "0.77.0", - "resolved": "https://registry.npmjs.org/@code-pushup/core/-/core-0.77.0.tgz", - "integrity": "sha512-MRBP7OfrRlSK5eVxZVtxnzPeskR/6jvpZd63vJ7sEncowwi0kam2VKcGn77XS7dolku0QEX88hoefOyfVIomqw==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@code-pushup/core/-/core-0.78.0.tgz", + "integrity": "sha512-iuz41y2cx1QaIcI9c9X+qTDxsCGtAGcexieIaX8OX2ldPgKBpf37yrxboBKGe+ekdLZA/KtIDaqTIK3FdRFauA==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "0.77.0", - "@code-pushup/utils": "0.77.0", + "@code-pushup/models": "0.78.0", + "@code-pushup/utils": "0.78.0", "ansis": "^3.3.0" }, "peerDependencies": { @@ -2362,9 +2362,9 @@ } }, "node_modules/@code-pushup/models": { - "version": "0.77.0", - "resolved": "https://registry.npmjs.org/@code-pushup/models/-/models-0.77.0.tgz", - "integrity": "sha512-fK1TvpBElaXHrz5SMf3T+SmlebmRMAf67hfdOnb9NO3pEoQW9r3v2EQ5i56J9iwIBQpoUNXiB0no87xue+YXpQ==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@code-pushup/models/-/models-0.78.0.tgz", + "integrity": "sha512-6h4Ix2q0IENz1fDrPcoMZnqPd+Mo2iyOBvKoZRW0HhCISE5qb+t675E3GisPc9XOjlNBliW81b2gMm3oQXihsA==", "dev": true, "license": "MIT", "dependencies": { @@ -2373,14 +2373,14 @@ } }, "node_modules/@code-pushup/nx-plugin": { - "version": "0.77.0", - "resolved": "https://registry.npmjs.org/@code-pushup/nx-plugin/-/nx-plugin-0.77.0.tgz", - "integrity": "sha512-AySOAbDZXwBnjRbA5ZdBNLT1I5Ey8c5anrC2gDw5dAK66jACDtn1YEFR2JkG4n+/9Wn8YT8HissbFFIlEFWsMA==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@code-pushup/nx-plugin/-/nx-plugin-0.78.0.tgz", + "integrity": "sha512-9399JJIfWH2Yv4x5V4Ea7v2AqqqchNV90jFiW27P8ja+rsNadd+OCPtFqkp9HNSVfOBZhdV/QuaI7yxNg8Guwg==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "0.77.0", - "@code-pushup/utils": "0.77.0", + "@code-pushup/models": "0.78.0", + "@code-pushup/utils": "0.78.0", "@nx/devkit": ">=17.0.0", "ansis": "^3.3.0", "nx": ">=17.0.0", @@ -2400,13 +2400,13 @@ } }, "node_modules/@code-pushup/utils": { - "version": "0.77.0", - "resolved": "https://registry.npmjs.org/@code-pushup/utils/-/utils-0.77.0.tgz", - "integrity": "sha512-wveTiqBoPQs1kUP5msJ+vq3TB3jUOBR1FhSMxSsMo/0KX605oZA3Rx2s9OSmtvMoi7FzChH3mZKNW3MGBnIEZw==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@code-pushup/utils/-/utils-0.78.0.tgz", + "integrity": "sha512-1Jy3Eep/d/GpSa+ok8GMzBCCmKqKBjGQZLBfP3BWwza3q8rn3h/NS/XUuwv//rqIwa23olqV0ygL6preeU5iqQ==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "0.77.0", + "@code-pushup/models": "0.78.0", "@isaacs/cliui": "^8.0.2", "@poppinss/cliui": "^6.4.0", "ansis": "^3.3.0", diff --git a/package.json b/package.json index ca58b7109..a6cc3c7d7 100644 --- a/package.json +++ b/package.json @@ -50,9 +50,9 @@ }, "devDependencies": { "@beaussan/nx-knip": "^0.0.5-15", - "@code-pushup/cli": "^0.77.0", + "@code-pushup/cli": "^0.78.0", "@code-pushup/eslint-config": "^0.14.2", - "@code-pushup/nx-plugin": "^0.77.0", + "@code-pushup/nx-plugin": "^0.78.0", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@commitlint/config-nx-scopes": "^19.5.0", From f402ecbb99d1766e1dff241aa51e35d59c5ed9bd Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Wed, 3 Sep 2025 17:51:57 +0200 Subject: [PATCH 10/17] refactor: use process.stdout.write --- packages/nx-plugin/src/executors/internal/cli.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nx-plugin/src/executors/internal/cli.ts b/packages/nx-plugin/src/executors/internal/cli.ts index bab74a8f1..330c67fa5 100644 --- a/packages/nx-plugin/src/executors/internal/cli.ts +++ b/packages/nx-plugin/src/executors/internal/cli.ts @@ -26,7 +26,7 @@ export function createCliCommandObject(options?: { logger.error(error.message); }, onStdout: data => { - logger.log(data); + process.stdout.write(data); }, }, }; From 41bce2b150f48c4ba805341b75b459222738e862 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Wed, 3 Sep 2025 18:12:09 +0200 Subject: [PATCH 11/17] refactor: test pkg new --- package-lock.json | 20 ++++++++++---------- package.json | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5940de2e..42b172225 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,7 @@ "@beaussan/nx-knip": "^0.0.5-15", "@code-pushup/cli": "^0.78.0", "@code-pushup/eslint-config": "^0.14.2", - "@code-pushup/nx-plugin": "^0.78.0", + "@code-pushup/nx-plugin": "https://pkg.pr.new/code-pushup/cli/@code-pushup/nx-plugin@1091", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@commitlint/config-nx-scopes": "^19.5.0", @@ -2363,8 +2363,8 @@ }, "node_modules/@code-pushup/models": { "version": "0.78.0", - "resolved": "https://registry.npmjs.org/@code-pushup/models/-/models-0.78.0.tgz", - "integrity": "sha512-6h4Ix2q0IENz1fDrPcoMZnqPd+Mo2iyOBvKoZRW0HhCISE5qb+t675E3GisPc9XOjlNBliW81b2gMm3oQXihsA==", + "resolved": "https://pkg.pr.new/code-pushup/cli/@code-pushup/models@f402ecbb99d1766e1dff241aa51e35d59c5ed9bd", + "integrity": "sha512-d5CgMFyRfwQV59ORFZk0LALbWinviisAK+yiyneYRLYIlodlfpLOCEu4vN0dJAXKydJKDREz/4w2YVi2eL+SIA==", "dev": true, "license": "MIT", "dependencies": { @@ -2374,13 +2374,13 @@ }, "node_modules/@code-pushup/nx-plugin": { "version": "0.78.0", - "resolved": "https://registry.npmjs.org/@code-pushup/nx-plugin/-/nx-plugin-0.78.0.tgz", - "integrity": "sha512-9399JJIfWH2Yv4x5V4Ea7v2AqqqchNV90jFiW27P8ja+rsNadd+OCPtFqkp9HNSVfOBZhdV/QuaI7yxNg8Guwg==", + "resolved": "https://pkg.pr.new/code-pushup/cli/@code-pushup/nx-plugin@1091", + "integrity": "sha512-eqddemcqQYSreDAYrsPgCmqDK5Dsj6XWtPwgHe1VU1kwzA84kYdsgO4RvMgE+43YNOisZl1A8uovFj9A7dybzA==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "0.78.0", - "@code-pushup/utils": "0.78.0", + "@code-pushup/models": "https://pkg.pr.new/code-pushup/cli/@code-pushup/models@f402ecbb99d1766e1dff241aa51e35d59c5ed9bd", + "@code-pushup/utils": "https://pkg.pr.new/code-pushup/cli/@code-pushup/utils@f402ecbb99d1766e1dff241aa51e35d59c5ed9bd", "@nx/devkit": ">=17.0.0", "ansis": "^3.3.0", "nx": ">=17.0.0", @@ -2401,12 +2401,12 @@ }, "node_modules/@code-pushup/utils": { "version": "0.78.0", - "resolved": "https://registry.npmjs.org/@code-pushup/utils/-/utils-0.78.0.tgz", - "integrity": "sha512-1Jy3Eep/d/GpSa+ok8GMzBCCmKqKBjGQZLBfP3BWwza3q8rn3h/NS/XUuwv//rqIwa23olqV0ygL6preeU5iqQ==", + "resolved": "https://pkg.pr.new/code-pushup/cli/@code-pushup/utils@f402ecbb99d1766e1dff241aa51e35d59c5ed9bd", + "integrity": "sha512-hiwRu+svgBpcslnr1IGq8ix+uxBfJeE4DhoBl4E0nbBRkp9FTmlZtQrqZezXlrvQI87SagfRsnlSY+A8aYcgjw==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "0.78.0", + "@code-pushup/models": "https://pkg.pr.new/code-pushup/cli/@code-pushup/models@f402ecbb99d1766e1dff241aa51e35d59c5ed9bd", "@isaacs/cliui": "^8.0.2", "@poppinss/cliui": "^6.4.0", "ansis": "^3.3.0", diff --git a/package.json b/package.json index a6cc3c7d7..9c89e4d21 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@beaussan/nx-knip": "^0.0.5-15", "@code-pushup/cli": "^0.78.0", "@code-pushup/eslint-config": "^0.14.2", - "@code-pushup/nx-plugin": "^0.78.0", + "@code-pushup/nx-plugin": "https://pkg.pr.new/code-pushup/cli/@code-pushup/nx-plugin@1091", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@commitlint/config-nx-scopes": "^19.5.0", From 59a3f833515a1dc15b63c26fbc94311d80e3a699 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Wed, 3 Sep 2025 18:57:47 +0200 Subject: [PATCH 12/17] refactor: add output arg handling to nx-plugin args --- .../nx-plugin/src/executors/cli/schema.json | 4 +++ .../nx-plugin/src/executors/cli/schema.ts | 4 ++- packages/nx-plugin/src/executors/cli/utils.ts | 3 ++- .../src/executors/cli/utils.unit.test.ts | 27 +++++++++++++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/packages/nx-plugin/src/executors/cli/schema.json b/packages/nx-plugin/src/executors/cli/schema.json index e494c4cc0..3e64e0c3f 100644 --- a/packages/nx-plugin/src/executors/cli/schema.json +++ b/packages/nx-plugin/src/executors/cli/schema.json @@ -44,6 +44,10 @@ "type": "string", "description": "Prefix for project name" }, + "output": { + "type": "string", + "description": "Config output path" + }, "persist": { "type": "object", "properties": { diff --git a/packages/nx-plugin/src/executors/cli/schema.ts b/packages/nx-plugin/src/executors/cli/schema.ts index d73a394b6..1fa8b8769 100644 --- a/packages/nx-plugin/src/executors/cli/schema.ts +++ b/packages/nx-plugin/src/executors/cli/schema.ts @@ -6,6 +6,7 @@ import type { ProjectExecutorOnlyOptions, } from '../internal/types.js'; +export type PrintConfigOptions = { output?: string }; export type AutorunCommandExecutorOnlyOptions = ProjectExecutorOnlyOptions & CollectExecutorOnlyOptions & GeneralExecutorOnlyOptions; @@ -16,4 +17,5 @@ export type AutorunCommandExecutorOptions = Partial< persist: Partial; } & AutorunCommandExecutorOnlyOptions & GlobalExecutorOptions ->; +> & + PrintConfigOptions; diff --git a/packages/nx-plugin/src/executors/cli/utils.ts b/packages/nx-plugin/src/executors/cli/utils.ts index afcca4542..cc154d9d3 100644 --- a/packages/nx-plugin/src/executors/cli/utils.ts +++ b/packages/nx-plugin/src/executors/cli/utils.ts @@ -24,7 +24,7 @@ export function parseAutorunExecutorOptions( options: Partial, normalizedContext: NormalizedExecutorContext, ): AutorunCommandExecutorOptions { - const { projectPrefix, persist, upload, command } = options; + const { projectPrefix, persist, upload, command, output } = options; const needsUploadParams = command === 'upload' || command === 'autorun' || command === undefined; const uploadCfg = uploadConfig( @@ -35,6 +35,7 @@ export function parseAutorunExecutorOptions( return { ...parseAutorunExecutorOnlyOptions(options), ...globalConfig(options, normalizedContext), + ...(output ? { output } : {}), persist: persistConfig({ projectPrefix, ...persist }, normalizedContext), // @TODO This is a hack to avoid validation errors of upload config for commands that dont need it. // Fix: use utils and execute the core logic directly diff --git a/packages/nx-plugin/src/executors/cli/utils.unit.test.ts b/packages/nx-plugin/src/executors/cli/utils.unit.test.ts index 7a4141eff..dd0dd6235 100644 --- a/packages/nx-plugin/src/executors/cli/utils.unit.test.ts +++ b/packages/nx-plugin/src/executors/cli/utils.unit.test.ts @@ -153,6 +153,33 @@ describe('parseAutorunExecutorOptions', () => { ); }, ); + + it.each(['print-config'])( + 'should include output config for command %s', + command => { + const projectName = 'my-app'; + const executorOptions = parseAutorunExecutorOptions( + { + command, + output: 'code-pushup.config.json', + }, + { + projectName, + workspaceRoot: 'workspaceRoot', + projectConfig: { + name: 'my-app', + root: 'root', + }, + }, + ); + + expect(executorOptions).toEqual( + expect.objectContaining({ + output: 'code-pushup.config.json', + }), + ); + }, + ); }); describe('mergeExecutorOptions', () => { From 06c94d964b69c765cc61ff51d4aa3ca216b893bc Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Thu, 4 Sep 2025 16:08:05 +0200 Subject: [PATCH 13/17] docs: add release steps --- CONTRIBUTING.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e8c8e23a5..e85042746 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -83,6 +83,20 @@ Therefore, PRs are merged via one of two strategies: - rebase - branch cannot contain merge commits ([rebase instead of merge](https://www.atlassian.com/git/tutorials/merging-vs-rebasing)), - squash - single commit whose message is the PR title (should be in conventional commit format). +## Releases + +We use nx release command to create releases for GitHub as well as publish to npm. + +**Steps:** + +- `git checkout main`, `git pull` +- (recommended optional) `npx nx release --dryRun` +- `npx nx release` and confirm publish prompt + +**Env variable in `.env`:** + +- `GITHUB_TOKEN=ghp_...` - to create a GitHub Release + ## Project tags [Nx tags](https://nx.dev/core-features/enforce-module-boundaries) are used to enforce module boundaries in the project graph when linting. From e7da7ef217f84ab0ff825f7980a107b55600dd31 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Thu, 4 Sep 2025 16:22:38 +0200 Subject: [PATCH 14/17] chore: update packages --- package-lock.json | 74 +++++++++++++++++++++++++++-------------------- package.json | 6 ++-- 2 files changed, 45 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 98a627c23..d8ae904b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,6 @@ "version": "0.0.0", "license": "MIT", "dependencies": { - "@code-pushup/portal-client": "^0.16.0", "@isaacs/cliui": "^8.0.2", "@nx/devkit": "21.4.1", "@poppinss/cliui": "6.4.1", @@ -37,9 +36,10 @@ }, "devDependencies": { "@beaussan/nx-knip": "^0.0.5-15", - "@code-pushup/cli": "^0.78.0", + "@code-pushup/cli": "^0.79.0", "@code-pushup/eslint-config": "^0.14.2", - "@code-pushup/nx-plugin": "https://pkg.pr.new/code-pushup/cli/@code-pushup/nx-plugin@1091", + "@code-pushup/nx-plugin": "^0.79.0", + "@code-pushup/portal-client": "^0.16.0", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@commitlint/config-nx-scopes": "^19.5.0", @@ -2237,15 +2237,15 @@ } }, "node_modules/@code-pushup/cli": { - "version": "0.78.0", - "resolved": "https://registry.npmjs.org/@code-pushup/cli/-/cli-0.78.0.tgz", - "integrity": "sha512-S7AL3QJUpCSuPYv4Sab14pFP7RQECA8carKnYgixSQtep7+6rTfWt8d0DQXAAAwi2KiJpzCloBt6pXeAnBkA/w==", + "version": "0.79.0", + "resolved": "https://registry.npmjs.org/@code-pushup/cli/-/cli-0.79.0.tgz", + "integrity": "sha512-5CSB3w8kRFr58fW/JwnLQzi0jRSzLfSVvYygGrEbJOPdoOgVEt09wS7A1kzpEBtCLYvCUJmYTSEKA/EF74rI3Q==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/core": "0.78.0", - "@code-pushup/models": "0.78.0", - "@code-pushup/utils": "0.78.0", + "@code-pushup/core": "0.79.0", + "@code-pushup/models": "0.79.0", + "@code-pushup/utils": "0.79.0", "ansis": "^3.3.0", "simple-git": "^3.20.0", "yargs": "^17.7.2" @@ -2258,18 +2258,18 @@ } }, "node_modules/@code-pushup/core": { - "version": "0.78.0", - "resolved": "https://registry.npmjs.org/@code-pushup/core/-/core-0.78.0.tgz", - "integrity": "sha512-iuz41y2cx1QaIcI9c9X+qTDxsCGtAGcexieIaX8OX2ldPgKBpf37yrxboBKGe+ekdLZA/KtIDaqTIK3FdRFauA==", + "version": "0.79.0", + "resolved": "https://registry.npmjs.org/@code-pushup/core/-/core-0.79.0.tgz", + "integrity": "sha512-dX/zxec84/nGo10OODmHNElaCUm5cSM3jIiCCnkNYOcdO/Bk2clJVBZdwb2HaJiTfodKPqUiX9qRneIX4PJ3FA==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "0.78.0", - "@code-pushup/utils": "0.78.0", + "@code-pushup/models": "0.79.0", + "@code-pushup/utils": "0.79.0", "ansis": "^3.3.0" }, "peerDependencies": { - "@code-pushup/portal-client": "^0.15.0" + "@code-pushup/portal-client": "^0.16.0" }, "peerDependenciesMeta": { "@code-pushup/portal-client": { @@ -2362,9 +2362,9 @@ } }, "node_modules/@code-pushup/models": { - "version": "0.78.0", - "resolved": "https://pkg.pr.new/code-pushup/cli/@code-pushup/models@f402ecbb99d1766e1dff241aa51e35d59c5ed9bd", - "integrity": "sha512-d5CgMFyRfwQV59ORFZk0LALbWinviisAK+yiyneYRLYIlodlfpLOCEu4vN0dJAXKydJKDREz/4w2YVi2eL+SIA==", + "version": "0.79.0", + "resolved": "https://registry.npmjs.org/@code-pushup/models/-/models-0.79.0.tgz", + "integrity": "sha512-0DTca8Eak+jybXLtBDvDDxz+LFsrq1g41daDzAKM6gF+/Vk4elPmHcGNhaMec25L/gowOPXgI9JGJfHqTPZtmg==", "dev": true, "license": "MIT", "dependencies": { @@ -2373,14 +2373,14 @@ } }, "node_modules/@code-pushup/nx-plugin": { - "version": "0.78.0", - "resolved": "https://pkg.pr.new/code-pushup/cli/@code-pushup/nx-plugin@1091", - "integrity": "sha512-eqddemcqQYSreDAYrsPgCmqDK5Dsj6XWtPwgHe1VU1kwzA84kYdsgO4RvMgE+43YNOisZl1A8uovFj9A7dybzA==", + "version": "0.79.0", + "resolved": "https://registry.npmjs.org/@code-pushup/nx-plugin/-/nx-plugin-0.79.0.tgz", + "integrity": "sha512-QqmkeUWOVpuYDGknm7QSxKo6iIsxALmvHYMmIoMbvS9LIxUitW0hjBD6OWzMUhHlxlg6zQQHuMu4G51fY2AtGg==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "https://pkg.pr.new/code-pushup/cli/@code-pushup/models@f402ecbb99d1766e1dff241aa51e35d59c5ed9bd", - "@code-pushup/utils": "https://pkg.pr.new/code-pushup/cli/@code-pushup/utils@f402ecbb99d1766e1dff241aa51e35d59c5ed9bd", + "@code-pushup/models": "0.79.0", + "@code-pushup/utils": "0.79.0", "@nx/devkit": ">=17.0.0", "ansis": "^3.3.0", "nx": ">=17.0.0", @@ -2391,6 +2391,7 @@ "version": "0.16.0", "resolved": "https://registry.npmjs.org/@code-pushup/portal-client/-/portal-client-0.16.0.tgz", "integrity": "sha512-JlMRcTKkJygVfLS+IWQxDRDnvF64p4q+QDLIXzQPep6X99C1OH3MnA9jbfGAOew/3xqOILCrifn0y54fyRs8Qg==", + "dev": true, "license": "MIT", "dependencies": { "graphql": "^16.6.0", @@ -2400,13 +2401,13 @@ } }, "node_modules/@code-pushup/utils": { - "version": "0.78.0", - "resolved": "https://pkg.pr.new/code-pushup/cli/@code-pushup/utils@f402ecbb99d1766e1dff241aa51e35d59c5ed9bd", - "integrity": "sha512-hiwRu+svgBpcslnr1IGq8ix+uxBfJeE4DhoBl4E0nbBRkp9FTmlZtQrqZezXlrvQI87SagfRsnlSY+A8aYcgjw==", + "version": "0.79.0", + "resolved": "https://registry.npmjs.org/@code-pushup/utils/-/utils-0.79.0.tgz", + "integrity": "sha512-7QXkdszu+DftpLQcK6H3Gnad/vn3odkz8TMMf8cBCgENMVb6KpJCtiahs10uxFqvINwxXYqIZVktylZAuUnxdg==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "https://pkg.pr.new/code-pushup/cli/@code-pushup/models@f402ecbb99d1766e1dff241aa51e35d59c5ed9bd", + "@code-pushup/models": "0.79.0", "@isaacs/cliui": "^8.0.2", "@poppinss/cliui": "^6.4.0", "ansis": "^3.3.0", @@ -3356,6 +3357,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "dev": true, "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } @@ -14086,6 +14088,7 @@ "version": "3.1.8", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dev": true, "dependencies": { "node-fetch": "^2.6.12" } @@ -15068,7 +15071,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "iconv-lite": "^0.6.2" @@ -15078,7 +15081,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -18138,6 +18141,7 @@ "version": "16.9.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "dev": true, "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -18146,6 +18150,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", + "dev": true, "dependencies": { "@graphql-typed-document-node/core": "^3.2.0", "cross-fetch": "^3.1.5" @@ -18158,6 +18163,7 @@ "version": "2.12.6", "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dev": true, "dependencies": { "tslib": "^2.1.0" }, @@ -23443,6 +23449,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -23461,17 +23468,20 @@ "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -27125,7 +27135,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true + "dev": true }, "node_modules/saxes": { "version": "6.0.0", diff --git a/package.json b/package.json index ddd5ecfd6..2fc790a24 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ "node": ">=22.14" }, "dependencies": { - "@code-pushup/portal-client": "^0.16.0", "@isaacs/cliui": "^8.0.2", "@nx/devkit": "21.4.1", "@poppinss/cliui": "6.4.1", @@ -49,10 +48,11 @@ "zod": "^4.0.5" }, "devDependencies": { + "@code-pushup/portal-client": "^0.16.0", "@beaussan/nx-knip": "^0.0.5-15", - "@code-pushup/cli": "^0.78.0", + "@code-pushup/cli": "^0.79.0", "@code-pushup/eslint-config": "^0.14.2", - "@code-pushup/nx-plugin": "https://pkg.pr.new/code-pushup/cli/@code-pushup/nx-plugin@1091", + "@code-pushup/nx-plugin": "^0.79.0", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@commitlint/config-nx-scopes": "^19.5.0", From 8f69a5ebb6745a9b81b192daebcd0c80d83f2ec0 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Thu, 4 Sep 2025 16:27:57 +0200 Subject: [PATCH 15/17] docs: update release section --- CONTRIBUTING.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e85042746..b25c3f7c8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -87,6 +87,10 @@ Therefore, PRs are merged via one of two strategies: We use nx release command to create releases for GitHub as well as publish to npm. +**Preconditions:** + +- `npm login` - Only users with write access to [code-pushup](https://www.npmjs.com/org/code-pushup) can publish + **Steps:** - `git checkout main`, `git pull` From 8dced0b692f2683f6d50641efc38dc04bac2ce58 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Thu, 4 Sep 2025 16:53:18 +0200 Subject: [PATCH 16/17] docs: update release section --- CONTRIBUTING.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b25c3f7c8..060d789d4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -90,6 +90,7 @@ We use nx release command to create releases for GitHub as well as publish to np **Preconditions:** - `npm login` - Only users with write access to [code-pushup](https://www.npmjs.com/org/code-pushup) can publish +- (optional) `GITHUB_TOKEN=ghp_...` in `.env` - [Personal access token](https://github.com/settings/personal-access-tokens/new) to create a GitHub release. **Steps:** @@ -97,10 +98,6 @@ We use nx release command to create releases for GitHub as well as publish to np - (recommended optional) `npx nx release --dryRun` - `npx nx release` and confirm publish prompt -**Env variable in `.env`:** - -- `GITHUB_TOKEN=ghp_...` - to create a GitHub Release - ## Project tags [Nx tags](https://nx.dev/core-features/enforce-module-boundaries) are used to enforce module boundaries in the project graph when linting. From 0049a643957e1c10061757504040cae1f3cba13a Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Thu, 4 Sep 2025 17:35:35 +0200 Subject: [PATCH 17/17] chore: update packags --- package-lock.json | 50 +++++++++++++++++++++++------------------------ package.json | 4 ++-- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index d8ae904b4..875e34af7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,9 +36,9 @@ }, "devDependencies": { "@beaussan/nx-knip": "^0.0.5-15", - "@code-pushup/cli": "^0.79.0", + "@code-pushup/cli": "^0.79.1", "@code-pushup/eslint-config": "^0.14.2", - "@code-pushup/nx-plugin": "^0.79.0", + "@code-pushup/nx-plugin": "^0.79.1", "@code-pushup/portal-client": "^0.16.0", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", @@ -2237,15 +2237,15 @@ } }, "node_modules/@code-pushup/cli": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/@code-pushup/cli/-/cli-0.79.0.tgz", - "integrity": "sha512-5CSB3w8kRFr58fW/JwnLQzi0jRSzLfSVvYygGrEbJOPdoOgVEt09wS7A1kzpEBtCLYvCUJmYTSEKA/EF74rI3Q==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@code-pushup/cli/-/cli-0.79.1.tgz", + "integrity": "sha512-rV5IjoAlcV86sFby2t/9mi7Vkwn/CiqA+wPvnQeoWLjPJBDVOuDl9HA1dwUcaynYZjQPB9IpBpThP7tMfBE/vw==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/core": "0.79.0", - "@code-pushup/models": "0.79.0", - "@code-pushup/utils": "0.79.0", + "@code-pushup/core": "0.79.1", + "@code-pushup/models": "0.79.1", + "@code-pushup/utils": "0.79.1", "ansis": "^3.3.0", "simple-git": "^3.20.0", "yargs": "^17.7.2" @@ -2258,14 +2258,14 @@ } }, "node_modules/@code-pushup/core": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/@code-pushup/core/-/core-0.79.0.tgz", - "integrity": "sha512-dX/zxec84/nGo10OODmHNElaCUm5cSM3jIiCCnkNYOcdO/Bk2clJVBZdwb2HaJiTfodKPqUiX9qRneIX4PJ3FA==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@code-pushup/core/-/core-0.79.1.tgz", + "integrity": "sha512-RNA8uQ0pFiaH5OFzo3fz4U+rdBdF3EuLkCkoQ3nWY8Q+n9BzLRyiH827+uOUR9dBC22gbvZ1hDK22JeQbUUcrw==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "0.79.0", - "@code-pushup/utils": "0.79.0", + "@code-pushup/models": "0.79.1", + "@code-pushup/utils": "0.79.1", "ansis": "^3.3.0" }, "peerDependencies": { @@ -2362,9 +2362,9 @@ } }, "node_modules/@code-pushup/models": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/@code-pushup/models/-/models-0.79.0.tgz", - "integrity": "sha512-0DTca8Eak+jybXLtBDvDDxz+LFsrq1g41daDzAKM6gF+/Vk4elPmHcGNhaMec25L/gowOPXgI9JGJfHqTPZtmg==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@code-pushup/models/-/models-0.79.1.tgz", + "integrity": "sha512-V/8EFG2FNVhsESUnKDsso+BBOjrHO2E5phbA3qOWmM0YG7AnEpIduOlysZMhvU5Y5oakcWueLCxvyFbBGl8PHA==", "dev": true, "license": "MIT", "dependencies": { @@ -2373,14 +2373,14 @@ } }, "node_modules/@code-pushup/nx-plugin": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/@code-pushup/nx-plugin/-/nx-plugin-0.79.0.tgz", - "integrity": "sha512-QqmkeUWOVpuYDGknm7QSxKo6iIsxALmvHYMmIoMbvS9LIxUitW0hjBD6OWzMUhHlxlg6zQQHuMu4G51fY2AtGg==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@code-pushup/nx-plugin/-/nx-plugin-0.79.1.tgz", + "integrity": "sha512-5nsdtWcPE3i0a5vB36c5smxYjUaY/ZEghCi1xxEe8dlOFrZQZTzEPOQ+kwc/jSBoI1hA5p+tRuO+IDYcTZoHaQ==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "0.79.0", - "@code-pushup/utils": "0.79.0", + "@code-pushup/models": "0.79.1", + "@code-pushup/utils": "0.79.1", "@nx/devkit": ">=17.0.0", "ansis": "^3.3.0", "nx": ">=17.0.0", @@ -2401,13 +2401,13 @@ } }, "node_modules/@code-pushup/utils": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/@code-pushup/utils/-/utils-0.79.0.tgz", - "integrity": "sha512-7QXkdszu+DftpLQcK6H3Gnad/vn3odkz8TMMf8cBCgENMVb6KpJCtiahs10uxFqvINwxXYqIZVktylZAuUnxdg==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@code-pushup/utils/-/utils-0.79.1.tgz", + "integrity": "sha512-n4Ay1T390dAJqEjgP0R/xW8XduZaKEIDI7DLt4YfqeikKc56oPzT6kBApV1rzS0vCS7IUHtO95bNiYW3cteGUA==", "dev": true, "license": "MIT", "dependencies": { - "@code-pushup/models": "0.79.0", + "@code-pushup/models": "0.79.1", "@isaacs/cliui": "^8.0.2", "@poppinss/cliui": "^6.4.0", "ansis": "^3.3.0", diff --git a/package.json b/package.json index 2fc790a24..2373fa9da 100644 --- a/package.json +++ b/package.json @@ -50,9 +50,9 @@ "devDependencies": { "@code-pushup/portal-client": "^0.16.0", "@beaussan/nx-knip": "^0.0.5-15", - "@code-pushup/cli": "^0.79.0", + "@code-pushup/cli": "^0.79.1", "@code-pushup/eslint-config": "^0.14.2", - "@code-pushup/nx-plugin": "^0.79.0", + "@code-pushup/nx-plugin": "^0.79.1", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@commitlint/config-nx-scopes": "^19.5.0",