compiler-warnings wording: "-W error" when the setting is pytest filterwarnings, "no Perl pragmas found" when 112 of 116 modules have them, "no JavaScript linters found" when static-analysis credits oxlint/eslint in the same run
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 45/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- go, javascript, perl, python
- 领域
- devtools
调研方向
Start with the Perl check in project_validator/ecosystems/perl.py (lines 124-149), where _every_module ignores test-fixture roles and _IMPLIES_BOTH is incomplete, then compare the Python wording in ecosystems/python/__init__.py around lines 322-326. Reproduce the Perl case with a lib/Foo.pm plus t/lib/Fixture.pm fixture and check whether the FAIL names the offending modules. Done when the pytest filterwarnings message names the actual setting and the linter messages agree with static-analysis output for oxlint, eslint and staticcheck.
由索引模型根据 Issue 内容生成。
描述
httpx/flask/black/pytest/fastapi/pydantic are told "strict Python warning settings are enabled: -W error" for filterwarnings = ["error"] (none passes -W error), and the sentence opens a FAIL; the four Perl projects FAIL "no Perl pragmas and lints found" because 1–4 test fixtures or bundled inc/ modules lack use strict while every product module has it (name the modules); vite FAILs "no JavaScript linters found; enable at least eslint" while static-analysis credits oxlint; graphql-eslint "no JavaScript linters found" while eslint is configured and scripted; toml-test "Go: no static analyzer runs" though staticcheck is seen.
Evidence from the corpus audit
toml-lang/toml-test / static-analysis
- kind: MESSAGE
- actual: FAIL: Go: no static analyzer runs
- expected: a message that acknowledges staticcheck runs (the validator does see it: compiler-warnings says only
go vetis missing) and that the check wants golangci-lint's extra linters; "no static analyzer runs" is false. - evidence:
.github/workflows/test.yml:9:- uses: 'dominikh/staticcheck-action@v1'; validator
project_validator/ecosystems/go.py:335-343: static-analysis asks only forgolangci-lint run. - repro: workflow with
uses: dominikh/staticcheck-action@v1. - confidence: medium
dimaMachina/graphql-eslint / compiler-warnings
- kind: MESSAGE
- actual: FAIL:
no JavaScript linters found; enable at least eslint - expected: a message consistent with
static-analysisin the same run:eslint is configured (.eslintrc.cjs, ...) but does not run(eslint is found: configured and scripted; what is unknown is whether the reusable workflow runs it). - evidence:
.eslintrc.cjs:1-3:module.exports = {/ignorePatterns: [...],/extends: ['@theguild', ...;package.json:15,18:"ci:lint": "pnpm lint --output-file eslint_report.json --format json",/"lint": "ESLINT_USE_FLAT_CONFIG=false eslint --ignore-path .gitignore --cache .",;.github/workflows/test.yml:12-14:uses: the-guild-org/shared-config/.github/workflows/lint.yml@main/with:/script: pnpm ci:lint - evidence (validator): the strict
.txtcorrectly says ERRORwhether the strict JavaScript linters are enabled is unknown; with--allow-unknownthe FAIL says "no ... linters found" althoughstatic-analysisin the same run sayseslint is configured (.eslintrc.cjs, ...) but does not run. - repro:
.eslintrc.cjs+package.jsonlintscript + a workflow whose only jobuses:an external reusable workflow; run with--allow-unknown. - confidence: medium
vitejs/vite / compiler-warnings
- kind: FALSE_NEGATIVE
- actual: FAIL:
JavaScript/TypeScript: no JavaScript linters found; enable at least eslintwhilestatic-analysisin the same run saysJavaScript/TypeScript: oxlint runs - expected: PASS: oxlint runs in CI (
pnpm lint) and is a JavaScript linter the validator knows. - evidence:
package.json:24:"lint": "oxlint ."; CILint: node-26, ubuntu-latestjob runs it; validatorecosystems/javascript/analysis.py:50-53
declaresname="oxlint"for static analysis, but the compiler-warnings linter set (docs: "eslint, biome lint / biome ci, or deno lint") omits oxlint. - repro:
package.json{"scripts":{"lint":"oxlint ."}},.oxlintrc.json, steprun: pnpm lint. - confidence: medium (the two checks contradict each other; which is intended is a policy question)
mojolicious/mojo, Perl-Critic/Perl-Critic, houseabsolute/perl-code-tidyall, rjbs/Dist-Zilla / compiler-warnings
- kind: FALSE_NEGATIVE
- actual: FAIL: Perl: no Perl pragmas and lints found; enable at least use strict and use warnings in every module
(Perl-Critic:missing Perl pragmas and lints: use strict and use warnings in every module) - expected: PASS (or FAIL naming the files): every product module passes; the only modules without
use strictare
test fixtures and bundled code: mojo 4 files undert/(all 112lib/**/*.pmpass), Perl-Critic
inc/Devel/AssertOS.pm(bundled third-partyinc/) andt/06_violation.d/source/Line.pm(not even Perl),
tidyall 18t/lib/TestFor/**/*.pmwhich use Test::Class::Most (it turns strict and warnings on), Dist-Zilla
corpus/dist/**fixtures pluslib/modules that use an in-repo pragma bundle. - evidence: mojo
t/mojolicious/lib/MojoliciousTest/PODTest.pm:1-3:package MojoliciousTest::PODTest;/ `` /1;;
mojo `t/mojolicious/lib/MojoliciousTest/Controller/Foo/Bar.pm:2`: `use Mojolicious::Controller -base;`;
Perl-Critic `t/06_violation.d/source/Line.pm:1-2`: `foo` / `#line 57 Thingy.pm`; tidyall
`t/lib/TestFor/Code/TidyAll/Basic.pm:13`: `use Test::Class::Most parent => 'TestHelper::Test::Class';`; Dist-Zilla
`lib/Dist/Zilla/App.pm:4`: `use Dist::Zilla::Pragmas;` and `lib/Dist/Zilla/Pragmas.pm:12-13`: `strict->import;` /
`warnings->import;`; validator `project_validator/facts/roles.py:27` `_ROLES` test directories are `("test",
"tests", "testing", "testdata", "spec", "specs", "tests", "fixtures")` (no `t`, `xt`, `inc`, `corpus`);
`project_validator/ecosystems/perl.py:144-149` `_every_module` judges every `Setting` of tool "Perl modules" with no
role filter and `project_validator/ecosystems/perl.py:124-127` `_IMPLIES_BOTH` lacks `Test::Class::Most`,
`Test::Class::Moose`, `Test::Most`. - repro:
lib/Foo.pmwith strict+warnings,t/lib/Fixture.pmwithpackage Fixture; 1;→ FAIL "no Perl pragmas and
lints found" (reproduced inrepro-perl). - confidence: high (fixtures); medium (in-repo pragma bundle, which needs following
useto a module inlib/)
mojolicious/mojo, Perl-Critic/Perl-Critic, houseabsolute/perl-code-tidyall, rjbs/Dist-Zilla / compiler-warnings
- kind: MESSAGE
- actual: FAIL: Perl: no Perl pragmas and lints found; enable at least use strict and use warnings in every module, perlcritic
- expected: FAIL naming the module(s) that lack the pragmas ("3 of 116 modules lack use strict: t/...") — the
all-or-nothing requirement gives the user nothing to act on, and "no ... found" is false when 112 of 116 modules
have them. - evidence:
project_validator/ecosystems/perl.py:144-149:if paths and all(setting.value for setting in found): yield Evidence(f"{len(paths)} module(s), every one")— evidence only on success; the facts carry the failing paths
(--facts:{"origin": "t/mojolicious/lib/MojoliciousTest/PODTest.pm:strict", "value": false}). - repro: as above.
- confidence: high
all projects with pytest `filterwarnings = ["error"] / compiler-warnings
- kind: MESSAGE
- actual: "strict Python warning settings are enabled: -W error" (httpx, flask, black, pytest, fastapi, pydantic);
in httpx/fastapi/pydantic this sentence sits inside a FAIL whose failure belongs to Shell/JavaScript. - expected: name what was found (
filterwarnings = ["error"]in[tool.pytest.ini_options]), since none of these
passes-W error; and a FAIL message should not open with "strict ... are enabled". - evidence:
encode__httpx/pyproject.toml:119:filterwarnings = [(next line"error",);
pallets__flask/pyproject.toml:108;psf__black/pyproject.toml:217:filterwarnings = ["error"];
fastapi__fastapi/pyproject.toml:253;pydantic__pydantic/pyproject.toml:188. Validator:
ecosystems/python/__init__.py:322-326one pattern named"-W error"covers-W error,PYTHONWARNINGSand
filterwarnings. - repro: pyproject with
filterwarnings = ["error"]only. - confidence: high
Found by the regression-corpus audit (235 real repositories, one or more per ecosystem profile; corpus and expected results in corpus/). Evidence is quoted from the audited checkouts at the commits pinned in corpus/projects.toml; <checkouts>/<owner>__<repo> is such a checkout.
🤖 Generated with Claude Code
- 主要语言
- Python
- 星标
- 4
- 派生
- 1
- 平均合并
- 10 小时 41 分钟
- 30 天内合并 PR
- 79
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
cpp-best-practices/project_validator 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 62/100
cpp-best-practices/project_validator#267 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
cpp-best-practices/project_validator#263 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 62/100
cpp-best-practices/project_validator#260 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 74/100
cpp-best-practices/project_validator#259 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
cpp-best-practices/project_validator#255 ·
维护者通常 1 天内回复
查看 cpp-best-practices/project_validator 的全部 Issue
相似的 Issue
-
plot_graph crashes when a mesh node has no m2m edge可能已有人在做 @tygvi 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
mllam/neural-lam#883 · 1 条评论 ·
维护者通常 2 天内回复
-
enhancement possible-duplicate
难度 1/5 1-3 小时 新手友好度 78/100
AOSSIE-Org/PictoPy#1715 · 2 条评论 ·
维护者通常 6 天内回复
-
SQLite connector omits generated columns from the catalog, and drops relationships sourced on them未关闭
难度 2/5 1-3 小时 新手友好度 72/100
NVIDIA/auto-ontology#511 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
ethereum/execution-specs#3996 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
Project-N-E-K-O/N.E.K.O#3725 ·
维护者通常 1 天内回复