author | František Kučera <franta-hg@frantovo.cz> |
Wed, 08 May 2024 22:20:16 +0200 | |
branch | v_0 |
changeset 77 | 07cd1e608525 |
parent 76 | 3d1a196aab73 |
child 80 | b716698c82a0 |
permissions | -rw-r--r-- |
0
b0e72d76cccf
import of the sane-software-manifesto.txt (earlier draft, not versioned)
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
2 |
<!-- |
51
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
3 |
Sane software manifesto |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
4 |
Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info) |
10
a549e04e160e
Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
9
diff
changeset
|
5 |
|
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
6 |
This manifesto is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License. |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
7 |
https://creativecommons.org/licenses/by-nd/4.0/ |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
8 |
|
51
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
9 |
If distributed, official website of Sane software manifesto must be provided: https://sane-software.globalcode.info/ |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
10 |
--> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
11 |
<manifesto |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
12 |
xmlns="tag:globalcode.info,2019:sane-software/manifesto" |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
13 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
25
8da11cce2c98
add TXT output + change directory structure
František Kučera <franta-hg@frantovo.cz>
parents:
24
diff
changeset
|
14 |
xsi:schemaLocation="tag:globalcode.info,2019:sane-software/manifesto ../schema/ssm.xsd"> |
10
a549e04e160e
Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
9
diff
changeset
|
15 |
|
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
16 |
|
51
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
17 |
<title>Sane software manifesto</title> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
18 |
<id>fd466b50-6abd-4294-b11f-a5b8f2f39c2a</id> |
51
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
19 |
<url>https://sane-software.globalcode.info/</url> |
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
20 |
<author>František Kučera (Frantovo.cz, GlobalCode.info)</author> |
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
21 |
<license> |
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
22 |
<name>Creative Commons Attribution-NoDerivatives 4.0 International License</name> |
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
23 |
<abbreviation>CC-BY-ND</abbreviation> |
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
24 |
<url>https://sane-software.globalcode.info/license/CC-BY-ND-4.0.txt</url> |
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
25 |
<year>2019</year> |
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
26 |
<prefix>This manifesto is licensed under the </prefix> |
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
27 |
<suffix>.</suffix> |
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
28 |
</license> |
21dfb69028a0
name: Sane software manifesto (lower case)
František Kučera <franta-hg@frantovo.cz>
parents:
48
diff
changeset
|
29 |
|
48
904c1827bc38
preamble update – motivation
František Kučera <franta-hg@frantovo.cz>
parents:
47
diff
changeset
|
30 |
<preamble>In respect to user freedoms, privacy, liberty and software quality we create software according to the following guidelines. Developing Sane software is not easy, however we believe that this is the right way because this software is written once but used many times and maintained for years or decades.</preamble> |
10
a549e04e160e
Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
9
diff
changeset
|
31 |
|
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
32 |
<chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
33 |
<name>Free software</name> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
34 |
<id>ca4d0f6c-9996-49ac-8647-b7f15b049b03</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
35 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
36 |
<id>a755410b-6264-4094-b339-aeca55448e8d</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
37 |
<type>requirement</type> |
19
c28f759961c7
some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
38 |
<text>Every piece of Sane software is also Free software (as originally defined by Richard Stallman).</text> |
c28f759961c7
some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
39 |
<text>Which means that the user has freedom to</text> |
24
2cbf4c472a67
remove superfluous whitespace
František Kučera <franta-hg@frantovo.cz>
parents:
23
diff
changeset
|
40 |
<text>run the program for any purpose,</text> |
28
547569f6e675
add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents:
27
diff
changeset
|
41 |
<text>to study and change it (i.e. has access to the source code under a free software license)</text> |
19
c28f759961c7
some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
42 |
<text>and to distribute modified or unmodified copies.</text> |
42 | 43 |
<link> |
44 |
<url>https://www.gnu.org/philosophy/free-sw.html</url> |
|
45 |
<type>compatible</type> |
|
46 |
<title>What is free software? – The Free Software Definition</title> |
|
47 |
<quotation>“Free software” means software that respects users' freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”. We sometimes call it “libre software,” borrowing the French or Spanish word for “free” as in freedom, to show we do not mean the software is gratis.</quotation> |
|
48 |
<quotation>A program is free software if the program's users have the four essential freedoms: The freedom to run the program as you wish, for any purpose (freedom 0). The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this. The freedom to redistribute copies so you can help others (freedom 2). The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.</quotation> |
|
49 |
</link> |
|
50 |
<link> |
|
51 |
<url>https://www.gnu.org/philosophy/who-does-that-server-really-serve.html</url> |
|
52 |
<type>related</type> |
|
53 |
<title>Who does that server really serve?</title> |
|
54 |
<description>About Software as a Service (SaaS) and Service as a Software Substitute (SaaSS)</description> |
|
55 |
<quotation>On the Internet, proprietary software isn't the only way to lose your freedom. Service as a Software Substitute, or SaaSS, is another way to give someone else power over your computing.</quotation> |
|
56 |
</link> |
|
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
57 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
58 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
59 |
<id>b7cd1a50-79eb-4df2-925c-7243a46d5ed8</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
60 |
<type>information</type> |
19
c28f759961c7
some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
61 |
<text>The user controls his computer and software and owns the data. Not the author of the software or anyone else without user's explicit consent.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
62 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
63 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
64 |
<id>c78a9796-7862-4dd2-8ad9-3fdae094fe2c</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
65 |
<type>requirement</type> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
66 |
<text>Must be buildable using free software toolchain (like GNU/Linux + GCC or OpenJDK etc.).</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
67 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
68 |
<url>https://www.gnu.org/prep/maintain/maintain.html#Ethical-and-Philosophical-Consideration</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
69 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
70 |
<title>Information for Maintainers of GNU Software: Ethical and Philosophical Consideration</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
71 |
<quotation>A GNU package should not recommend use of any non-free program, nor should it require a non-free program (such as a non-free compiler or IDE) to build. Thus, a GNU package cannot be written in a programming language that does not have a free software implementation.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
72 |
<quotation>Now that GNU/Linux systems are widely available, all GNU packages should provide full functionality on a 100% free GNU/Linux system, and should not require any non-free software to build or function.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
73 |
<quotation>Similarly, a GNU package should not require the use of non-free software, including JavaScript, for the coordination of its development.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
74 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
75 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
76 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
77 |
<id>b3c0daaf-dcaf-49a8-ae38-40590456a315</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
78 |
<type>requirement</type> |
19
c28f759961c7
some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
79 |
<text>Must not promote non-free (proprietary) software or services.</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
80 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
81 |
<url>https://www.gnu.org/prep/standards/standards.html#References</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
82 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
83 |
<title>GNU Coding Standards: References to Non-Free Software and Documentation</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
84 |
<quotation>A GNU program should not recommend, promote, or grant legitimacy to the use of any non-free program. Proprietary software is a social and ethical problem, and our aim is to put an end to that problem. We can’t stop some people from writing proprietary programs, or stop other people from using them, but we can and should refuse to advertise them to new potential customers, or to give the public the idea that their existence is ethical.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
85 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
86 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
87 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
88 |
<id>b2fd5d2d-4d47-48e8-8abc-4b1aa94a7951</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
89 |
<type>recommendation</type> |
19
c28f759961c7
some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
90 |
<text>Copyleft licenses (like GNU GPL or GNU Affero GPL) are strongly recommended because they guarantee software freedoms to every single end-user and prevent possibility that freedom vanishes somewhere in the distribution chain and the user can not benefit from the free software albeit the software is build on originally free source code.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
91 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
92 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
93 |
<id>c3599313-338b-428d-885f-964a443d76c6</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
94 |
<type>requirement</type> |
23
ccbe2cf582bb
GNU GPLv3 compatibility is required
František Kučera <franta-hg@frantovo.cz>
parents:
22
diff
changeset
|
95 |
<text>The license must be compatible with GNU GPLv3 in order to allow mixing with the GPL code.</text> |
ccbe2cf582bb
GNU GPLv3 compatibility is required
František Kučera <franta-hg@frantovo.cz>
parents:
22
diff
changeset
|
96 |
<text>The only exception is older software (created before this manifesto i.e. 2019) which is unable to change the license</text> |
ccbe2cf582bb
GNU GPLv3 compatibility is required
František Kučera <franta-hg@frantovo.cz>
parents:
22
diff
changeset
|
97 |
<text>due to the copyright owned by many authors who can not be reached anymore and who can not provide approval with the license upgrade.</text> |
ccbe2cf582bb
GNU GPLv3 compatibility is required
František Kučera <franta-hg@frantovo.cz>
parents:
22
diff
changeset
|
98 |
<text>Such software is called „Sane with exception“.</text> |
ccbe2cf582bb
GNU GPLv3 compatibility is required
František Kučera <franta-hg@frantovo.cz>
parents:
22
diff
changeset
|
99 |
<!-- TODO: provide exact wording of the exception e.g. XYZ is „Sane software (with GPLv2 license exception)“ --> |
ccbe2cf582bb
GNU GPLv3 compatibility is required
František Kučera <franta-hg@frantovo.cz>
parents:
22
diff
changeset
|
100 |
<note>Software versioned under GPLv2+ or GPLv3+ is compatible with GPLv3.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
101 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
102 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
103 |
<id>f39b90ae-0054-467e-a9e2-43379b7c2331</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
104 |
<type>requirement</type> |
40 | 105 |
<text>If the software is distributed with a hardware, the hardware must support installation of independently built software without any restrictions or requirements (e.g. digital signature from the original author).</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
106 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
107 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
108 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
109 |
<chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
110 |
<name>Documented</name> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
111 |
<id>e1c828c5-0a4f-4948-9943-db1ae16a42d5</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
112 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
113 |
<id>c63ea2ac-c255-4f3e-a0e2-b49d1e145347</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
114 |
<type>requirement</type> |
28
547569f6e675
add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents:
27
diff
changeset
|
115 |
<text>At least basic documentation must be released under a free license (GNU FDL is recommended).</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
116 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
117 |
<url>https://www.gnu.org/prep/standards/standards.html#License-for-Manuals</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
118 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
119 |
<title>GNU Coding Standards: License for Manuals</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
120 |
<quotation>Please use the GNU Free Documentation License for all GNU manuals that are more than a few pages long.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
121 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
122 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
123 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
124 |
<id>fd8e3bbd-d46a-40fe-85a6-b902336456d4</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
125 |
<type>requirement</type> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
126 |
<text>Every advertised feature must be properly documented. Undocumented features can not be considered as features from the user/customer point-of-view.</text> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
127 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
128 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
129 |
<id>e4dede5b-059e-4e47-b03d-80142b8467f1</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
130 |
<type>information</type> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
131 |
<text>There might be also other documentation/books released under any license and price.</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
132 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
133 |
<url>https://www.gnu.org/prep/standards/standards.html#Reading-other-Manuals</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
134 |
<type>related</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
135 |
<title>GNU Coding Standards: Reading other Manuals</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
136 |
<quotation>There may be non-free books or documentation files that describe the program you are documenting.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
137 |
<quotation>It is ok to use these documents for reference, just as the author of a new algebra textbook can read other books on algebra.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
138 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
139 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
140 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
141 |
<id>c0df4d14-43f8-4b61-83c4-fb5896161aeb</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
142 |
<type>requirement</type> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
143 |
<text>But average software engineer must be able to build and operate the software with just the free (basic) documentation.</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
144 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
145 |
<url>https://www.gnu.org/prep/standards/standards.html#Configuration</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
146 |
<type>related</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
147 |
<title>GNU Coding Standards: How Configuration Should Work</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
148 |
<quotation>Each GNU distribution should come with a shell script named configure.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
149 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
150 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
151 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
152 |
<id>e6cd9c52-0e66-402c-930c-901fa66acd22</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
153 |
<type>requirement</type> |
28
547569f6e675
add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents:
27
diff
changeset
|
154 |
<text>There must be a free documentation with description of building and running the software on a fresh operating system installation including description of all dependencies.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
155 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
156 |
<!-- |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
157 |
TODO: documentation target groups and big picture: |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
158 |
<item><id></id><text>documentation should focus on all target groups: users, administrators, developers</text></item> |
28
547569f6e675
add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents:
27
diff
changeset
|
159 |
<item><id></id><text>there must be a big picture and software architercure described</text></item> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
160 |
--> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
161 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
162 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
163 |
<chapter> |
27
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
164 |
<name>Semantic versioning and upgrades</name> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
165 |
<id>aa8bd952-842b-4391-aefe-d9b3750e432d</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
166 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
167 |
<id>a8beddfc-11e3-4012-9f88-f79dc88eee16</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
168 |
<type>requirement</type> |
22
893043da854c
Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents:
19
diff
changeset
|
169 |
<text>Semantic versioning is required.</text> |
57 | 170 |
<text>The version number consists of three numbers: major.minor.patch.</text> |
22
893043da854c
Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents:
19
diff
changeset
|
171 |
<text>Major version is incremented if there is an incompatible change.</text> |
28
547569f6e675
add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents:
27
diff
changeset
|
172 |
<text>Minor version is incremented if a feature is added in a compatible way.</text> |
547569f6e675
add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents:
27
diff
changeset
|
173 |
<text>Patch version is incremented if a bug is fixed in a compatible way.</text> |
22
893043da854c
Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents:
19
diff
changeset
|
174 |
<note>If authors are unable to distinguish between compatible and incompatible changes, they must always increment the major version. However this approach is not recommeded</note> |
893043da854c
Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents:
19
diff
changeset
|
175 |
<note>Propper Semantic versioning is especially important if the software is suposed to be used as dependency by others.</note> |
28
547569f6e675
add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents:
27
diff
changeset
|
176 |
<note>If there is a need of some marketing or cool versioning/codenames like Ultrasonic Umbrella or 2016, they should be used in addition to semantic versioning, not instead of it.</note> |
42 | 177 |
<link> |
178 |
<url>http://semver.org/</url> |
|
179 |
<type>compatible</type> |
|
180 |
<title>Semantic Versioning</title> |
|
181 |
</link> |
|
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
182 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
183 |
<url>https://www.gnu.org/prep/standards/standards.html#Releases</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
184 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
185 |
<title>GNU Coding Standards: Making Releases</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
186 |
<quotation>You should identify each release with a pair of version numbers, a major version and a minor. We have no objection to using more than two numbers</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
187 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
188 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
189 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
190 |
<id>cf557a11-b307-4c2f-a7b5-5d2485d23258</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
191 |
<type>requirement</type> |
28
547569f6e675
add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents:
27
diff
changeset
|
192 |
<text>Once publicly released, the package must not be changed anymore – if a change (even a small fix) is needed, new version number must be assigned.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
193 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
194 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
195 |
<id>dd013325-bf22-43d3-9579-0e272e2ac344</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
196 |
<type>information</type> |
40 | 197 |
<text>APIs, file formats and protocols might (and usually should) be semantically versioned independently from the implementation.</text> |
28
547569f6e675
add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents:
27
diff
changeset
|
198 |
<note>In such case, there should be a table documenting which API/format/protocol version matches which implementation version.</note> |
22
893043da854c
Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents:
19
diff
changeset
|
199 |
</item> |
893043da854c
Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents:
19
diff
changeset
|
200 |
<item> |
893043da854c
Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents:
19
diff
changeset
|
201 |
<id>dacb98cc-b558-4f0e-942d-e12004e45606</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
202 |
<type>recommendation</type> |
22
893043da854c
Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents:
19
diff
changeset
|
203 |
<text>The branching model in the version control system should reflect the semantic versioning.</text> |
893043da854c
Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents:
19
diff
changeset
|
204 |
<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> |
893043da854c
Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents:
19
diff
changeset
|
205 |
<text>Where the v_2.3 branch was forked from the v_2 branch – from the v2.3 tag.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
206 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
207 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
208 |
<id>ae33d206-4988-44ec-b8e2-3120019fcf2f</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
209 |
<type>recommendation</type> |
40 | 210 |
<text>Do not remove features unless they are really obsolete, unused or irreparably broken.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
211 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
212 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
213 |
<id>c542336a-fce8-412c-a8dd-1328c1a884ec</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
214 |
<type>information</type> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
215 |
<text>The user interface might be simplified or redesigned while preserving the features under the hood.</text> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
216 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
217 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
218 |
<id>ba8fecf0-5c02-4fdf-abdc-2650d428f82a</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
219 |
<type>requirement</type> |
27
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
220 |
<text>Incompatible changes must be planned and announced in advance.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
221 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
222 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
223 |
<id>f4826891-e732-45e8-b929-25d1182fa141</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
224 |
<type>requirement</type> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
225 |
<text>Upgrade scripts and upgrade documentation must be provided.</text> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
226 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
227 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
228 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
229 |
<chapter> |
74
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
230 |
<name>Names and identifiers</name> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
231 |
<id>a416d88d-6a8f-4219-85f4-367a89396da9</id> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
232 |
<item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
233 |
<id>b231cf73-6509-45d4-96c4-79060bf4f7bd</id> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
234 |
<type>recommendation</type> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
235 |
<text>The name of the product and its significant parts should be reasonably unique, so it can be found using full-text search or other standard methods.</text> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
236 |
<note>Significant part is e.g. a protocol, a file format or a CLI command.</note> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
237 |
<note>Global uniqueness is not necessary – such name is not a unique identifier. Collisions cannot be completely avoided, but we should make reasonable efforts to prevent them.</note> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
238 |
<item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
239 |
<id>ebb8c013-a309-486d-b17b-04a73dd57969</id> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
240 |
<type>recommendation</type> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
241 |
<text>Avoid generic words like common verbs, nouns or adjectives.</text> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
242 |
</item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
243 |
<item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
244 |
<id>d923f626-5fd9-4e6d-8f16-af9711ac6e2e</id> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
245 |
<type>recommendation</type> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
246 |
<text>Avoid name collisions with well known and used software.</text> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
247 |
</item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
248 |
<item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
249 |
<id>fc3fab39-dfaa-4b90-b51d-11e6b9bf3f2f</id> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
250 |
<type>recommendation</type> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
251 |
<text>Use company or organization name as part of the name if the name itself would be too generic (e.g. „Speed“ is wrong while „SaneCorp Speed“ is right).</text> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
252 |
</item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
253 |
</item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
254 |
<item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
255 |
<id>d71ec208-7657-4914-a00e-d9008c8d7138</id> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
256 |
<type>recommendation</type> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
257 |
<text>For globally unique identifiers, the URI format is recommended.</text> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
258 |
<item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
259 |
<id>a60448ba-451d-4176-a3ef-fa537698dbc2</id> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
260 |
<type>information</type> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
261 |
<text>Besides the uniqueness, the most important feature of it is immutability and stability.</text> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
262 |
</item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
263 |
<item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
264 |
<id>fea4993c-7405-4755-b66a-68cd1f57637b</id> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
265 |
<type>information</type> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
266 |
<text>Identifiers can be derived from an internet domain, an OID or PEN number etc.</text> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
267 |
</item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
268 |
<item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
269 |
<id>eb3bb5fa-a99e-4ffa-b27f-2f024e43f3eb</id> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
270 |
<type>recommendation</type> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
271 |
<text>When deriving from internet domains use the tag URI scheme to create timeless identifiers that are not affected by the changes in domain ownership.</text> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
272 |
</item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
273 |
<item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
274 |
<id>aa0554cf-0cac-47c2-8075-54a84cb20e74</id> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
275 |
<type>recommendation</type> |
76 | 276 |
<text>Use randomly generated identifiers when full decentralization is desired. These identifiers might be just random (e.g. UUID version 4) or derived from a public key (e.g. an SSH key or a Tor address) or a hash of some (secret) data.</text> |
74
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
277 |
<note>When public key or a hash of secret data is used, then ownership of the name or namespace can be reliably proved.</note> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
278 |
<note>Random identifiers must be picked from a sufficiently large space where we can assume that collisions are effectively eliminated.</note> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
279 |
</item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
280 |
</item> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
281 |
</chapter> |
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
282 |
|
ae9effae2857
new chapter: „Names and identifiers“
František Kučera <franta-hg@frantovo.cz>
parents:
73
diff
changeset
|
283 |
<chapter> |
27
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
284 |
<name>Interfaces, formats and protocols</name> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
285 |
<id>d34ce339-197c-44ee-9e5c-6d7e212f8c10</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
286 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
287 |
<id>be4c72d1-c494-4c44-aeb4-c5847f5a3524</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
288 |
<type>recommendation</type> |
27
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
289 |
<text>Open standards (protocols, formats) should be used if they exist.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
290 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
291 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
292 |
<id>b2202690-8a6c-467f-a2b1-b154f470aa77</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
293 |
<type>requirement</type> |
28
547569f6e675
add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents:
27
diff
changeset
|
294 |
<text>Already existing open protocol/format must not be modified or extended in a way which effectively creates a proprietary protocol/format.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
295 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
296 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
297 |
<id>dd206223-9525-4229-be2b-84b07c2b8244</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
298 |
<type>information</type> |
27
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
299 |
<text>New open standards (specifications) should be defined and published if needed.</text> |
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
300 |
<text>Such standards must be semantically versioned.</text> |
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
301 |
</item> |
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
302 |
<item> |
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
303 |
<id>d341b78e-15b9-4077-8b48-9e54c93391ac</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
304 |
<type>recommendation</type> |
75
d33d6267c9d2
machine readable format: written → described
František Kučera <franta-hg@frantovo.cz>
parents:
74
diff
changeset
|
305 |
<text>And they should be described using a machine-readable format (e.g. WSDL, ASN.1, XML Schema, Diameter dictionary, D-Bus) or at least formal language (Backus–Naur Form, EBNF etc.)</text> |
27
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
306 |
</item> |
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
307 |
<item> |
413a00a9cde7
merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents:
25
diff
changeset
|
308 |
<id>d61b3e31-bb9f-4333-87c8-9fb32f33a49d</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
309 |
<type>recommendation</type> |
75
d33d6267c9d2
machine readable format: written → described
František Kučera <franta-hg@frantovo.cz>
parents:
74
diff
changeset
|
310 |
<text>Also configuration should have machine-readable description and the user should be able to test it by executing a command (validator).</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
311 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
312 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
313 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
314 |
<chapter> |
31
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
315 |
<name>Modular architecture and extensibility</name> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
316 |
<id>c56e7e86-e480-4a5d-8a47-ab155dcd59b1</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
317 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
318 |
<id>e50424e8-94f3-48aa-bf01-0ba984eb2349</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
319 |
<type>requirement</type> |
31
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
320 |
<text>Larger and multi-purpose software must be divided into smaller modules.</text> |
59
7a27e64cee67
link to the Modularity Manifesto (NetBeans)
František Kučera <franta-hg@frantovo.cz>
parents:
58
diff
changeset
|
321 |
<link> |
7a27e64cee67
link to the Modularity Manifesto (NetBeans)
František Kučera <franta-hg@frantovo.cz>
parents:
58
diff
changeset
|
322 |
<url>http://wiki.apidesign.org/wiki/NetBeans_Runtime_Container#Modularity_Manifesto</url> |
7a27e64cee67
link to the Modularity Manifesto (NetBeans)
František Kučera <franta-hg@frantovo.cz>
parents:
58
diff
changeset
|
323 |
<type>compatible</type> |
7a27e64cee67
link to the Modularity Manifesto (NetBeans)
František Kučera <franta-hg@frantovo.cz>
parents:
58
diff
changeset
|
324 |
<title>Modularity Manifesto</title> |
7a27e64cee67
link to the Modularity Manifesto (NetBeans)
František Kučera <franta-hg@frantovo.cz>
parents:
58
diff
changeset
|
325 |
<quotation>Splitting application into modules can greatly improve the design. It is not hard to guess that a monolithic piece of code where every line in any source code can access any other source file is much more interconnected and unreadable than a code which introduces many modules and allows such uncontrolled calls to happen just inside the module.</quotation> |
7a27e64cee67
link to the Modularity Manifesto (NetBeans)
František Kučera <franta-hg@frantovo.cz>
parents:
58
diff
changeset
|
326 |
<quotation>Modularity would give systems clearer design, control of dependencies between modules and give developers more flexibility in maintanence. Think about it when starting any new project - nevertheless big it is, do it in modular way. It is going to be big plus for the architecture of the whole application as it grows from its child days.</quotation> |
7a27e64cee67
link to the Modularity Manifesto (NetBeans)
František Kučera <franta-hg@frantovo.cz>
parents:
58
diff
changeset
|
327 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
328 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
329 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
330 |
<id>e752efae-75c9-4620-aa14-65c4949a3609</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
331 |
<type>requirement</type> |
31
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
332 |
<text>The modules must have defined dependencies (less = better).</text> |
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
333 |
<note>Dependencies needed to write an extension/module (i.e. header files, API classes/interfaces) should be as small as possible (do not require large codebase to write a mere plug-in).</note> |
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
334 |
<note>The required dependency should contain just interfaces (method/function signatures) and data structures but no implementation (executable code).</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
335 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
336 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
337 |
<id>e9988ed0-d686-41a0-9f1e-3243ac5235d5</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
338 |
<type>recommendation</type> |
31
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
339 |
<text>Particular modules should be compilable and executable (installable) independently.</text> |
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
340 |
<text>It should not be necessary to recompile the core and other modules if only one module is changed.</text> |
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
341 |
<note>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.</note> |
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
342 |
<note>The goal is to reduce the complexity and the code footprint that comes into the play if the user needs only certain features.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
343 |
</item> |
60
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
344 |
<!-- |
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
345 |
TODO: the package name and the version number should serve as a unique identifier for a set of features. |
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
346 |
If there are any build-time options/parameters, they could tune the intarnal details of the package/module, or choose some alternative dependency (like cryptography library A vs. cryptography library B), |
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
347 |
but the public interface and publicly provided features (the contract) should stay unchanged. |
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
348 |
--> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
349 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
350 |
<id>a7bc51ba-9832-4f75-983c-e75dc0801113</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
351 |
<type>information</type> |
31
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
352 |
<text>Another good ways to extend and customize the software are:</text> |
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
353 |
<text>configuration (XML, INI, RegExp, SQL, XSLT, XPath etc.) and</text> |
73
ee9683c59746
Guile → Scheme + fix some typo
František Kučera <franta-hg@frantovo.cz>
parents:
70
diff
changeset
|
354 |
<text>scripting (Scheme, Bash, Python, Lua, ECMA Script etc.)</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
355 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
356 |
<url>https://www.gnu.org/prep/standards/standards.html#Source-Language</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
357 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
358 |
<title>GNU Coding Standards: Which Languages to Use</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
359 |
<quotation>The more GNU components use Guile and Scheme, the more users are able to extend and combine them</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
360 |
<quotation>Many programs are designed to be extensible: they include an interpreter for a language that is higher level than C. Often much of the program is written in that language, too. The Emacs editor pioneered this technique.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
361 |
<quotation>The standard extensibility interpreter for GNU software is Guile, which implements the language Scheme (an especially clean and simple dialect of Lisp).</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
362 |
</link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
363 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
364 |
<url>https://www.gnu.org/software/guile/</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
365 |
<type>related</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
366 |
<title>GNU Guile</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
367 |
<description>GNU implementation of the Scheme language (which is a dialect of Lisp).</description> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
368 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
369 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
370 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
371 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
372 |
<chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
373 |
<name>Testable</name> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
374 |
<id>a0376231-d53e-45fd-826f-47148721de3d</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
375 |
<item> |
48
904c1827bc38
preamble update – motivation
František Kučera <franta-hg@frantovo.cz>
parents:
47
diff
changeset
|
376 |
<id>d99a69a5-2572-4517-a775-b69d036ad79c</id> |
904c1827bc38
preamble update – motivation
František Kučera <franta-hg@frantovo.cz>
parents:
47
diff
changeset
|
377 |
<type>information</type> |
904c1827bc38
preamble update – motivation
František Kučera <franta-hg@frantovo.cz>
parents:
47
diff
changeset
|
378 |
<text>Tests verify the compliance of the implementation with the documentation or specification.</text> |
904c1827bc38
preamble update – motivation
František Kučera <franta-hg@frantovo.cz>
parents:
47
diff
changeset
|
379 |
</item> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
380 |
<!-- TODO: the software should be structured in a way which facilitates writing tests – e.g. separate the UI from the core and allow calling the core functions from the tests – which has also other positive side effects --> |
48
904c1827bc38
preamble update – motivation
František Kučera <franta-hg@frantovo.cz>
parents:
47
diff
changeset
|
381 |
<item> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
382 |
<id>d95dc118-7473-4f18-8b9e-35830a87b269</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
383 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
384 |
<text>There should be automated build-time complex tests for the package. The test feeds the program with sample input and verifies expected output.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
385 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
386 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
387 |
<id>a9f6725d-ddf1-41ee-96b4-15f3b851cb50</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
388 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
389 |
<text>There should be also automated runtime/postinstall tests – in order to verify that software was installed properly, all required dependencies are met and basic function is guaranteed – the program should report problem during its start (as a warning if it is not fatal), instead of unexpected failures during operation.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
390 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
391 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
392 |
<id>d610c04b-cc44-48c7-b069-f41b90bdef0f</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
393 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
394 |
<text>Unit tests are recommended for code parts that are internally complex (algorithms, important business logic) and have simple interfaces.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
395 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
396 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
397 |
<id>e85baeda-8fcb-42d1-bb53-d7386a941ae7</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
398 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
399 |
<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> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
400 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
401 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
402 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
403 |
<chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
404 |
<name>Safe code and sustainability</name> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
405 |
<id>f3afbaf2-0933-43d2-aed0-8dc568b9429f</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
406 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
407 |
<id>a96206c9-3e69-483d-b575-6bab9dec4a30</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
408 |
<type>requirement</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
409 |
<text>Correctness, safety and readability is preferred to performance.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
410 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
411 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
412 |
<id>d8eba0dd-4305-44b9-80ea-4c38b6dfa633</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
413 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
414 |
<text>Strong data typing should be used, preconditions and possible exceptions should be declared in the interface and they are part of the contract.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
415 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
416 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
417 |
<id>ebea0c16-f820-444d-a73c-3054ca6a38c8</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
418 |
<type>requirement</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
419 |
<text>Data structures must be known and well documented. Do not use e.g. undocumented map keys or properties.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
420 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
421 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
422 |
<id>e24e600e-6542-4664-8cf0-2d8c6feb6c13</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
423 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
424 |
<text>Code, comments and specification should be written in the same natural language.</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
425 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
426 |
<url>https://www.gnu.org/prep/standards/standards.html#Comments</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
427 |
<type>related</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
428 |
<title>GNU Coding Standards: Commenting Your Work</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
429 |
<quotation>Please write the comments in a GNU program in English, because English is the one language that nearly all programmers in all countries can read.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
430 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
431 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
432 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
433 |
<id>fa92aa33-a69f-43b8-9051-9bfdcd3d293f</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
434 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
435 |
<text>There should be a dictionary of used terms, so whole team and also users and customers will speak the same language.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
436 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
437 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
438 |
<id>b9345a0e-c672-45d3-b93b-8d0fb4ece8b3</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
439 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
440 |
<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> |
66
6dff32230593
note on silent failures (full disk and data loss)
František Kučera <franta-hg@frantovo.cz>
parents:
65
diff
changeset
|
441 |
<note>Avoid silent failures: e.g. if the computer runs out of disk space and the text editor is unable to save the file, it should immediately report error and allow user to choose different destination instead of silently failing and leaving the file empty.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
442 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
443 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
444 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
445 |
<chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
446 |
<name>Small code footprint</name> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
447 |
<id>ba8fbf3a-9254-4dd8-bb77-b0cd4907c6aa</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
448 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
449 |
<id>f5389468-2f8a-43c8-884a-8df6bc844453</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
450 |
<type>recommendation</type> |
58
204f6466c03b
cyclomatic complexity, version control systems, resp.
František Kučera <franta-hg@frantovo.cz>
parents:
57
diff
changeset
|
451 |
<text>Less LOC (or cyclomatic complexity) = better.</text> |
204f6466c03b
cyclomatic complexity, version control systems, resp.
František Kučera <franta-hg@frantovo.cz>
parents:
57
diff
changeset
|
452 |
<note>Cyclomatic complexity is much better measure of the complexity than LOC (lines of code). But usually it is much easier to simply count lines and we can use it as a approximation.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
453 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
454 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
455 |
<id>b6b6c838-be6d-43d5-9f99-2098fa217c54</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
456 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
457 |
<text>Boilerplate and unused code should be reduced. Adequately high-level programming language or framework should be used.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
458 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
459 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
460 |
<id>b07fe0f0-2be7-4c1c-9b19-b671269c5e58</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
461 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
462 |
<text>Code generators should be used (during the build process, not to generate code to be manually edited and versioned).</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
463 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
464 |
<url>https://www.gnu.org/prep/standards/standards.html#Releases</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
465 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
466 |
<title>GNU Coding Standards: Making Releases</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
467 |
<quotation>Building and installing the program should never modify any of the files contained in the distribution. This means that all the files that form part of the program in any way must be classified into source files and non-source files. Source files are written by humans and never changed automatically; non-source files are produced from source files by programs under the control of the Makefile.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
468 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
469 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
470 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
471 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
472 |
<chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
473 |
<name>Sane dependencies</name> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
474 |
<id>afd8f6c7-8dac-4a83-a101-64f017ec7ada</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
475 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
476 |
<id>c2d5a677-a721-40e3-b560-73afe76fe2b0</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
477 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
478 |
<text>Avoid NIH syndrome and reuse code but also avoid dependency hell.</text> |
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
479 |
<text>Complexity is defined by the complexity of the program itself + complexity of its dependencies.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
480 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
481 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
482 |
<id>d214987c-881c-450b-8544-82141866f541</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
483 |
<type>requirement</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
484 |
<text>Know your dependencies, know why they are required.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
485 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
486 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
487 |
<id>cbeb9a6b-7b64-4452-8caf-246c082a853d</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
488 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
489 |
<text>Depend on small and useful libraries – not on bulky application packages or libraries with large transitive dependencies.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
490 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
491 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
492 |
<id>cbaf55be-8ffb-4109-9c83-083d1b3e793a</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
493 |
<type>requirement</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
494 |
<text>If dependency on bulky application package is inevitable, add a layer of abstraction – create a generic interface and connector and allow others to replace the bulky package with their own sane implementation.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
495 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
496 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
497 |
<id>d7655989-a5e4-4123-9147-3782fc05a5ee</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
498 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
499 |
<text>Complexity caused by helper tools should be also reduced:</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
500 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
501 |
<id>a5307bc9-36ed-4d83-963a-30c5c67613aa</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
502 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
503 |
<text>If you e.g. use Bash and Perl during the build process, do not add also Python dependency, write it in Perl – or use Python instead of Perl.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
504 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
505 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
506 |
<id>b0237d84-7068-4b2b-bc28-ce5e0a0061e4</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
507 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
508 |
<text>Or if you use Java as your main language, consider not using Python/Perl for scripting and use some JVM language for it.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
509 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
510 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
511 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
512 |
<id>a0f42ec9-5032-4f6d-a50a-4b7bddde77f0</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
513 |
<type>requirement</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
514 |
<text>If possible, always depend on abstract interfaces, not on particular implementations.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
515 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
516 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
517 |
<id>c5974dcd-4855-40c5-ad22-894c128ca1dc</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
518 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
519 |
<text>From the whole system point-of-view, Bootstrappable builds should be taken into account.</text> |
42 | 520 |
<link> |
521 |
<url>http://bootstrappable.org/</url> |
|
522 |
<type>related</type> |
|
523 |
<title>Bootstrappable builds</title> |
|
524 |
</link> |
|
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
525 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
526 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
527 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
528 |
<chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
529 |
<name>Easily auditable</name> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
530 |
<id>fb0c484b-d97a-4cb4-9b8f-04d386ef0f54</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
531 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
532 |
<id>aeef6a5c-bafc-4fcf-9b21-5829e8a44c5e</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
533 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
534 |
<text>Small code footprint and sane dependencies make it easier to do security audit.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
535 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
536 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
537 |
<id>ab69d352-da68-40c2-a3e1-a8fd5c41ad0a</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
538 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
539 |
<text>Ungrounded refactoring and reformatting should be avoided – they make mess and noise in the version control system and impede the audit.</text> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
540 |
<note>This rule is classified as a recommendation only because of the fact that past mistakes usually can not be reverted, which would disqualify the software forever. However it should be normally considered to be a requirement.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
541 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
542 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
543 |
<id>e4db77b8-f145-4e43-bf8b-eb775b9352c8</id> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
544 |
<type>recommendation</type> |
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
545 |
<text>Refactoring/reformatting changesets should be separated from substantive changes.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
546 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
547 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
548 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
549 |
<chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
550 |
<name>Reproducible builds</name> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
551 |
<id>da6436f7-c352-4d52-915b-02d0d1880e40</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
552 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
553 |
<id>e5154815-eeae-4664-8883-a29a64eea325</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
554 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
555 |
<text>Builds should be reproducible i.e. same code/version should lead to the same binary package.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
556 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
557 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
558 |
<id>a3b0c164-4dde-4e33-b3be-5478d2a187e2</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
559 |
<type>requirement</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
560 |
<text>If they are not reproducible, it should be documented, why and how build products might differ, and there should be plan/task to make builds reproducible.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
561 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
562 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
563 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
564 |
<chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
565 |
<name>Trustworthy packages and sources</name> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
566 |
<id>e7ded437-aaa2-475a-9754-0b2d89394b24</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
567 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
568 |
<id>a0d9322c-7d2b-4632-b543-7e0d75bb5f0b</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
569 |
<type>requirement</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
570 |
<text>Every released version (binary or source) must be cryptographically signed by the authors (GnuPG/OpenPGP is strongly recommended).</text> |
19
c28f759961c7
some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
571 |
</item> |
c28f759961c7
some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
572 |
<item> |
c28f759961c7
some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
573 |
<id>feb97ec0-c35c-49b8-b455-517a929b4a84</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
574 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
575 |
<text>There should be also checksums/hashes for every released package.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
576 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
577 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
578 |
<id>ff33e209-0460-4a43-997f-d6b32b73997b</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
579 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
580 |
<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> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
581 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
582 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
583 |
<id>c1f83b3a-e564-4483-91de-9c08723efd13</id> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
584 |
<type>requirement</type> |
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
585 |
<text>The attacker must not be able to suppress updates – the program (usually a package management system) must not be silent in such case and must warn the user that something possibly nasty and dangerous is happening.</text> |
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
586 |
<note>This is relevant mostly to distributions and package managers which should be used for updates (the application should not update itself).</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
587 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
588 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
589 |
<id>c6a755c9-a54e-4ffb-8f70-bfbd851b93c5</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
590 |
<type>recommendation</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
591 |
<text>Releases should be downloadable also (or exclusively) over BitTorrent or other P2P network.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
592 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
593 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
594 |
<id>f9275c3c-2b09-4aec-ac28-76ff827d52ce</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
595 |
<type>requirement</type> |
55
fe39d6940821
clean-up and update of chapters:
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
596 |
<text>Source code repository must be accessible through a secure and encrypted connection.</text> |
64
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
597 |
<link> |
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
598 |
<url>https://www.gnu.org/software/repo-criteria.html</url> |
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
599 |
<type>compatible</type> |
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
600 |
<title>GNU ethical repository criteria</title> |
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
601 |
<quotation>Support HTTPS properly and securely, including the site's certificates.</quotation> |
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
602 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
603 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
604 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
605 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
606 |
<chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
607 |
<name>Network interactions</name> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
608 |
<id>d3edb71b-8668-4290-a669-19694956e3aa</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
609 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
610 |
<id>c967092e-09e9-4c68-90bf-aa8cb441f7dc</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
611 |
<type>requirement</type> |
46
dc35b4c01ade
Network interactions: clean-up, clarification, notes
František Kučera <franta-hg@frantovo.cz>
parents:
45
diff
changeset
|
612 |
<text>Network connectivity must not be required during build – the build must be possible completely offline.</text> |
dc35b4c01ade
Network interactions: clean-up, clarification, notes
František Kučera <franta-hg@frantovo.cz>
parents:
45
diff
changeset
|
613 |
<text>All dependencies must be downloadable and documented including secure hashes or preferably cryptographic signatures.</text> |
dc35b4c01ade
Network interactions: clean-up, clarification, notes
František Kučera <franta-hg@frantovo.cz>
parents:
45
diff
changeset
|
614 |
<note>It should be straightforward to collect all dependencies transfer them in space or time and build the software (e.g. on another computer or in next decade).</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
615 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
616 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
617 |
<id>b5515d33-1531-4361-8baf-a99ca461e763</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
618 |
<type>requirement</type> |
73
ee9683c59746
Guile → Scheme + fix some typo
František Kučera <franta-hg@frantovo.cz>
parents:
70
diff
changeset
|
619 |
<text>If dependencies are optionally automatically downloaded during or before build, the packaging system must cryptographically verify that they are undamaged.</text> |
46
dc35b4c01ade
Network interactions: clean-up, clarification, notes
František Kučera <franta-hg@frantovo.cz>
parents:
45
diff
changeset
|
620 |
<note>So it should not be possible to endanger the user by MITM attack.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
621 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
622 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
623 |
<id>f700413a-fde1-460c-8633-76985e98007c</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
624 |
<type>requirement</type> |
46
dc35b4c01ade
Network interactions: clean-up, clarification, notes
František Kučera <franta-hg@frantovo.cz>
parents:
45
diff
changeset
|
625 |
<text>Avoid unwanted network interactions during runtime.</text> |
dc35b4c01ade
Network interactions: clean-up, clarification, notes
František Kučera <franta-hg@frantovo.cz>
parents:
45
diff
changeset
|
626 |
<text>There must be no „call home“ or update-checks without user's explicit consent.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
627 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
628 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
629 |
<id>f55c2ebd-c3ba-44f7-ae92-06f679780ec7</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
630 |
<type>requirement</type> |
46
dc35b4c01ade
Network interactions: clean-up, clarification, notes
František Kučera <franta-hg@frantovo.cz>
parents:
45
diff
changeset
|
631 |
<text>If any network connection is used, it must be by default cryptographically secured against MITM attacks.</text> |
dc35b4c01ade
Network interactions: clean-up, clarification, notes
František Kučera <franta-hg@frantovo.cz>
parents:
45
diff
changeset
|
632 |
<note>It might be possible to disable the encryption on user's explicit request (in order to get better performance on a trusted private network).</note> |
dc35b4c01ade
Network interactions: clean-up, clarification, notes
František Kučera <franta-hg@frantovo.cz>
parents:
45
diff
changeset
|
633 |
<note>For debugging and testing purposes it is better to allow dumping the private/session keys rather than disabling the encryption.</note> |
dc35b4c01ade
Network interactions: clean-up, clarification, notes
František Kučera <franta-hg@frantovo.cz>
parents:
45
diff
changeset
|
634 |
<note>In special cases (like small microcontrollers without cryptographic capability connected to a trusted private network), it is possible to have no encryption at all, but the user must be properly informed about this issue and potential risks.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
635 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
636 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
637 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
638 |
<chapter> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
639 |
<name>Internationalization and localization</name> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
640 |
<id>fa655b7c-f22d-4b98-ab7b-c0d0f608aad8</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
641 |
<item> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
642 |
<id>e56aad13-f68e-47ea-8b88-65fee6b5331a</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
643 |
<type>requirement</type> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
644 |
<text>Any software with nontrivial user interface must be internationalized</text> |
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
645 |
<text>which means that it allows localization (translation of the UI to national languages and other customization to national conventions).</text> |
42 | 646 |
<link> |
647 |
<url>https://en.wikipedia.org/wiki/Internationalization_and_localization</url> |
|
648 |
<type>related</type> |
|
649 |
<title>Internationalization and localization</title> |
|
650 |
<quotation>Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes. Localization is the process of adapting internationalized software for a specific region or language by translating text and adding locale-specific components.</quotation> |
|
651 |
</link> |
|
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
652 |
</item> |
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
653 |
<item> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
654 |
<id>ad2f572b-497b-4523-b435-f9752fd1518a</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
655 |
<type>recommendation</type> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
656 |
<text>It should be possible to localize the user interface independently from the original author by creating an additionally installable language pack.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
657 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
658 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
659 |
<id>c3827486-6bf5-45c0-9a6d-61ad659d8ba1</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
660 |
<type>recommendation</type> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
661 |
<text>GNU Gettext or other standard framework (like Java resource bundles) should be used.</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
662 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
663 |
<url>https://www.gnu.org/prep/standards/standards.html#Internationalization</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
664 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
665 |
<title>GNU Coding Standards: Internationalization</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
666 |
<quotation>GNU has a library called GNU gettext that makes it easy to translate the messages in a program into various languages. You should use this library in every program.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
667 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
668 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
669 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
670 |
<id>a57f4fc8-1f64-46e2-a91d-3a598c37f2e9</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
671 |
<type>recommendation</type> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
672 |
<text>Error messages should have assigned unique error codes, so it is possible to find relevant information regardless the current locale.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
673 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
674 |
<!-- GEC is recommended for such unique error identifiers --> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
675 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
676 |
<id>eba92867-5c1b-45b6-943a-a3fa6ea67e38</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
677 |
<type>requirement</type> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
678 |
<text>Data formats and protocols must be language/locale independent.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
679 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
680 |
<id>fee73fee-4940-47ac-84b6-15646f5f61c7</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
681 |
<type>requirement</type> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
682 |
<text>e.g. use decimal point instead of comma and no thousand separators for numbers, use standardized date formats</text> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
683 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
684 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
685 |
<id>f1a00487-ed89-4443-99b5-63ab4c635690</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
686 |
<type>requirement</type> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
687 |
<text>in general: everything that is expected to be machine-readable or machine-generated must be independent from the current locale</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
688 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
689 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
690 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
691 |
<id>e6603e06-0b2c-439e-82ce-45f9744b2ef8</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
692 |
<type>requirement</type> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
693 |
<text>Character encoding:</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
694 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
695 |
<id>abd42a7f-bd4b-4034-98ee-85a33094b5c1</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
696 |
<type>recommendation</type> |
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
697 |
<!-- TODO: requirement? --> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
698 |
<text>The software should always be aware of it and do not just blindly use current platform's default.</text> |
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
699 |
<note>The other side might run on different platform with different default. Or a file might be opened later on different platform.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
700 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
701 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
702 |
<id>abd48eae-d287-4729-80ee-52dd018b0ba7</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
703 |
<type>requirement</type> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
704 |
<text>If given software/format/protocol has some default encoding, it must be clearly defined in its specification and this default must not be changed without changing the major version number.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
705 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
706 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
707 |
<id>c9f4d9f4-f959-48ad-bc68-6720dd4596e3</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
708 |
<type>requirement</type> |
61
4eacba604e8c
English, small fixes
František Kučera <franta-hg@frantovo.cz>
parents:
60
diff
changeset
|
709 |
<text>If there is no default, the encoding must be specified in the metadata attached (e.g. protocol headers, extended attributes on filesystem) to the actual data or at least at the beginning of the data (like declaration in the XML format).</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
710 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
711 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
712 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
713 |
<id>ce45c382-6ec5-41e8-869a-a0e758621b13</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
714 |
<type>recommendation</type> |
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
715 |
<!-- TODO: requirement? --> |
35
db3eb602fa60
Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents:
34
diff
changeset
|
716 |
<text>The metric system should be used as default.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
717 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
718 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
719 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
720 |
<chapter> |
38
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
721 |
<name>Communication with users and developers</name> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
722 |
<id>a931dcbb-8043-4e21-838f-8e8122bb8af3</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
723 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
724 |
<id>fff90688-907e-48eb-a48a-2ae6d6b42f0a</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
725 |
<type>recommendation</type> |
75
d33d6267c9d2
machine readable format: written → described
František Kučera <franta-hg@frantovo.cz>
parents:
74
diff
changeset
|
726 |
<text>Following information should be provided in RSS/Atom or other machine-readable format:</text> |
38
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
727 |
<text>announcements (security, new versions, infrastructure outage),</text> |
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
728 |
<text>blog posts, tutorials</text> |
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
729 |
<text>and AFK events (e.g. conferences, meetings or hackatons).</text> |
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
730 |
<note>for calendar data iCal format is strongly recommended</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
731 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
732 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
733 |
<id>e8b18e02-d7b2-4584-8eee-dbaf823f6800</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
734 |
<type>recommendation</type> |
38
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
735 |
<text>A mailing list (e-mail conference) or other equivalently open and decentralized technology should be used for the many-to-many communication.</text> |
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
736 |
<note>Having an „old school“ mailing list is not mandatory – it might be e.g. a P2P distributed technology or some self-hosted forum.</note> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
737 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
738 |
<url>https://www.gnu.org/prep/maintain/maintain.html#Standard-Mailing-Lists</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
739 |
<type>related</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
740 |
<title>Information for Maintainers of GNU Software: Standard Mailing Lists</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
741 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
742 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
743 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
744 |
<id>e746eb5b-8d8b-4ec8-9315-a311f35e156a</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
745 |
<type>requirement</type> |
61
4eacba604e8c
English, small fixes
František Kučera <franta-hg@frantovo.cz>
parents:
60
diff
changeset
|
746 |
<text>Users must not be pushed to register at proprietary social networks (at particular providers of such services).</text> |
38
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
747 |
<text>Users without such account must not be disadvantaged – use open and decentralized networks/protocols instead.</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
748 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
749 |
<url>https://www.gnu.org/prep/maintain/maintain.html#Ethical-and-Philosophical-Consideration</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
750 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
751 |
<title>Information for Maintainers of GNU Software: Ethical and Philosophical Consideration</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
752 |
<quotation>Please don’t host discussions about your package in a service that requires nonfree software. For instance, Google+ “communities” require running a nonfree JavaScript program to post a message, so they can’t be used in the Free World. Google Groups has the same problem. To host discussions there would be excluding people who live by free software principles.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
753 |
<quotation>Of course, you can’t order people not to use such services to talk with each other. What you can do is not legitimize them, and use your influence to lead people away from them. For instance, where you say where to have discussions related to the program, don’t list such a place.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
754 |
</link> |
64
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
755 |
<link> |
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
756 |
<url>https://www.gnu.org/software/repo-criteria.html</url> |
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
757 |
<type>related</type> |
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
758 |
<title>GNU ethical repository criteria</title> |
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
759 |
<quotation>The site's terms of service contain no odious conditions.</quotation> |
f3424052a31a
add links to the GNU ethical repository criteria
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
760 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
761 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
762 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
763 |
<id>ff537045-819e-4dec-a020-d2c9f2c3292b</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
764 |
<type>recommendation</type> |
38
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
765 |
<text>There should be a second-level internet domain for the project or its team.</text> |
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
766 |
<note>But do not buy an internet domain if you are not prepared to mainain it for decades – rather use third level domain under some reliable second level domain maintained by a credible group or person – think of that every expired domain helps spammers and scammers and hurts the users.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
767 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
768 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
769 |
<id>a1141312-5177-4d68-bb14-fce952d542c3</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
770 |
<type>recommendation</type> |
38
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
771 |
<text>URLs should be as stable as possible – accessible in next decade.</text> |
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
772 |
<note>Do not break old links, set up redirections if needed.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
773 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
774 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
775 |
<id>c5b6d3d7-2f1f-4371-acfa-d6af1588c2cb</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
776 |
<type>requirement</type> |
38
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
777 |
<text>The website must be independent and must contain everything needed – any content (JavaScripts, CSS, fonts, images etc.) downloaded from other domains must not be required to browse/use the website.</text> |
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
778 |
<note>Embedded content from the third-party servers causes leaks of sensitive data (tracking of the users) and also denies decentralized nature of the internet.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
779 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
780 |
<item> |
38
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
781 |
<id>d5fbcc9e-a12c-44ce-909b-f514a579ab7e</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
782 |
<type>requirement</type> |
38
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
783 |
<text>JavaScript or other code executed on client computers must be also free software with properly declared license.</text> |
42 | 784 |
<link> |
785 |
<url>https://www.gnu.org/philosophy/javascript-trap.html</url> |
|
786 |
<type>compatible</type> |
|
787 |
<title>The JavaScript Trap</title> |
|
788 |
<quotation>When the site transmits a program to the user, it is not enough for the program to be written in a documented and unencumbered language; that program must be free, too. “Transmits only free programs to the user” must become part of the criterion for an ethical web site.</quotation> |
|
789 |
</link> |
|
790 |
<link> |
|
791 |
<url>https://www.gnu.org/software/librejs/</url> |
|
792 |
<type>related</type> |
|
793 |
<title>GNU LibreJS</title> |
|
794 |
</link> |
|
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
795 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
796 |
<item> |
41
5ccfbf077da4
text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents:
40
diff
changeset
|
797 |
<id>e02c3fba-93f3-4f16-bd23-f49a203e40bc</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
798 |
<type>recommendation</type> |
41
5ccfbf077da4
text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents:
40
diff
changeset
|
799 |
<text>The website should not require a modern complex browser for basic tasks like reading the documentation, downloading a release or submitting a bug report.</text> |
5ccfbf077da4
text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents:
40
diff
changeset
|
800 |
<text>Such tasks should be feasible even with simple text browsers (e.g. Lynx or Links2).</text> |
5ccfbf077da4
text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents:
40
diff
changeset
|
801 |
<note>Modern browsers consists of 20 or 25 millions lines of code. Requiring such complex software for basic tasks is not reasonable.</note> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
802 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
803 |
<url>https://www.gnu.org/prep/maintain/maintain.html#Freedom-for-Web-Pages</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
804 |
<type>related</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
805 |
<title>Information for Maintainers of GNU Software: Freedom for Web Pages</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
806 |
<quotation>Please make sure it is possible to use the web site fully using the Lynx browser, and with the IceCat browser with LibreJS enabled.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
807 |
</link> |
41
5ccfbf077da4
text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents:
40
diff
changeset
|
808 |
</item> |
5ccfbf077da4
text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents:
40
diff
changeset
|
809 |
<item> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
810 |
<id>c89e8699-574c-4b28-9f65-6284d6051f68</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
811 |
<type>requirement</type> |
38
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
812 |
<text>There must be a crpyptographically secured (GnuPG/OpenPGP or X.509) e-mail address or a secure web form for receiving security vulnerabilities reports.</text> |
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
813 |
<note>Particular authors should publish their public keys.</note> |
8d0d0afb75f3
Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents:
35
diff
changeset
|
814 |
<note>Every security incident must be clearly documented and investigated – do not obscure it.</note> |
31
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
815 |
</item> |
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
816 |
<item> |
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
817 |
<id>fed07648-106a-4b7c-9026-509c82109448</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
818 |
<type>requirement</type> |
31
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
819 |
<text>Source code repository (versioning system) must be public. Do not publish just source code snapshots of released versions.</text> |
58
204f6466c03b
cyclomatic complexity, version control systems, resp.
František Kučera <franta-hg@frantovo.cz>
parents:
57
diff
changeset
|
820 |
<note>The purpose of this rule is that anybody can study who, when and why updated, created or deleted which portion of the code.</note> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
821 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
822 |
<url>https://www.gnu.org/prep/maintain/maintain.html#Old-Versions</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
823 |
<type>related</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
824 |
<title>Information for Maintainers of GNU Software: Recording Old Versions</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
825 |
<quotation>The history of previous revisions and log entries is very important for future maintainers of the package, so even if you do not make it publicly accessible, be careful not to put anything in the repository or change log that you would not want to hand over to another maintainer some day.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
826 |
</link> |
31
43feb77ffcfb
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
František Kučera <franta-hg@frantovo.cz>
parents:
28
diff
changeset
|
827 |
</item> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
828 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
829 |
|
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
830 |
<chapter> |
70
252d43b4c6d6
rename chapter „Accept contributions“ to „Accepting contributions“
František Kučera <franta-hg@frantovo.cz>
parents:
66
diff
changeset
|
831 |
<name>Accepting contributions</name> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
832 |
<id>eae0f528-a5ce-4809-a25d-9f9ab6311f3d</id> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
833 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
834 |
<id>efae935b-fef1-4bbd-a2c5-e12048524e35</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
835 |
<type>recommendation</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
836 |
<text>Good quality code contributions with appropriate copyright and patent licenses or assignments should be accepted from anyone.</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
837 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
838 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
839 |
<id>ea429f77-44db-4eb4-9925-0d28f9abf47a</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
840 |
<type>information</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
841 |
<text>The „good quality code“ is defined by the project and might involve code style, idioms, design patterns, software architecture, required tests, documentation etc.</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
842 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
843 |
<url>https://www.gnu.org/prep/maintain/maintain.html#Clean-Ups</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
844 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
845 |
<title>Information for Maintainers of GNU Software: Cleaning Up Changes</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
846 |
<quotation>Don’t feel obligated to include every change that someone asks you to include. You must judge which changes are improvements—partly based on what you think the users will like, and partly based on your own judgment of what is better. If you think a change is not good, you should reject it.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
847 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
848 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
849 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
850 |
<id>b0022cea-4caf-4663-ae24-5fc5da31333b</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
851 |
<type>recommendation</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
852 |
<text>Such requirements and rules should be available to the contributor before he begins.</text> |
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
853 |
<text>However (especially smaller) projects might communicate such code quality requirements and provide consultations and guidance during the contribution.</text> |
42 | 854 |
<link> |
855 |
<url>https://www.gnu.org/prep/standards/</url> |
|
856 |
<type>related</type> |
|
857 |
<title>GNU coding standards</title> |
|
858 |
<description>example of such rules and guidelines</description> |
|
859 |
</link> |
|
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
860 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
861 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
862 |
<id>ea4a8d23-b2df-42eb-84ae-7687d35838c8</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
863 |
<type>requirement</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
864 |
<text>In order to contribute, it must not be required:</text> |
32 | 865 |
<note>The term „contribution“ includes not only source code (patch) but also bugreports, feature specifications, documentation, assets (graphics, music etc.) or similar artifacts.</note> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
866 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
867 |
<id>da7dabf6-f2d8-43bc-8121-6e4527eaa691</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
868 |
<type>requirement</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
869 |
<text>to have an account on any particular third party service like particular e-mail or hosting provider,</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
870 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
871 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
872 |
<id>dfd6a77f-7c4a-430a-8199-8ea71ec7ee8c</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
873 |
<type>requirement</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
874 |
<text>to sign a contract (which includes accepting „Terms and conditions“) with any particular third party (e.g. source code hosting provider),</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
875 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
876 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
877 |
<id>af6a589f-d419-483f-b7b2-07b6e9da3924</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
878 |
<type>requirement</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
879 |
<text>to sign any political, religious or other proclamation or agree with it.</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
880 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
881 |
<url>https://www.gnu.org/prep/maintain/maintain.html#Other-Politics</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
882 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
883 |
<title>Information for Maintainers of GNU Software: Other Politics</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
884 |
<quotation>A GNU package should not seriously advocate any other political causes. Not that the GNU Project opposes those other causes. Rather, it is neutral on them, and GNU packages should be neutral too. </quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
885 |
</link> |
60
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
886 |
<link> |
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
887 |
<url>https://www.gnu.org/philosophy/kind-communication.html</url> |
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
888 |
<type>compatible</type> |
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
889 |
<title>GNU Kind Communications Guidelines</title> |
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
890 |
<quotation>Please don't raise unrelated political issues in GNU Project discussions, because they are off-topic. The only political positions that the GNU Project endorses are (1) that users should have control of their own computing (for instance, through free software) and (2) supporting basic human rights in computing. We don't require you as a contributor to agree with these two points, but you do need to accept that our decisions will be based on them.</quotation> |
e61810f49924
add link to: GNU Kind Communications Guidelines
František Kučera <franta-hg@frantovo.cz>
parents:
59
diff
changeset
|
891 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
892 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
893 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
894 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
895 |
<id>b4319392-8d6a-4f07-8a94-7ae2ed97c787</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
896 |
<type>information</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
897 |
<text>In order to contribute, it might be required:</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
898 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
899 |
<id>f9f52f2f-b057-4a2f-9131-682fac54c853</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
900 |
<type>information</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
901 |
<text>to have an e-mail address (but not at particular domain),</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
902 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
903 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
904 |
<id>ef9e64cc-90b0-4002-ab5a-a1135332c7fe</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
905 |
<type>information</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
906 |
<text>or use similar decentralized technology which has open standard and free software implementations,</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
907 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
908 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
909 |
<id>d7a94eba-efd6-471f-9c32-6ee9d3b8ab29</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
910 |
<type>information</type> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
911 |
<text>to assign the copyright to the project and grant a free license for all patents relevant to the contribution.</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
912 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
913 |
<url>https://www.gnu.org/prep/maintain/maintain.html#Copyright-Papers</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
914 |
<type>related</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
915 |
<title>Information for Maintainers of GNU Software: Copyright Papers</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
916 |
<quotation>When copyright is assigned to the FSF, the FSF can act to stop GPL violations about the package. Otherwise, legal actions are up to the author(s).</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
917 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
918 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
919 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
920 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
921 |
<id>e394c792-8294-4f15-a356-89cd0a7aa255</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
922 |
<type>recommendation</type> |
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
923 |
<!-- TODO: requirement? --> |
45
0d468a8d6b58
just formatting Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents:
43
diff
changeset
|
924 |
<text>The project should record all accepted contributions and maintain a public list of all authors/contributors.</text> |
43
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
925 |
<link> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
926 |
<url>https://www.gnu.org/prep/maintain/maintain.html#Recording-Contributors</url> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
927 |
<type>compatible</type> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
928 |
<title>Information for Maintainers of GNU Software: Recording Contributors</title> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
929 |
<quotation>Keep correct records of which portions were written by whom.</quotation> |
1f52b8493268
link GNU Coding Standards and Information for Maintainers of GNU Software
František Kučera <franta-hg@frantovo.cz>
parents:
42
diff
changeset
|
930 |
</link> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
931 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
932 |
<item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
933 |
<id>b5a128a2-31d9-49df-890c-59a770f7afa9</id> |
47
7e665331bc32
item classification: requirement, recommendation, information
František Kučera <franta-hg@frantovo.cz>
parents:
46
diff
changeset
|
934 |
<type>requirement</type> |
65 | 935 |
<text>The contributor must not lose the right to use or distribute the contributed code under any license (of his choice).</text> |
15
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
936 |
</item> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
937 |
</chapter> |
96fc2f42b1e1
conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents:
13
diff
changeset
|
938 |
</manifesto> |