120 <id>dacb98cc-b558-4f0e-942d-e12004e45606</id> |
120 <id>dacb98cc-b558-4f0e-942d-e12004e45606</id> |
121 <text>The branching model in the version control system should reflect the semantic versioning.</text> |
121 <text>The branching model in the version control system should reflect the semantic versioning.</text> |
122 <text>The released version e.g. 2.3.1 should be tagged as v2.3.1 and be placed in the v_2.3 branch.</text> |
122 <text>The released version e.g. 2.3.1 should be tagged as v2.3.1 and be placed in the v_2.3 branch.</text> |
123 <text>Where the v_2.3 branch was forked from the v_2 branch – from the v2.3 tag.</text> |
123 <text>Where the v_2.3 branch was forked from the v_2 branch – from the v2.3 tag.</text> |
124 </item> |
124 </item> |
125 </chapter> |
|
126 |
|
127 <chapter> |
|
128 <!-- TODO: rename this chapter? this is also compatibility „with others“ Or merge with previous one--> |
|
129 <name>Compatible with itself</name> |
|
130 <id>d626bb57-a20a-4182-a88a-446e901e9de4</id> |
|
131 <item> |
|
132 <id>a9852300-c59a-4bda-86a1-3a90d2ee1b74</id> |
|
133 <text>Focus on backward compatibility. Newer version should work as a drop-in replacement.</text> |
|
134 </item> |
|
135 <item> |
|
136 <id>f9b07d6c-da34-4971-8a92-a50b3e9f80ff</id> |
|
137 <text>Do not break things – rather postpone the release date than deliver a faulty product.</text> |
|
138 </item> |
|
139 <item> |
125 <item> |
140 <id>ae33d206-4988-44ec-b8e2-3120019fcf2f</id> |
126 <id>ae33d206-4988-44ec-b8e2-3120019fcf2f</id> |
141 <text>Do not remove features unless they are really obsolete, unused or unrepairably broken.</text> |
127 <text>Do not remove features unless they are really obsolete, unused or unrepairably broken.</text> |
142 </item> |
128 </item> |
143 <item> |
129 <item> |
144 <id>c542336a-fce8-412c-a8dd-1328c1a884ec</id> |
130 <id>c542336a-fce8-412c-a8dd-1328c1a884ec</id> |
145 <text>The user interface might be simplified or redesigned while preserving the features under the hood.</text> |
131 <text>The user interface might be simplified or redesigned while preserving the features under the hood.</text> |
146 </item> |
132 </item> |
147 <item> |
133 <item> |
148 <id>ba8fecf0-5c02-4fdf-abdc-2650d428f82a</id> |
134 <id>ba8fecf0-5c02-4fdf-abdc-2650d428f82a</id> |
149 <text>Incompatible changes must be planned and announced in advance. <!--Major/minor/patch numbers must be increased according to the Semantic versioning.--></text> |
135 <text>Incompatible changes must be planned and announced in advance.</text> |
150 </item> |
136 </item> |
151 <item> |
137 <item> |
152 <id>f4826891-e732-45e8-b929-25d1182fa141</id> |
138 <id>f4826891-e732-45e8-b929-25d1182fa141</id> |
153 <text>Upgrade scripts and upgrade documentation must be provided.</text> |
139 <text>Upgrade scripts and upgrade documentation must be provided.</text> |
154 </item> |
140 </item> |
155 </chapter> |
141 </chapter> |
156 |
142 |
157 <chapter> |
143 <chapter> |
158 <!-- TODO: rename this chapter to Interfaces? --> |
144 <name>Interfaces, formats and protocols</name> |
159 <name>Compatible with others</name> |
|
160 <id>d34ce339-197c-44ee-9e5c-6d7e212f8c10</id> |
145 <id>d34ce339-197c-44ee-9e5c-6d7e212f8c10</id> |
161 <item> |
146 <item> |
162 <id>be4c72d1-c494-4c44-aeb4-c5847f5a3524</id> |
147 <id>be4c72d1-c494-4c44-aeb4-c5847f5a3524</id> |
163 <text>use open standards (protocols, formats) if they exist</text> |
148 <text>Open standards (protocols, formats) should be used if they exist.</text> |
164 </item> |
149 </item> |
165 <item> |
150 <item> |
166 <id>b2202690-8a6c-467f-a2b1-b154f470aa77</id> |
151 <id>b2202690-8a6c-467f-a2b1-b154f470aa77</id> |
167 <text>never extend nor modify existing open protocol/format in the way which effectively creates a proprietary protocol/format</text> |
152 <text>Already existing open protocol/format must not be modified or extended in a way which effectively creates a proprietary protocol/format.</text> |
168 </item> |
153 </item> |
169 <item> |
154 <item> |
170 <id>dd206223-9525-4229-be2b-84b07c2b8244</id> |
155 <id>dd206223-9525-4229-be2b-84b07c2b8244</id> |
171 <text>define and publish own open standards if needed</text> |
156 <text>New open standards (specifications) should be defined and published if needed.</text> |
172 <item> |
157 <text>Such standards must be semantically versioned.</text> |
173 <id>f24d45b0-a07c-45d8-820e-63a3b95ba3f6</id> |
158 </item> |
174 <text>also standards must be semantically versioned</text> |
159 <item> |
175 </item> |
160 <id>d341b78e-15b9-4077-8b48-9e54c93391ac</id> |
176 <item> |
161 <text>And they should be written in machine readable format (e.g. WSDL, WADL, ASN.1, XSD, Diameter dictionary, D-Bus) or at least formal language (Backus–Naur Form, EBNF etc.)</text> |
177 <id>d341b78e-15b9-4077-8b48-9e54c93391ac</id> |
162 </item> |
178 <text>should be written in machine readable format (WSDL, WADL, ASN.1, XSD, Diameter dictionary, D-Bus etc.) or at least formal language (Backus–Naur Form, EBNF etc.)</text> |
163 <item> |
179 </item> |
164 <id>d61b3e31-bb9f-4333-87c8-9fb32f33a49d</id> |
180 <item> |
165 <text>Also configuration should have machine readable description and the user should be able to test it by executing a command (validator).</text> |
181 <id>d61b3e31-bb9f-4333-87c8-9fb32f33a49d</id> |
|
182 <text>also configuration should have machine readable description and should be testable by executing a command</text> |
|
183 </item> |
|
184 </item> |
166 </item> |
185 </chapter> |
167 </chapter> |
186 |
168 |
187 <chapter> |
169 <chapter> |
188 <name>Modular architecture</name> |
170 <name>Modular architecture</name> |