Glossary

Breaking Change

TL;DR

A breaking change is a modification to a software system that is not backwards compatible, meaning it can cause other components or applications relying on it to fail.


Concept

A breaking change is a modification to a software system that can cause other components or applications relying on it to fail. These changes are not backwards compatible, meaning they require consumers of the software to make corresponding changes to their own code to continue functioning correctly.

Key Aspects of Breaking Changes:

  1. Common Examples:

    • Modifying or deleting existing parts of an API, such as removing a function, changing a method signature, or altering a data structure.
    • Changing the behavior of an existing feature.
    • Altering configuration settings or database schemas.
    • Adding new mandatory requirements, like a required parameter for a function.
  2. Impact:

    • Breaking changes can cause significant disruptions for users and are generally avoided as much as possible.
    • They often require consumers of the software to invest time and resources to update their code.
  3. Mitigation:

    • Introducing new functionality alongside the old rather than replacing it outright.
    • Providing clear documentation and a migration path for users.
    • Using semantic versioning to signal breaking changes (e.g., a major version bump like 1.x to 2.0).