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
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- go, javascript, perl, python
- Ambito
- devtools
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- Python
- Stelle
- 4
- Fork
- 1
- Merge medio
- 10h 41m
- PR unite (30g)
- 79
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cpp-best-practices/project_validator
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
cpp-best-practices/project_validator#267 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
cpp-best-practices/project_validator#263 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
cpp-best-practices/project_validator#260 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
cpp-best-practices/project_validator#259 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
cpp-best-practices/project_validator#255 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di cpp-best-practices/project_validator
Issue simili
-
plot_graph crashes when a mesh node has no m2m edgeForse già presa @tygvi l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
mllam/neural-lam#883 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
enhancement possible-duplicate
Difficoltà 1/5 1-3 ore Idoneità per principianti 78/100
AOSSIE-Org/PictoPy#1715 · 2 commenti ·
I maintainer di solito rispondono entro 6 giorni
-
SQLite connector omits generated columns from the catalog, and drops relationships sourced on themAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
NVIDIA/auto-ontology#511 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ethereum/execution-specs#3996 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Project-N-E-K-O/N.E.K.O#3725 ·
I maintainer di solito rispondono entro 1 giorno