Skip to content

Commit 50f2ca4

Browse files
committed
Merge branch 'main' into cp-targets
# Conflicts: # code-pushup.preset.ts # nx.json # package-lock.json # packages/plugin-lighthouse/project.json
2 parents 940afea + 7aab96e commit 50f2ca4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+18351
-14993
lines changed

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,16 @@ testem.log
4343
.DS_Store
4444
Thumbs.db
4545

46+
# generated eslint reports
47+
.eslint
48+
4649
# generated Code PushUp reports
4750
.code-pushup
4851

4952
# Nx workspace cache
5053
.nx
54+
55+
vite.config.*.timestamp*
56+
vitest.config.*.timestamp*
57+
.cursor/rules/nx-rules.mdc
58+
.github/instructions/nx.instructions.md

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
## 0.76.0 (2025-08-25)
2+
3+
### 🚀 Features
4+
5+
- implement scoreTargets for audits ([5db68e2e](https://github.com/code-pushup/cli/commit/5db68e2e))
6+
- **ci:** add helper function for parsing configPatterns from json string ([fd5edb09](https://github.com/code-pushup/cli/commit/fd5edb09))
7+
- **ci:** export default settings and min/max limits ([a6a485ee](https://github.com/code-pushup/cli/commit/a6a485ee))
8+
- **models:** export default persist config ([18e95ff5](https://github.com/code-pushup/cli/commit/18e95ff5))
9+
- **models:** export default persist.skipReports value ([dfc15aeb](https://github.com/code-pushup/cli/commit/dfc15aeb))
10+
11+
### ❤️ Thank You
12+
13+
- Hanna Skryl @hanna-skryl
14+
- Matěj Chalk @matejchalk
15+
116
## 0.75.0 (2025-08-22)
217

318
### 🚀 Features

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616

1717
---
1818

19-
![Type safety](https://api.staging.code-pushup.dev/badges/code-pushup/cli/type-safety?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
20-
![Bug prevention](https://api.staging.code-pushup.dev/badges/code-pushup/cli/bug-prevention?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
21-
![Code style](https://api.staging.code-pushup.dev/badges/code-pushup/cli/code-style?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
22-
![Code coverage](https://api.staging.code-pushup.dev/badges/code-pushup/cli/code-coverage?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
23-
![Security](https://api.staging.code-pushup.dev/badges/code-pushup/cli/security?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
24-
![Updates](https://api.staging.code-pushup.dev/badges/code-pushup/cli/updates?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
25-
![Documentation](https://api.staging.code-pushup.dev/badges/code-pushup/cli/docs?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
19+
![Type safety](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/type-safety?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
20+
![Bug prevention](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/bug-prevention?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
21+
![Code style](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/code-style?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
22+
![Code coverage](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/code-coverage?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
23+
![Security](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/security?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
24+
![Updates](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/updates?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
25+
![Documentation](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/docs?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
2626

2727
---
2828

code-pushup.preset.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import coveragePlugin, {
1414
import eslintPlugin, {
1515
eslintConfigFromAllNxProjects,
1616
} from './packages/plugin-eslint/src/index.js';
17+
import type { ESLintTarget } from './packages/plugin-eslint/src/lib/config.js';
18+
import { nxProjectsToConfig } from './packages/plugin-eslint/src/lib/nx/projects-to-config.js';
1719
import jsPackagesPlugin from './packages/plugin-js-packages/src/index.js';
1820
import jsDocsPlugin from './packages/plugin-jsdocs/src/index.js';
1921
import type { JsDocsPluginTransformedConfig } from './packages/plugin-jsdocs/src/lib/config.js';
@@ -166,6 +168,17 @@ export const jsDocsCoreConfig = (
166168
),
167169
});
168170

171+
export async function eslintConfigFromPublishableNxProjects(): Promise<
172+
ESLintTarget[]
173+
> {
174+
const { createProjectGraphAsync } = await import('@nx/devkit');
175+
const projectGraph = await createProjectGraphAsync({ exitOnError: false });
176+
return nxProjectsToConfig(
177+
projectGraph,
178+
project => project.tags?.includes('publishable') ?? false,
179+
);
180+
}
181+
169182
export const eslintCoreConfigNx = async (
170183
projectName?: string,
171184
): Promise<CoreConfig> => ({

e2e/nx-plugin-e2e/tests/executor-cli.e2e.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
teardownTestFolder,
1919
} from '@code-pushup/test-utils';
2020
import { executeProcess, readJsonFile } from '@code-pushup/utils';
21-
import { INLINE_PLUGIN } from './inline-plugin.js';
21+
import { INLINE_PLUGIN } from '../mocks/inline-plugin.js';
2222

2323
async function addTargetToWorkspace(
2424
tree: Tree,

e2e/nx-plugin-e2e/tests/plugin-create-nodes.e2e.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {
1717
teardownTestFolder,
1818
} from '@code-pushup/test-utils';
1919
import { executeProcess, readTextFile } from '@code-pushup/utils';
20-
import { INLINE_PLUGIN } from './inline-plugin.js';
20+
import { INLINE_PLUGIN } from '../mocks/inline-plugin.js';
2121

2222
describe('nx-plugin', () => {
2323
let tree: Tree;

e2e/plugin-typescript-e2e/tests/__snapshots__/collect.e2e.test.ts.snap

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,26 @@ exports[`PLUGIN collect report with typescript-plugin NPM package > should run p
5858
"description": "Errors that occur during type checking and type inference",
5959
"details": {
6060
"issues": [
61+
{
62+
"message": "TS2694: Namespace ''./index'' has no exported member 'IOptions'.",
63+
"severity": "error",
64+
"source": {
65+
"file": "node_modules/@types/glob/index.d.ts",
66+
"position": {
67+
"startLine": 29,
68+
},
69+
},
70+
},
71+
{
72+
"message": "TS2724: ''./index'' has no exported member named 'IMinimatch'. Did you mean 'Minimatch'?",
73+
"severity": "error",
74+
"source": {
75+
"file": "node_modules/@types/glob/index.d.ts",
76+
"position": {
77+
"startLine": 74,
78+
},
79+
},
80+
},
6181
{
6282
"message": "TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.",
6383
"severity": "error",
@@ -80,11 +100,11 @@ exports[`PLUGIN collect report with typescript-plugin NPM package > should run p
80100
},
81101
],
82102
},
83-
"displayValue": "2 errors",
103+
"displayValue": "4 errors",
84104
"score": 0,
85105
"slug": "semantic-errors",
86106
"title": "Semantic errors",
87-
"value": 2,
107+
"value": 4,
88108
},
89109
{
90110
"description": "Errors that occur during TypeScript language service operations",

nx.json

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@
231231
}
232232
},
233233
"unit-test": {
234+
"cache": true,
234235
"outputs": [
235236
"{workspaceRoot}/coverage/{projectName}/unit-tests/lcov.info"
236237
],
@@ -243,6 +244,7 @@
243244
}
244245
},
245246
"int-test": {
247+
"cache": true,
246248
"outputs": ["{workspaceRoot}/coverage/{projectName}/int-tests/lcov.info"],
247249
"executor": "@nx/vite:test",
248250
"options": {
@@ -258,12 +260,29 @@
258260
"cache": true
259261
},
260262
"lint": {
261-
"inputs": ["lint-eslint-inputs"],
262-
"executor": "@nx/linter:eslint",
263+
"inputs": ["default", "{workspaceRoot}/eslint.config.?(c)js"],
264+
"executor": "@nx/eslint:lint",
263265
"outputs": ["{options.outputFile}"],
264266
"cache": true,
265267
"options": {
268+
"errorOnUnmatchedPattern": false,
269+
"maxWarnings": 0,
270+
"lintFilePatterns": [
271+
"{projectRoot}/**/*.ts",
272+
"{projectRoot}/package.json"
273+
]
274+
}
275+
},
276+
"lint-report": {
277+
"inputs": ["default", "{workspaceRoot}/eslint.config.?(c)js"],
278+
"outputs": ["{projectRoot}/.eslint/eslint-report*.json"],
279+
"cache": true,
280+
"executor": "@nx/linter:eslint",
281+
"options": {
282+
"errorOnUnmatchedPattern": false,
266283
"maxWarnings": 0,
284+
"format": "json",
285+
"outputFile": "{projectRoot}/.eslint/eslint-report.json",
267286
"lintFilePatterns": [
268287
"{projectRoot}/**/*.ts",
269288
"{projectRoot}/package.json"
@@ -499,7 +518,8 @@
499518
},
500519
"version": {
501520
"conventionalCommits": true,
502-
"generatorOptions": {
521+
"preserveLocalDependencyProtocols": false,
522+
"versionActionsOptions": {
503523
"skipLockFileUpdate": true
504524
}
505525
},

0 commit comments

Comments
 (0)