PHP warnings-as-errors: say what is set (failOnWarning, --fail-on-deprecation) and what is missing

未关闭
#270 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
半天
新手友好度
62/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
php, python
领域
testing, tooling

调研方向

The FAIL message comes from the single Pattern with three lookaheads in project_validator/ecosystems/php/practices.py (around lines 31-38), which gives no evidence on a partial match. Read the failOnWarning and --fail-on-deprecation cases in corpus/projects.toml and the expected results in corpus/, then run the validator against the guzzle and laravel checkouts. Done when the message names what is set (for example failOnWarning in phpunit.xml) and what is missing, and the corpus expectations are updated to match.

由索引模型根据 Issue 内容生成。

描述

guzzle's phpunit.xml has failOnWarning="true" and laravel's CI passes --fail-on-deprecation; both FAIL "warnings are not treated as errors in phpunit.xml, CI configuration or the Composer scripts it runs" (the documented all-three rule), with no mention of what is set.

Evidence from the corpus audit

guzzle/guzzle, laravel/framework / warnings-as-errors
  • kind: MESSAGE
  • actual: FAIL: warnings are not treated as errors in phpunit.xml, CI configuration or the Composer scripts it runs
  • expected: FAIL (per the documented all-three rule) but saying what is set and what is missing: guzzle's phpunit.xml
    has failOnWarning="true" (warnings literally are errors; notices and deprecations are not), laravel's CI passes
    --fail-on-deprecation on its stable matrix. "not treated as errors in phpunit.xml" is false as written.
  • evidence: guzzle phpunit.xml.dist:8-9: failOnRisky="true" / failOnWarning="true"; laravel
    .github/workflows/tests.yml:79: run: vendor/bin/phpunit --display-deprecation ${{ matrix.stability == 'prefer-stable' && '--fail-on-deprecation' || '' }} --no-coverage; validator
    project_validator/ecosystems/php/practices.py:31-38: one Pattern with three lookaheads, so a partial match yields
    no evidence at all.
  • repro: phpunit.xml.dist with failOnWarning="true" only.
  • confidence: medium

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

https://claude.ai/code/session_01ByTXNqDWdM7HzezrFtEvQt

主要语言
Python
星标
4
派生
1
平均合并
10 小时 41 分钟
30 天内合并 PR
79

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

cpp-best-practices/project_validator 的其他 Issue

查看 cpp-best-practices/project_validator 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。