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

Offen
#271 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
42/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
python

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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

Vorherrschende Sprache
Python
Sterne
4
Forks
1
Ø Merge
10 Std. 41 Min.
Gemergte PRs (30 T.)
79

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus cpp-best-practices/project_validator

Alle Issues in cpp-best-practices/project_validator

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.