From db78baef26c950f86e79d31c5d03435ae5853478 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Thu, 20 Mar 2025 13:39:43 +0100 Subject: [PATCH 1/5] cli: repo lint pass --max-warnings option Signed-off-by: Vincenzo Scamporlino --- packages/cli/src/modules/lint/alpha.ts | 4 ++++ packages/cli/src/modules/lint/commands/repo/lint.ts | 4 ++-- packages/cli/src/modules/lint/index.ts | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/modules/lint/alpha.ts b/packages/cli/src/modules/lint/alpha.ts index 8703e73b5e..c7b9ab66ed 100644 --- a/packages/cli/src/modules/lint/alpha.ts +++ b/packages/cli/src/modules/lint/alpha.ts @@ -76,6 +76,10 @@ export default createCliPlugin({ '--since ', 'Only lint packages that changed since the specified ref', ); + command.option( + '--max-warnings ', + 'Fail if more than this number of warnings. -1 allows warnings. (default: 0)', + ); command.description('Lint a repository'); command.action(lazy(() => import('./commands/repo/lint'), 'command')); diff --git a/packages/cli/src/modules/lint/commands/repo/lint.ts b/packages/cli/src/modules/lint/commands/repo/lint.ts index 15a3584020..246324785e 100644 --- a/packages/cli/src/modules/lint/commands/repo/lint.ts +++ b/packages/cli/src/modules/lint/commands/repo/lint.ts @@ -111,6 +111,7 @@ export async function command(opts: OptionValues, cmd: Command): Promise { fix: Boolean(opts.fix), format: opts.format as string | undefined, shouldCache: Boolean(cacheContext), + maxWarnings: Number(opts.maxWarnings) || 0, successCache: cacheContext?.entries, rootDir: paths.targetRoot, }, @@ -120,6 +121,7 @@ export async function command(opts: OptionValues, cmd: Command): Promise { shouldCache, successCache, rootDir, + maxWarnings, }) => { const { ESLint } = require('eslint') as typeof import('eslint'); const crypto = require('crypto') as typeof import('crypto'); @@ -131,7 +133,6 @@ export async function command(opts: OptionValues, cmd: Command): Promise { return async ({ fullDir, relativeDir, - lintOptions, parentHash, }): Promise<{ relativeDir: string; @@ -199,7 +200,6 @@ export async function command(opts: OptionValues, cmd: Command): Promise { await ESLint.outputFixes(results); } - const maxWarnings = lintOptions?.maxWarnings ?? 0; const ignoreWarnings = +maxWarnings === -1; const resultText = formatter.format(results) as string; diff --git a/packages/cli/src/modules/lint/index.ts b/packages/cli/src/modules/lint/index.ts index e2bfcd0779..5be76d8928 100644 --- a/packages/cli/src/modules/lint/index.ts +++ b/packages/cli/src/modules/lint/index.ts @@ -62,6 +62,10 @@ export function registerRepoCommands(command: Command) { '--successCacheDir ', 'Set the success cache location, (default: node_modules/.cache/backstage-cli)', ) + .option( + '--max-warnings ', + 'Fail if more than this number of warnings. -1 allows warnings. (default: 0)', + ) .option('--fix', 'Attempt to automatically fix violations') .action(lazy(() => import('./commands/repo/lint'), 'command')); } From 87a5cb49c8b07610c5460a3a56e0c78a590d8b0f Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Thu, 20 Mar 2025 13:41:14 +0100 Subject: [PATCH 2/5] cli: changesets Signed-off-by: Vincenzo Scamporlino --- .changeset/every-ties-wink.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/every-ties-wink.md diff --git a/.changeset/every-ties-wink.md b/.changeset/every-ties-wink.md new file mode 100644 index 0000000000..31eff3fb9a --- /dev/null +++ b/.changeset/every-ties-wink.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed an issue causing the `repo lint` command to fail when the `--max-warnings` option was used. From d7419c92bd121e254b349245005b1de270e99fe2 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Thu, 20 Mar 2025 16:29:35 +0100 Subject: [PATCH 3/5] cli: update api-reports Signed-off-by: Vincenzo Scamporlino --- packages/cli/cli-report.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/cli/cli-report.md b/packages/cli/cli-report.md index 32918caad2..3dfacbd3f3 100644 --- a/packages/cli/cli-report.md +++ b/packages/cli/cli-report.md @@ -452,6 +452,7 @@ Options: --since --successCache --successCacheDir + --max-warnings --fix -h, --help ``` From efe88dfa42853f05ea3fbb793dffd67ee4ae3c29 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 21 Mar 2025 08:53:24 +0100 Subject: [PATCH 4/5] cli: update usage docs Signed-off-by: Vincenzo Scamporlino --- packages/cli/src/modules/lint/alpha.ts | 4 ++-- packages/cli/src/modules/lint/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/modules/lint/alpha.ts b/packages/cli/src/modules/lint/alpha.ts index c7b9ab66ed..617f71d5c9 100644 --- a/packages/cli/src/modules/lint/alpha.ts +++ b/packages/cli/src/modules/lint/alpha.ts @@ -38,7 +38,7 @@ export default createCliPlugin({ ); command.option( '--max-warnings ', - 'Fail if more than this number of warnings. -1 allows warnings. (default: 0)', + 'Fail if more than this number of warnings. -1 allows warnings. (default: -1)', ); command.description('Lint a package'); command.action( @@ -78,7 +78,7 @@ export default createCliPlugin({ ); command.option( '--max-warnings ', - 'Fail if more than this number of warnings. -1 allows warnings. (default: 0)', + 'Fail if more than this number of warnings. -1 allows warnings. (default: -1)', ); command.description('Lint a repository'); command.action(lazy(() => import('./commands/repo/lint'), 'command')); diff --git a/packages/cli/src/modules/lint/index.ts b/packages/cli/src/modules/lint/index.ts index 5be76d8928..dfa0916efb 100644 --- a/packages/cli/src/modules/lint/index.ts +++ b/packages/cli/src/modules/lint/index.ts @@ -31,7 +31,7 @@ export function registerPackageCommands(command: Command) { .option('--fix', 'Attempt to automatically fix violations') .option( '--max-warnings ', - 'Fail if more than this number of warnings. -1 allows warnings. (default: 0)', + 'Fail if more than this number of warnings. -1 allows warnings. (default: -1)', ) .description('Lint a package') .action(lazy(() => import('./commands/package/lint'), 'default')); @@ -64,7 +64,7 @@ export function registerRepoCommands(command: Command) { ) .option( '--max-warnings ', - 'Fail if more than this number of warnings. -1 allows warnings. (default: 0)', + 'Fail if more than this number of warnings. -1 allows warnings. (default: -1)', ) .option('--fix', 'Attempt to automatically fix violations') .action(lazy(() => import('./commands/repo/lint'), 'command')); From 69607e580d3e6abed33e800b5b43a7d43637c153 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 21 Mar 2025 09:00:45 +0100 Subject: [PATCH 5/5] cli: fix max-warnings default Signed-off-by: Vincenzo Scamporlino --- packages/cli/src/modules/lint/commands/repo/lint.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/modules/lint/commands/repo/lint.ts b/packages/cli/src/modules/lint/commands/repo/lint.ts index 246324785e..ab6597c70a 100644 --- a/packages/cli/src/modules/lint/commands/repo/lint.ts +++ b/packages/cli/src/modules/lint/commands/repo/lint.ts @@ -111,7 +111,7 @@ export async function command(opts: OptionValues, cmd: Command): Promise { fix: Boolean(opts.fix), format: opts.format as string | undefined, shouldCache: Boolean(cacheContext), - maxWarnings: Number(opts.maxWarnings) || 0, + maxWarnings: opts.maxWarnings ?? -1, successCache: cacheContext?.entries, rootDir: paths.targetRoot, },