From f61a443001e5167dd805c114213273faeacb869f Mon Sep 17 00:00:00 2001 From: Jon Skeet Date: Wed, 26 Jul 2023 12:33:55 +0100 Subject: [PATCH] Clarify scope of compatibility rules. --- aip/general/0180.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/aip/general/0180.md b/aip/general/0180.md index 82faad310f..a8039b09c3 100644 --- a/aip/general/0180.md +++ b/aip/general/0180.md @@ -44,6 +44,13 @@ There are three distinct types of compatibility to consider: buffers and JSON as transport formats. Other transport formats may have slightly different rules. +**Note:** This guidance assumes that APIs are intended to be called from a +range of consumers, written in multiple languages and with no control over +how and when consumers update. Any API which has a more limited scope (for +example, an API which is only called by client code written by the same team +as the API producer, or deployed in a way which can enforce updates) should +carefully consider its own compatibility requirements. + ### Adding components In general, new components (interfaces, methods, messages, fields, enums, or @@ -236,6 +243,7 @@ version. ## Changelog +- **2023-07-26**: Added note on APIs which have limited clients. - **2022-08-11**: Added "Moving components between files" section. - **2022-06-01**: Added more links to other AIPs with compatibility concerns - **2019-12-16**: Clarified that moving existing fields into oneofs is