equal
deleted
inserted
replaced
23 <id>ca4d0f6c-9996-49ac-8647-b7f15b049b03</id> |
23 <id>ca4d0f6c-9996-49ac-8647-b7f15b049b03</id> |
24 <item> |
24 <item> |
25 <id>a755410b-6264-4094-b339-aeca55448e8d</id> |
25 <id>a755410b-6264-4094-b339-aeca55448e8d</id> |
26 <text>Every piece of Sane software is also Free software (as originally defined by Richard Stallman).</text> |
26 <text>Every piece of Sane software is also Free software (as originally defined by Richard Stallman).</text> |
27 <text>Which means that the user has freedom to</text> |
27 <text>Which means that the user has freedom to</text> |
28 <text>run the program for any purpose, </text> |
28 <text>run the program for any purpose,</text> |
29 <text>to study and change it (i.e. has access to the source code under a free software license) </text> |
29 <text>to study and change it (i.e. has access to the source code under a free software license)</text> |
30 <text>and to distribute modified or unmodified copies.</text> |
30 <text>and to distribute modified or unmodified copies.</text> |
31 <note>see https://www.gnu.org/philosophy/free-sw.html</note> |
31 <note>see https://www.gnu.org/philosophy/free-sw.html</note> |
32 <note>see https://www.gnu.org/philosophy/who-does-that-server-really-serve.html</note> |
32 <note>see https://www.gnu.org/philosophy/who-does-that-server-really-serve.html</note> |
33 </item> |
33 </item> |
34 <item> |
34 <item> |
59 </item> |
59 </item> |
60 <item> |
60 <item> |
61 <id>f39b90ae-0054-467e-a9e2-43379b7c2331</id> |
61 <id>f39b90ae-0054-467e-a9e2-43379b7c2331</id> |
62 <text>If the software is distributed with a hardware, the hardware must support instalation of independently built software without any restrictions or requirements (e.g. digital signature from the original author).</text> |
62 <text>If the software is distributed with a hardware, the hardware must support instalation of independently built software without any restrictions or requirements (e.g. digital signature from the original author).</text> |
63 </item> |
63 </item> |
64 |
|
65 </chapter> |
64 </chapter> |
66 |
65 |
67 <chapter> |
66 <chapter> |
68 <name>Documented</name> |
67 <name>Documented</name> |
69 <id>e1c828c5-0a4f-4948-9943-db1ae16a42d5</id> |
68 <id>e1c828c5-0a4f-4948-9943-db1ae16a42d5</id> |
89 </item> |
88 </item> |
90 <!-- |
89 <!-- |
91 <item><id></id><text>documentation should focus on all target groups: users, administrators, developers</text></item> |
90 <item><id></id><text>documentation should focus on all target groups: users, administrators, developers</text></item> |
92 <item><id></id><text>there must be a big picture and software architercure described</text></item> |
91 <item><id></id><text>there must be a big picture and software architercure described</text></item> |
93 --> |
92 --> |
94 |
|
95 |
|
96 </chapter> |
93 </chapter> |
97 |
94 |
98 <chapter> |
95 <chapter> |
99 <name>Semantic versioning</name> |
96 <name>Semantic versioning</name> |
100 <id>aa8bd952-842b-4391-aefe-d9b3750e432d</id> |
97 <id>aa8bd952-842b-4391-aefe-d9b3750e432d</id> |
123 <id>dacb98cc-b558-4f0e-942d-e12004e45606</id> |
120 <id>dacb98cc-b558-4f0e-942d-e12004e45606</id> |
124 <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> |
125 <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> |
126 <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> |
127 </item> |
124 </item> |
128 |
|
129 </chapter> |
125 </chapter> |
130 |
126 |
131 <chapter> |
127 <chapter> |
132 <!-- TODO: rename this chapter? this is also compatibility „with others“ Or merge with previous one--> |
128 <!-- TODO: rename this chapter? this is also compatibility „with others“ Or merge with previous one--> |
133 <name>Compatible with itself</name> |
129 <name>Compatible with itself</name> |
154 </item> |
150 </item> |
155 <item> |
151 <item> |
156 <id>f4826891-e732-45e8-b929-25d1182fa141</id> |
152 <id>f4826891-e732-45e8-b929-25d1182fa141</id> |
157 <text>Upgrade scripts and upgrade documentation must be provided.</text> |
153 <text>Upgrade scripts and upgrade documentation must be provided.</text> |
158 </item> |
154 </item> |
159 |
|
160 </chapter> |
155 </chapter> |
161 |
156 |
162 <chapter> |
157 <chapter> |
163 <!-- TODO: rename this chapter to Interfaces? --> |
158 <!-- TODO: rename this chapter to Interfaces? --> |
164 <name>Compatible with others</name> |
159 <name>Compatible with others</name> |
185 <item> |
180 <item> |
186 <id>d61b3e31-bb9f-4333-87c8-9fb32f33a49d</id> |
181 <id>d61b3e31-bb9f-4333-87c8-9fb32f33a49d</id> |
187 <text>also configuration should have machine readable description and should be testable by executing a command</text> |
182 <text>also configuration should have machine readable description and should be testable by executing a command</text> |
188 </item> |
183 </item> |
189 </item> |
184 </item> |
190 |
|
191 </chapter> |
185 </chapter> |
192 |
186 |
193 <chapter> |
187 <chapter> |
194 <name>Modular architecture</name> |
188 <name>Modular architecture</name> |
195 <id>c56e7e86-e480-4a5d-8a47-ab155dcd59b1</id> |
189 <id>c56e7e86-e480-4a5d-8a47-ab155dcd59b1</id> |
207 </item> |
201 </item> |
208 <item> |
202 <item> |
209 <id>ac722cec-0734-4d80-9885-d70a97b6402b</id> |
203 <id>ac722cec-0734-4d80-9885-d70a97b6402b</id> |
210 <text>whole system should be compilable (buildable) with only selected modules – must not require compilation or even distribution of all modules, if they are not necessary</text> |
204 <text>whole system should be compilable (buildable) with only selected modules – must not require compilation or even distribution of all modules, if they are not necessary</text> |
211 </item> |
205 </item> |
212 |
|
213 </chapter> |
206 </chapter> |
214 |
207 |
215 <chapter> |
208 <chapter> |
216 <name>Extensible</name> |
209 <name>Extensible</name> |
217 |
|
218 <id>d333af72-b5b5-432f-b564-a008d54a85d1</id> |
210 <id>d333af72-b5b5-432f-b564-a008d54a85d1</id> |
219 <item> |
211 <item> |
220 <id>a7bc51ba-9832-4f75-983c-e75dc0801113</id> |
212 <id>a7bc51ba-9832-4f75-983c-e75dc0801113</id> |
221 <text>able to be extended</text> |
213 <text>able to be extended</text> |
222 <item> |
214 <item> |
242 </item> |
234 </item> |
243 <item> |
235 <item> |
244 <id>e41134a4-715c-4926-a7df-01ff3759eda1</id> |
236 <id>e41134a4-715c-4926-a7df-01ff3759eda1</id> |
245 <text>there should be public directory of extensions/scripts</text> |
237 <text>there should be public directory of extensions/scripts</text> |
246 </item> |
238 </item> |
247 |
|
248 </chapter> |
239 </chapter> |
249 |
240 |
250 <chapter> |
241 <chapter> |
251 <name>Testable</name> |
242 <name>Testable</name> |
252 <id>a0376231-d53e-45fd-826f-47148721de3d</id> |
243 <id>a0376231-d53e-45fd-826f-47148721de3d</id> |
264 </item> |
255 </item> |
265 <item> |
256 <item> |
266 <id>e85baeda-8fcb-42d1-bb53-d7386a941ae7</id> |
257 <id>e85baeda-8fcb-42d1-bb53-d7386a941ae7</id> |
267 <text>each external interface should contain procedure/function that does nothing important or heavy, is idempotent and returns simple response which proves that the interface (connection) is working (e.g. echo, print version, status or current time); if authentication and authorization mechanisms are present, there should be one procedure/function callable anonymously and one that requires authorization</text> |
258 <text>each external interface should contain procedure/function that does nothing important or heavy, is idempotent and returns simple response which proves that the interface (connection) is working (e.g. echo, print version, status or current time); if authentication and authorization mechanisms are present, there should be one procedure/function callable anonymously and one that requires authorization</text> |
268 </item> |
259 </item> |
269 |
|
270 </chapter> |
260 </chapter> |
271 |
261 |
272 <chapter> |
262 <chapter> |
273 <name>Safe code and sustainability</name> |
263 <name>Safe code and sustainability</name> |
274 <id>f3afbaf2-0933-43d2-aed0-8dc568b9429f</id> |
264 <id>f3afbaf2-0933-43d2-aed0-8dc568b9429f</id> |
294 </item> |
284 </item> |
295 <item> |
285 <item> |
296 <id>b9345a0e-c672-45d3-b93b-8d0fb4ece8b3</id> |
286 <id>b9345a0e-c672-45d3-b93b-8d0fb4ece8b3</id> |
297 <text>fail fast – errors in the code should be reported during build time or at least on first execution – do not silently continue if given error would lead to failure later in another part of the code – bad weak coupling leads to difficult debugging</text> |
287 <text>fail fast – errors in the code should be reported during build time or at least on first execution – do not silently continue if given error would lead to failure later in another part of the code – bad weak coupling leads to difficult debugging</text> |
298 </item> |
288 </item> |
299 |
|
300 </chapter> |
289 </chapter> |
301 |
290 |
302 <chapter> |
291 <chapter> |
303 <name>Small code footprint</name> |
292 <name>Small code footprint</name> |
304 <id>ba8fbf3a-9254-4dd8-bb77-b0cd4907c6aa</id> |
293 <id>ba8fbf3a-9254-4dd8-bb77-b0cd4907c6aa</id> |
312 </item> |
301 </item> |
313 <item> |
302 <item> |
314 <id>b07fe0f0-2be7-4c1c-9b19-b671269c5e58</id> |
303 <id>b07fe0f0-2be7-4c1c-9b19-b671269c5e58</id> |
315 <text>use code generators (during build process, not to generate code to be manually edited and versioned)</text> |
304 <text>use code generators (during build process, not to generate code to be manually edited and versioned)</text> |
316 </item> |
305 </item> |
317 |
|
318 </chapter> |
306 </chapter> |
319 |
307 |
320 <chapter> |
308 <chapter> |
321 <name>Sane dependencies</name> |
309 <name>Sane dependencies</name> |
322 <id>afd8f6c7-8dac-4a83-a101-64f017ec7ada</id> |
310 <id>afd8f6c7-8dac-4a83-a101-64f017ec7ada</id> |
359 <item> |
347 <item> |
360 <id>c5974dcd-4855-40c5-ad22-894c128ca1dc</id> |
348 <id>c5974dcd-4855-40c5-ad22-894c128ca1dc</id> |
361 <text>from the whole system point-of-view, Bootstrappable builds should be taken into account</text> |
349 <text>from the whole system point-of-view, Bootstrappable builds should be taken into account</text> |
362 <note>see http://bootstrappable.org/</note> |
350 <note>see http://bootstrappable.org/</note> |
363 </item> |
351 </item> |
364 |
|
365 </chapter> |
352 </chapter> |
366 |
353 |
367 <chapter> |
354 <chapter> |
368 <name>Easily auditable</name> |
355 <name>Easily auditable</name> |
369 <id>fb0c484b-d97a-4cb4-9b8f-04d386ef0f54</id> |
356 <id>fb0c484b-d97a-4cb4-9b8f-04d386ef0f54</id> |
377 </item> |
364 </item> |
378 <item> |
365 <item> |
379 <id>e4db77b8-f145-4e43-bf8b-eb775b9352c8</id> |
366 <id>e4db77b8-f145-4e43-bf8b-eb775b9352c8</id> |
380 <text>refactoring/reformatting changesets should be separated from substantive changes</text> |
367 <text>refactoring/reformatting changesets should be separated from substantive changes</text> |
381 </item> |
368 </item> |
382 |
|
383 </chapter> |
369 </chapter> |
384 |
370 |
385 <chapter> |
371 <chapter> |
386 <name>Reproducible builds</name> |
372 <name>Reproducible builds</name> |
387 <id>da6436f7-c352-4d52-915b-02d0d1880e40</id> |
373 <id>da6436f7-c352-4d52-915b-02d0d1880e40</id> |
391 </item> |
377 </item> |
392 <item> |
378 <item> |
393 <id>a3b0c164-4dde-4e33-b3be-5478d2a187e2</id> |
379 <id>a3b0c164-4dde-4e33-b3be-5478d2a187e2</id> |
394 <text>if not, it should be documented, why and how build products mihgt differ, and there should be plan/task to make it reproducible</text> |
380 <text>if not, it should be documented, why and how build products mihgt differ, and there should be plan/task to make it reproducible</text> |
395 </item> |
381 </item> |
396 |
|
397 </chapter> |
382 </chapter> |
398 |
383 |
399 <chapter> |
384 <chapter> |
400 <name>Trustworthy packages and sources</name> |
385 <name>Trustworthy packages and sources</name> |
401 <id>e7ded437-aaa2-475a-9754-0b2d89394b24</id> |
386 <id>e7ded437-aaa2-475a-9754-0b2d89394b24</id> |
411 <id>ff33e209-0460-4a43-997f-d6b32b73997b</id> |
396 <id>ff33e209-0460-4a43-997f-d6b32b73997b</id> |
412 <text>if HTTP is supported, HTTPS should also be – the attacker/eavesdropper should not even know what software/package/update is downloaded by the user</text> |
397 <text>if HTTP is supported, HTTPS should also be – the attacker/eavesdropper should not even know what software/package/update is downloaded by the user</text> |
413 </item> |
398 </item> |
414 <item> |
399 <item> |
415 <id>c1f83b3a-e564-4483-91de-9c08723efd13</id> |
400 <id>c1f83b3a-e564-4483-91de-9c08723efd13</id> |
416 <text>the attacker should not be able to suppress updates – the program must not be silent in such case and must warn the user that something possibly nasty and dangerous is happening </text> |
401 <text>the attacker should not be able to suppress updates – the program must not be silent in such case and must warn the user that something possibly nasty and dangerous is happening</text> |
417 </item> |
402 </item> |
418 <item> |
403 <item> |
419 <id>c6a755c9-a54e-4ffb-8f70-bfbd851b93c5</id> |
404 <id>c6a755c9-a54e-4ffb-8f70-bfbd851b93c5</id> |
420 <text>releases should be downloadable also (or exclusively) over BitTorrent or other P2P network</text> |
405 <text>releases should be downloadable also (or exclusively) over BitTorrent or other P2P network</text> |
421 </item> |
406 </item> |
422 <item> |
407 <item> |
423 <id>f9275c3c-2b09-4aec-ac28-76ff827d52ce</id> |
408 <id>f9275c3c-2b09-4aec-ac28-76ff827d52ce</id> |
424 <text>source code repository must be accessible through an encrypted connection</text> |
409 <text>source code repository must be accessible through an encrypted connection</text> |
425 </item> |
410 </item> |
426 |
|
427 </chapter> |
411 </chapter> |
428 |
412 |
429 <chapter> |
413 <chapter> |
430 <name>Network interactions</name> |
414 <name>Network interactions</name> |
431 <id>d3edb71b-8668-4290-a669-19694956e3aa</id> |
415 <id>d3edb71b-8668-4290-a669-19694956e3aa</id> |
443 </item> |
427 </item> |
444 <item> |
428 <item> |
445 <id>f55c2ebd-c3ba-44f7-ae92-06f679780ec7</id> |
429 <id>f55c2ebd-c3ba-44f7-ae92-06f679780ec7</id> |
446 <text>if any network connection is used, it must be cryptographically secured against MITM attacks</text> |
430 <text>if any network connection is used, it must be cryptographically secured against MITM attacks</text> |
447 </item> |
431 </item> |
448 |
|
449 </chapter> |
432 </chapter> |
450 |
433 |
451 <chapter> |
434 <chapter> |
452 <name>Localized/internationalized</name> |
435 <name>Localized/internationalized</name> |
453 <id>fa655b7c-f22d-4b98-ab7b-c0d0f608aad8</id> |
436 <id>fa655b7c-f22d-4b98-ab7b-c0d0f608aad8</id> |
494 </item> |
477 </item> |
495 <item> |
478 <item> |
496 <id>ce45c382-6ec5-41e8-869a-a0e758621b13</id> |
479 <id>ce45c382-6ec5-41e8-869a-a0e758621b13</id> |
497 <text>the metric system should be used as default</text> |
480 <text>the metric system should be used as default</text> |
498 </item> |
481 </item> |
499 |
|
500 </chapter> |
482 </chapter> |
501 |
483 |
502 <chapter> |
484 <chapter> |
503 <name>Communication channels</name> |
485 <name>Communication channels</name> |
504 <id>a931dcbb-8043-4e21-838f-8e8122bb8af3</id> |
486 <id>a931dcbb-8043-4e21-838f-8e8122bb8af3</id> |
592 </item> |
574 </item> |
593 <item> |
575 <item> |
594 <id>b6cf8d5f-0fc9-46f7-8e38-8342a1229037</id> |
576 <id>b6cf8d5f-0fc9-46f7-8e38-8342a1229037</id> |
595 <text>every security incident must be clearly documented and investigated – do not obscure it</text> |
577 <text>every security incident must be clearly documented and investigated – do not obscure it</text> |
596 </item> |
578 </item> |
597 |
|
598 </chapter> |
579 </chapter> |
599 |
580 |
600 <chapter> |
581 <chapter> |
601 <name>Accept contributions</name> |
582 <name>Accept contributions</name> |
602 <id>eae0f528-a5ce-4809-a25d-9f9ab6311f3d</id> |
583 <id>eae0f528-a5ce-4809-a25d-9f9ab6311f3d</id> |
650 </item> |
631 </item> |
651 <item> |
632 <item> |
652 <id>b5a128a2-31d9-49df-890c-59a770f7afa9</id> |
633 <id>b5a128a2-31d9-49df-890c-59a770f7afa9</id> |
653 <text>the contributor must not loose the right to use or distribute the contributed code under any license (of his choice)</text> |
634 <text>the contributor must not loose the right to use or distribute the contributed code under any license (of his choice)</text> |
654 </item> |
635 </item> |
655 |
|
656 </chapter> |
636 </chapter> |
657 |
637 |
658 <chapter> |
638 <chapter> |
659 <name>Open development – has public:</name> |
639 <name>Open development – has public:</name> |
660 <id>b704bc25-d3c1-4481-98bf-54455c507f37</id> |
640 <id>b704bc25-d3c1-4481-98bf-54455c507f37</id> |
673 <item> |
653 <item> |
674 <id>ae430fee-4850-453f-9382-282d7eed27a4</id> |
654 <id>ae430fee-4850-453f-9382-282d7eed27a4</id> |
675 <text>plan of supported versions/branches</text> |
655 <text>plan of supported versions/branches</text> |
676 </item> |
656 </item> |
677 </chapter> |
657 </chapter> |
678 |
|
679 </manifesto> |
658 </manifesto> |