Lua/LaTeX: plenary's `-c "PlenaryBustedDirectory …"` is credited as busted's -c coverage flag (luacov false positive); Teal (.tl, tl check) unknown; l3build unknown; Neovim versions are the toolchain axis of a plugin

オープン
#268 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
22/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
github-actions, latex, lua, python

調査の方向性

Four separate detection problems are bundled here. Start with _luacov in project_validator/ecosystems/lua.py, where nvim's -c is read as busted's coverage flag, then the Lua toolchain_patterns call and the LaTeX toolchain_patterns in ecosystems/latex.py. Each finding needs its own fix and a corpus entry in corpus/ showing the expected result. Split the issue before starting, since the luacov fix and the matrix or LaTeX detection changes are independent.

索引モデルが issue の本文から書いたものです。

説明

telescope.nvim: coverage PASS "line coverage is reported with luacov" with no luacov anywhere — _luacov in ecosystems/lua.py takes nvim's -c as busted's coverage flag (affects every plenary-based plugin). luarocks' sources are Teal (117 .tl under src/luarocks/, the .lua beside them generated by tl gen; tl check is a type checker) → unrecognised, type-checking FAIL. latex3/l3build's regression tests (texlua l3build.lua check, .lvt/.tlg) on five engines → "no CI runs latexmk". telescope's matrix is 3 OSes × 2 Neovim versions (rhysd/action-setup-vim version:) → "1 Lua version (default)".

Evidence from the corpus audit

nvim-telescope/telescope.nvim / coverage
  • kind: FALSE_POSITIVE
  • actual: PASS: line coverage is reported with luacov
  • expected: FAIL: nothing in the repository mentions luacov or --coverage; CI only runs plenary's busted inside Neovim.
  • evidence: Makefile:4: nvim --headless --noplugin -u scripts/minimal_init.vim -c "PlenaryBustedDirectory lua/tests/automated/ { minimal_init = './scripts/minimal_init.vim' }";
    .github/workflows/ci.yml:48: make test; grep -rn luacov over the checkout finds nothing;
    --answers for coverage records "tools": ["luacov"], "reported": ["luacov"].
    Validator: project_validator/ecosystems/lua.py _luacov: if not _runs_busted(command): return None (true via
    _plenary, which matches nvim + PlenaryBusted), then if has_option(argv, "--coverage", "-c"): return reported(Granularity.LINE):
    nvim's -c <command> is taken for busted's -c (coverage).
  • repro: Makefile with test:\n\tnvim --headless -c "PlenaryBustedDirectory tests", a workflow step run: make test,
    one tests/a_spec.lua containing describe(.
  • confidence: high
latex3/l3build / tests-run (and detection)
  • kind: UNSUPPORTED
  • actual: FAIL: LaTeX: tests found in 3 file(s), but no CI configuration runs latexmk -pdf main.tex (...); Lua: no tests found
  • expected: PASS: CI runs the project's regression tests with l3build on five engines, and typesets the docs with it.
  • evidence: .github/workflows/main.yaml:27: run: texlua l3build.lua check -q -H --show-log-on-error;
    .github/workflows/main.yaml:43: run: texlua l3build.lua doc -q -H; .github/workflows/main.yaml:21:
    uses: zauguin/install-texlive@v4; build.lua:9: checkengines = {"pdftex", "xetex", "luatex", "ptex", "uptex"};
    test files testfiles/00-test-1.lvt, testfiles/00-test-1.tlg (map: .tlg 20 files and .lvt 11 files
    "unrecognised"; .ins 9 files unrecognised here and 1 in mtheme: docstrip installers are LaTeX sources).
    The map's CI jobs show "ecosystems": [] for every job: neither texlua, l3build nor zauguin/install-texlive
    is a LaTeX toolchain marker (project_validator/ecosystems/latex.py toolchain_patterns(... programs=("latexmk", "pdflatex", ...), actions=("latex-action", "setup-texlive-action"))).
    l3build is how latex3 and most CTAN packages test (l3build check), so this misses the LaTeX ecosystem's main test
    tool; the checkengines list is also the natural "toolchain matrix" for LaTeX, which platform-matrix could count.
  • repro: build.lua with module = "x", testfiles/a.lvt + testfiles/a.tlg, workflow step run: l3build check
    (or texlua l3build.lua check) after uses: zauguin/install-texlive@v4.
  • confidence: high
luarocks/luarocks / detection (Teal)
  • kind: UNSUPPORTED
  • actual: map unrecognised_suffixes: .tl 117 files; type-checking FAIL "no type checker runs"; committed-artifacts
    "Lua: no build outputs are committed"
  • expected: Teal recognised as the project's source language: .tl under src/luarocks/ are the sources, the
    .lua beside them are generated (tl gen), and tl check/tl gen --check is a type checker.
  • evidence: src/luarocks/build.tl, src/luarocks/cmd.tl, ... (27 .tl beside 27 generated .lua in src/luarocks/
    alone); tlconfig.lua:1-6: return { / build_dir = "build", / source_dir = "src", / include_dir = { "src", "types", "vendor" }, / gen_target = "5.1",;
    teal.sh:12: tl gen --check -I ../types -I ../vendor $tealname -o $luaname; .github/workflows/test.yml:71:
    luarocks install tl; vendor/argparse.d.tl, vendor/dkjson.d.tl (Teal declaration files).
    Not a bug: Teal is simply not in the Lua profile (nor is .moon MoonScript: busted's spec/moonscript_spec.moon).
  • repro: unclear (new language support)
  • confidence: medium
nvim-telescope/telescope.nvim / platform-matrix
  • kind: FALSE_NEGATIVE
  • actual: FAIL: CI covers 1 OS(es) (linux), 1 Lua version(s) (default), 1 combination(s); detail lines list six
    unit tests (...) jobs on linux, macos and windows, each "no Lua version"
  • expected: PASS: the test matrix is 3 OSes x 2 Neovim versions (nightly, stable); for a Neovim plugin the runtime
    version is the toolchain axis, named by rhysd/action-setup-vim's version (also neovim: true), or by
    folke/github/neovim's / MunifTanjim/setup-neovim-action's inputs.
  • evidence: .github/workflows/ci.yml:19-20: os: [ubuntu-latest, macos-latest, windows-latest] / rev: [nightly, stable];
    .github/workflows/ci.yml:32-35: uses: rhysd/action-setup-vim@v1 / with: / neovim: true / version: ${{ matrix.rev }}.
    Validator: project_validator/ecosystems/lua.py toolchain_patterns("Lua", version=_LUA_VERSION, inputs=("luaVersion", "lua-version"), ... actions=("gh-actions-lua",))
    knows only Lua interpreter versions. The one counted job is the luacheck job (lint.yml:23: sudo luarocks install luacheck, version "default").
  • repro: workflow with matrix: {os: [ubuntu-latest, macos-latest], rev: [stable, nightly]}, step
    uses: rhysd/action-setup-vim@v1 with neovim: true, version: ${{ matrix.rev }}, then run: nvim --headless -c "PlenaryBustedDirectory tests".
  • 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分
マージ済み PR(30日)
79

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

cpp-best-practices/project_validator のほかの issue

cpp-best-practices/project_validator の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。