lighthouse-ci

Version Policy

Overview

LHCI follows semver on the 0.x.x track where breaking changes are not introduced in a patch version with the exception of critical security or stability patches. Because what constitutes a breaking change can be somewhat ambiguous, this document outlines what is considered a breaking change, the expected release cadence of breaking changes, and the responsibilities of the LHCI team in communicating breaking changes.

Communication

When a breaking change has been introduced, the relevant commit will contain a line of the form BREAKING CHANGE: brief description of the break. These breaking change descriptions will be compiled into the release notes of the next release.

Cadence

Breaking changes come from many sources within LHCI and have a much stricter definition than those in core Lighthouse. Accordingly, breaking change releases will be more frequent, but should also be less impactful on average. See the examples below for estimated frequency of each impact.

Example Breaking Changes

Change Impact Expected Frequency
New minimum Node version Moderate 1/year
Lighthouse minor version bump that introduces a new audit Low 3-6/year
Lighthouse major version bump Moderate 1-2/year
LHCI server API format change (removal of data) Moderate 1-2/year
LHCI server frontend URL format change High 1-2/year
Change in an assertion preset (stricter) High 1-2/year
Removal of a flag or option High 1-2/year
Change of the default value for a flag or option High 1-2/year

Example Non-Breaking Changes

Change Impact Expected Frequency
Lighthouse minor version bump that fixes bugs Low 3-6/year
Addition of a new flag or option Low 2-4/year
LHCI server API format change (addition of data) Low 1-2/year
LHCI server frontend design change Moderate 1-2/year
Change in an assertion preset (more lenient) Moderate 1-2/year
Fix of a critical security vulnerability High 0/year ;)
Fix of a fatal startup bug High 0/year ;)