Protobuf: schema-declared judges example modules whose own buf.yaml disables PACKAGE_DEFINED; link-check and markdownlint do not apply to a Protobuf-only repo's Markdown docs

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

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

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

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
42/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python

調査の方向性

Start with _read_proto in project_validator/ecosystems/protobuf.py, which ignores the lint.except entries in examples/buf.yaml and e2e/bzlmod/buf.yaml, and compare it with how the tests/migrate fixtures are marked "not judged". Separately, find where the link-check SKIP reason "no recognised language" is produced, since plain Markdown docs with a .lychee.toml are not detected. Done means the examples and e2e fixture no longer FAIL on PACKAGE_DEFINED when their buf.yaml disables it, and a Markdown-only docs directory with a link-checker config is judged rather than skipped.

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

説明

bufbuild/protovalidate: FAIL "79 Protobuf files do not declare their package" for examples/*.proto and e2e/bzlmod/example.proto, separate buf modules whose buf.yaml turns off PACKAGE_DEFINED, the very rule the check implements (the tests/migrate fixtures are correctly "not judged"). opentelemetry-proto runs lychee over docs/*.md with a committed .lychee.toml on every push, but link-check SKIPs "not applicable to a project of no recognised language": plain Markdown documentation with a link checker is a documentation unit.

Evidence from the corpus audit

bufbuild/protovalidate / schema-declared
  • kind: FALSE_POSITIVE
  • actual: FAIL: 79 Protobuf files do not declare their syntax (or edition) and package (77 examples/*.proto: no package, e2e/bzlmod/example.proto: no package)
  • expected: PASS (or the examples noted the way proto/protovalidate-testing/tests/migrate/*.proto were, "not judged"): the examples and the e2e fixture are separate buf modules whose own buf.yaml turns off PACKAGE_DEFINED, the very rule the docs say this check implements; examples/ has role example in roles.py and e2e/ is an end-to-end fixture.
  • evidence: examples/buf.yaml:21-27: lint: / use: [STANDARD] / except: / - DIRECTORY_SAME_PACKAGE / - FIELD_NOT_REQUIRED / - PACKAGE_DEFINED; e2e/bzlmod/buf.yaml: except: [DIRECTORY_SAME_PACKAGE, PACKAGE_DEFINED, ...]; docs/ecosystems/protobuf.md: "its package, without which its messages are in the global namespace (buf's PACKAGE_DEFINED rule)"; validator project_validator/ecosystems/protobuf.py:_read_proto reads no buf.yaml lint exceptions.
  • repro: examples/buf.yaml with lint.except: [PACKAGE_DEFINED] beside examples/a.proto with syntax = "proto3"; and no package.
  • confidence: medium
open-telemetry/opentelemetry-proto / link-check
  • kind: UNSUPPORTED
  • actual: SKIP: not applicable to a project of no recognised language
  • expected: PASS (or at least applicable): CI runs lychee over the repository's Markdown documentation (docs/*.md, README.md) with a committed .lychee.toml, every push; the check only knows documentation sites (Sphinx, mdBook...), so plain Markdown docs plus lychee are invisible, and the SKIP reason ("no recognised language") is unrelated to what the check judges.
  • evidence: .github/workflows/build-check.yaml:161-162: - name: run markdown-link-check / run: make markdown-link-check; Makefile:172-181: LYCHEEIMAGE := $(shell awk '$$4=="lychee" {print $$2}' $(DEPENDENCIES_DOCKERFILE)) / docker run --rm ... $(LYCHEEIMAGE) --config home/repo/.lychee.toml --root-dir /home/repo -v home/repo; .lychee.toml:1: include_fragments = true.
  • repro: docs/index.md, .lychee.toml, workflow run: lychee --config .lychee.toml ..
  • confidence: low

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 を短くまとめたダイジェスト。