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

Aberta
#271 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
42/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
python

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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

Linguagem predominante
Python
Estrelas
4
Forks
1
Merge médio
10h 41min
PRs com merge (30d)
79

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de cpp-best-practices/project_validator

Todas as issues de cpp-best-practices/project_validator

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.