Skip to content

Incorporate API compatibility checks into CI #681

Closed
@joelanford

Description

@joelanford

When reviewing PRs and deciding on a release version, it would be helpful to know if branches of controller-runtime contain any breaking changes:

  • For PRs: the diff between master and the PR branch
  • For releases: the diff between the previous semver release tag and master

For the recent bumps for Kubernetes 1.15 and 1.16, we used a tool I wrote (go-apidiff) based on Go's experimental apidiff package that checks:

  • The backwards compatibility of controller-runtime itself.
  • The backwards compatibility of controller-runtime's dependency changes.

In it's current state, the tool is still a proof-of-concept and probably needs improvements. I haven't had a ton of time to keep up with this, so I'm opening this up to the community to ask for help improving it, finding/fixing bugs, and to potentially incorporate it into controller-runtime's CI to give reviewers a signal of breaking public API changes.

Metadata

Metadata

Assignees

Labels

kind/featureCategorizes issue or PR as related to a new feature.priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions