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

Ouverte
#271 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
42/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
python

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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

Langage dominant
Python
Étoiles
4
Forks
1
Merge moyen
10 h 41 min
PR mergées (30 j)
79

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de cpp-best-practices/project_validator

Toutes les issues de cpp-best-practices/project_validator

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.