Skip to content

New tool: grater #1528

@mx-psi

Description

@mx-psi

Note

This issue relates to an LFX mentorship proposal for Term 01 - 2026 March - May, see cncf/mentoring/pull/1594

Overview

Maintenance of a stable Go library often involves value-judgement calls regarding what changes can impact downstream consumers. While some existing tooling like apidiff can go some way towards preventing breakage, these tools work purely in terms of API-level breakage such as changing the type of a symbol. Inspired by tooling in other language ecosystems such as Rust this proposal sets out to build a tool that can give statistical information about the impact of any change on downstream consumers by running the build pipelines and test suites of dependents before and after a particular change.

Once a minimum tool is available, the initial goal is to evaluate using this tool in the OpenTelemetry Collector and OpenTelemetry Go CI, starting just with the internal dependencies between each repository and its 'contrib' counterpart.

Tool design

The tool will have three subcommands:

  1. A subcommand for gathering the list of dependents of a module (by using e.g. pkg.go.dev, x/pkgsite: implement HTTP/MCP API for pkg.go.dev golang/go#76718 if available, index.golang.org or https://docs.deps.dev/api/v3alpha/#getdependents)
  2. A subcommand for securely running the test suite of a list of dependents of a module and generating an artifact describing the results
  3. A subcommand for comparing the results of two test suites and providing a statistical summary

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions