From e4ad28f398393130afe46ec4ff03410d197c2a89 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Mon, 28 Nov 2022 12:59:30 -0500 Subject: [PATCH] Formalize ".Internal" module convention Here we formalize the convention of using `.Internal` modules to provide potentially unstable interfaces. Addresses #8. --- v1.0/pvp-specification.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/v1.0/pvp-specification.md b/v1.0/pvp-specification.md index f915dd2..adb8f96 100644 --- a/v1.0/pvp-specification.md +++ b/v1.0/pvp-specification.md @@ -48,7 +48,10 @@ ordering of the components. For example, 2.0.1 \> 1.3.2, and 2.0.1.0 \> 2.0.1. version number. When a package is updated, the following rules govern how the version number must change relative to the previous version: -1. *Breaking change*. If any entity was removed, or the types of any entities +1. *Internal modules*. If a change only touches entities defined in modules +whose names include the string `.Internal` then *A.B* **MAY** remain unchanged. + +3. *Breaking change*. If any entity was removed, or the types of any entities or the definitions of datatypes or classes were changed, or orphan instances were added or any instances were removed, then the new *A.B* **MUST** be greater than the previous *A.B*. Note that modifying imports or depending on a