Skip to content

Commit 472093e

Browse files
eemeliaphillipsgithub-actions[bot]stasmmacchiati
authored
Add stability policy (#472)
* Add stability policy * Apply suggestions from code review * Apply suggestions from code review * Update spec/README.md Co-authored-by: Addison Phillips <[email protected]> * style: Apply Prettier * Update spec/README.md Co-authored-by: Stanisław Małolepszy <[email protected]> * Apply suggestions from code review Co-authored-by: Stanisław Małolepszy <[email protected]> * Add note about formatters potentially changing Co-authored-by: Mark Davis <[email protected]> * Update spec/README.md * style: Apply Prettier --------- Co-authored-by: Addison Phillips <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Stanisław Małolepszy <[email protected]> Co-authored-by: Mark Davis <[email protected]>
1 parent 989b9d3 commit 472093e

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

spec/README.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
1. [Introduction](#introduction)
66
1. [Conformance](#conformance)
77
1. [Terminology and Conventions](#terminology-and-conventions)
8+
1. [Stability Policy](#stability-policy)
89
1. [Syntax](syntax.md)
910
1. [Productions](syntax.md#productions)
1011
1. [Tokens](syntax.md#tokens)
@@ -66,3 +67,47 @@ A **_term_** looks like this when it is defined in this specification.
6667
A reference to a _term_ looks like this.
6768

6869
> Examples are non-normative and styled like this.
70+
71+
### Stability Policy
72+
73+
Updates to this specification MUST NOT change
74+
the syntactical meaning, the runtime output, or other behaviour
75+
of valid messages written for earlier versions of this specification
76+
that only use functions and expression attributes defined in this specification.
77+
Updates to this specification will not remove any syntax provided
78+
in this version. Future versions MAY add additional structure or meaning
79+
to existing syntax.
80+
81+
Updates to this specification will not remove any reserved keywords
82+
or sigils.
83+
84+
> Note: future versions may defined new keywords
85+
86+
Updates to this specification will not reserve or assign meaning to any
87+
character "sigils" except for those in the `reserved` production.
88+
89+
Updates to this specification will not remove any functions
90+
defined in the default registry nor will they remove any options
91+
or option values. Additional options or option values MAY be
92+
defined.
93+
94+
> [!NOTE]
95+
> This does not guarantee that the results of formatting will never change.
96+
> Even when the specification doesn't change,
97+
> the functions for date formatting, number formatting and so on
98+
> will change their results over time.
99+
100+
Updates to this specification MUST NOT introduce message syntax that,
101+
when parsed according to earlier versions of this specification,
102+
would produce syntax or data model errors.
103+
Such messages MAY produce errors when formatted
104+
according to an earlier version of this specification.
105+
106+
From version 2.0, MessageFormat will only reserve, define, or require
107+
function names or function option names
108+
consisting of characters in the ranges a-z, A-Z, and 0-9.
109+
All other names in these categories are reserved for the use of implementations or users.
110+
111+
> [!NOTE]
112+
> Users defining custom names SHOULD include at least one character outside these ranges
113+
> to ensure that they will be compatible with future versions of this specification.

0 commit comments

Comments
 (0)