DevConf.CZ

Upstream cross-project testing: Never break your API consumers
06-15, 13:10–13:25 (Europe/Prague), A113 | Lightning Talks (capacity 64)

If your software project offers any interface towards other consumers (library, CLI, or others), then regressions are especially awkward: When you get the bug reports, the damage happened weeks or months ago, the root cause is often not obvious, the context is gone from your head, the new version is already released upstream and into distributions, and your consumers have to waste a lot of time and add bad workarounds.

A better approach is to run your consumer’s tests right in your upstream project’s pull request (“reverse dependency testing”). This dramatically tightens the feedback cycle, makes regressions much easier to debug, avoids broken releases, and lets you do changes with much more confidence.

This can be done with tmt, packit and COPR services, and thus without having to maintain any custom infrastructure. Cockpit has successfully practiced this approach with SELinux, podman, and a few other projects for some months now. Let me convince you!

See also:
  • Cockpit developer @ RedHat since 2017
  • Debian/Ubuntu developer
  • CI addict