|
5 | 5 | 1. [Introduction](#introduction)
|
6 | 6 | 1. [Conformance](#conformance)
|
7 | 7 | 1. [Terminology and Conventions](#terminology-and-conventions)
|
| 8 | + 1. [Stability Policy](#stability-policy) |
8 | 9 | 1. [Syntax](syntax.md)
|
9 | 10 | 1. [Productions](syntax.md#productions)
|
10 | 11 | 1. [Tokens](syntax.md#tokens)
|
@@ -66,3 +67,47 @@ A **_term_** looks like this when it is defined in this specification.
|
66 | 67 | A reference to a _term_ looks like this.
|
67 | 68 |
|
68 | 69 | > 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