OCaml: `(flags …)` of an ocamllex stanza or a test fixture's `(env …)` are taken as the project dropping :standard; opam's own-compiler matrix (`ocamlv`) is "1 OCaml version"; `ocaml/setup-ocaml/lint-fmt` is the ecosystem's format check
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 52/100
调研方向
Start in project_validator/ecosystems/ocaml.py: the dune (flags ...) parsing around lines 203-206 treats ocamllex and test-fixture flags as compiler flags, and the setup-ocaml handling near line 298 needs lint-fmt recognition. The matrix check should read ocamlv-style keys with version-shaped values. Done when the repros in the issue (fx_h, fx_g, the ocamlv matrix, and the lint-fmt@v3 workflow) give the expected PASS results without breaking the existing OCaml tests.
由索引模型根据 Issue 内容生成。
描述
dune: compiler-warnings/warnings-as-errors FAIL "no OCaml warning settings found" although CI tests in the dev profile; the (flags -ml) that "drops :standard" is an ocamllex lexer stanza and (env (_ (flags -w -33))) sits inside test fixtures. opam: "1 OCaml version (default)" while the matrix variable ocamlv drives 11 compiler versions built by opam itself. lwt: ocaml/setup-ocaml/lint-fmt@v3 runs dune build @fmt and fails on unformatted files → "CI does not run ocamlformat".
Evidence from the corpus audit
ocaml/dune / compiler-warnings, warnings-as-errors
- kind: FALSE_NEGATIVE
- actual: FAIL:
OCaml: no OCaml warning settings found; enable at least dune's dev profile warning set (or -w +a);OCaml: warnings are not treated as errors in CI configuration and the dune files - expected: PASS: CI tests in the dev profile (
opam exec -- make test,opam exec -- ./dune.exe test ...); the(flags …)fields that "drop :standard" are anocamllexstanza's lexer flags ((flags -ml)) and(env (_ (flags -w -33)))inside test fixtures, not compiler flags of the product - evidence:
src/dune_lang/dune:22-24:(ocamllex\n (modules dune_file_script)\n (flags -ml)); alsosrc/dune_rules/dune:42,otherlibs/dune-rpc/dune:9,src/dune_rules/cram/dune:3(all(flags -ml)of ocamllex);otherlibs/dune-site/test/plugin_require_thread.t/plugin/dune:1:(env (_ (flags -w -33)));.github/workflows/workflow.yml:293:run: opam exec -- make test;project_validator/ecosystems/ocaml.py:203-206: every(flags …)form of a dune file is read as compiler flags - repro:
dunewith(library (name l))\n(ocamllex (modules lexer) (flags -ml))+ workflowrun: ./_boot/dune.exe runtest→ compiler-warnings FAIL (reproduced inaudit/scratch/fx_h; without the ocamllex stanza,fx_g, it passes) - confidence: high
ocaml/opam / platform-matrix
- kind: FALSE_NEGATIVE
- actual: FAIL:
OCaml: CI covers 3 OS(es) (linux, macos, windows), 1 OCaml version(s) (default), 3 combination(s); expected at least 2 OCaml versions (found 1); map names the jobsBuild-Linux (4.11.2)...Build-Linux (5.5.0)yet gives them toolchainOCaml default - expected: 11 OCaml versions on Linux and 2 on Windows: the matrix variable
ocamlvis the compiler version (opam builds its own compilers,.github/scripts/main/ocaml-cache.sh ${{ matrix.ocamlv }}); the profile knows only setup-ocaml'socaml-compiler,ocaml/opam:images andopam switch create - evidence:
.github/workflows/main.yml:114:ocamlv: [ 4.11.2, 4.12.1, 4.13.1, 5.0.0, 5.1.1, 5.2.1, 5.3.0, 5.4.1, trunk, 4.14.4, 5.5.0 ];:142:run: bash -exu .github/scripts/main/ocaml-cache.sh ${{ runner.os }} ${{ matrix.ocamlv }};docs/ecosystems/ocaml.md"platform-matrix" lists only setup-ocaml, the docker image andopam switch create - repro: matrix
ocamlv: [4.14.4, 5.5.0]with arun:passing${{ matrix.ocamlv }}to a script → "1 OCaml version (default)" - confidence: medium (a matrix key named
ocaml*/ocamlvwith version-shaped values is strong evidence; recognising it is a heuristic)
ocsigen/lwt / code-formatting
- kind: FALSE_NEGATIVE
- actual: FAIL component:
OCaml: .ocamlformat is defined but CI does not run ocamlformat - expected: PASS:
ocaml/setup-ocaml/lint-fmt@v3is the standard OCaml-ecosystem formatting check (it runsdune build @fmt, failing on unformatted files); its siblinglint-opamrunsopam-dune-lint - evidence:
.github/workflows/lint.yml:25-34:lint-fmt:\n ... - uses: ocaml/setup-ocaml@v3\n with:\n ocaml-compiler: 5\n - uses: ocaml/setup-ocaml/lint-fmt@v3;.ocamlformatat the root;project_validator/ecosystems/ocaml.pymentions setup-ocaml only forocaml-compiler(line 298) - repro:
.ocamlformat+ workflow stepuses: ocaml/setup-ocaml/lint-fmt@v3→ "CI does not run ocamlformat" - 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 天内回复