This document summarizes key workflows, build system details, and troubleshooting tips for working with the jaeger-idl repository.
The project uses a Makefile that heavily relies on Docker (specifically jaegertracing/protobuf) to ensure a consistent environment for generating code from Protobuf definitions.
make proto-all: Runs all generation targets.make proto-api-v3-openapi: Generates the OpenAPI v3 specification fromproto/api_v3.
- Generation: Uses
protoc-gen-openapi(Gnostic).- Flags used:
fq_schema_naming=true(avoids name collisions) andnaming=proto(preserves snake_case).
- Flags used:
- Pruning: Runs a custom Go tool
internal/tools/prune-openapi.- Removes unused schemas (e.g., transitively imported Gnostic types).
- Patches duplicate
operationIds (e.g.,QueryService_FindTraces->QueryService_FindTracesPost).
To effectively gather context from Pull Requests, especially for review comments:
Use the GitHub API with pagination to retrieve all comments in a raw JSON format. This is often more reliable than gh pr view for automated analysis.
gh api repos/:owner/:repo/pulls/:number/comments --paginate --jq '.[].body'Example:
gh api repos/jaegertracing/jaeger-idl/pulls/185/comments --paginate --jq '.[].body'For a quick overview of the PR description and status:
gh pr view :number