text/ssm.en.xml
author František Kučera <franta-hg@frantovo.cz>
Wed, 02 Oct 2019 19:10:46 +0200
branchv_0
changeset 42 ef8fd61fd011
parent 41 5ccfbf077da4
child 43 1f52b8493268
permissions -rw-r--r--
structured links
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
<!--
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
     3
	Sane Software Manifesto
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
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
     9
	If distributed, official website of Sane Software Manifesto must be provided: https://sane-software.globalcode.info/
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
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    17
	<title>Sane Software Manifesto</title>
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>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
    19
	<preamble>In respect to user freedoms, privacy, liberty and software quality we create software according to the following guidelines.</preamble>
10
a549e04e160e Accept contributions
František Kučera <franta-hg@frantovo.cz>
parents: 9
diff changeset
    20
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    21
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    22
		<name>Free software</name>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    23
		<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
    24
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    25
			<id>a755410b-6264-4094-b339-aeca55448e8d</id>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
    26
			<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
    27
			<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
    28
			<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
    29
			<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
    30
			<text>and to distribute modified or unmodified copies.</text>
42
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    31
			<link>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    32
				<url>https://www.gnu.org/philosophy/free-sw.html</url>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    33
				<type>compatible</type>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    34
				<title>What is free software? – The Free Software Definition</title>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    35
				<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>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    36
				<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>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    37
			</link>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    38
			<link>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    39
				<url>https://www.gnu.org/philosophy/who-does-that-server-really-serve.html</url>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    40
				<type>related</type>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    41
				<title>Who does that server really serve?</title>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    42
				<description>About Software as a Service (SaaS) and Service as a Software Substitute (SaaSS)</description>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    43
				<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>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
    44
			</link>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    45
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    46
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    47
			<id>b7cd1a50-79eb-4df2-925c-7243a46d5ed8</id>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
    48
			<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
    49
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    50
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    51
			<id>c78a9796-7862-4dd2-8ad9-3fdae094fe2c</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    52
			<text>Must be buildable using free software toolchain (like GNU/Linux + GCC or OpenJDK etc.).</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    53
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    54
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    55
			<id>b3c0daaf-dcaf-49a8-ae38-40590456a315</id>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
    56
			<text>Must not promote non-free (proprietary) software or services.</text>
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>b2fd5d2d-4d47-48e8-8abc-4b1aa94a7951</id>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
    60
			<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
    61
		</item>
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
			<id>c3599313-338b-428d-885f-964a443d76c6</id>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
    64
			<!-- TODO: MUST + exception for older software -->
23
ccbe2cf582bb GNU GPLv3 compatibility is required
František Kučera <franta-hg@frantovo.cz>
parents: 22
diff changeset
    65
			<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
    66
			<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
    67
			<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
    68
			<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
    69
			<!-- 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
    70
			<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
    71
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    72
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    73
			<id>f39b90ae-0054-467e-a9e2-43379b7c2331</id>
40
bc2043705ec5 small fixes, typos
František Kučera <franta-hg@frantovo.cz>
parents: 38
diff changeset
    74
			<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
    75
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    76
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    77
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    78
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    79
		<name>Documented</name>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    80
		<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
    81
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    82
			<id>c63ea2ac-c255-4f3e-a0e2-b49d1e145347</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
    83
			<text>At least basic documentation must be released under a free license (GNU FDL is recommended).</text>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    84
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    85
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    86
			<id>fd8e3bbd-d46a-40fe-85a6-b902336456d4</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    87
			<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
    88
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    89
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    90
			<id>e4dede5b-059e-4e47-b03d-80142b8467f1</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    91
			<text>There might be also other documentation/books released under any license and price.</text>
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
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    94
			<id>c0df4d14-43f8-4b61-83c4-fb5896161aeb</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    95
			<text>But average software engineer must be able to build and operate the software with just the free (basic) documentation.</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    96
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    97
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
    98
			<id>e6cd9c52-0e66-402c-930c-901fa66acd22</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
    99
			<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
   100
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   101
		<!--
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   102
		<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
   103
		<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
   104
		-->
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   105
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   106
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   107
	<chapter>
27
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   108
		<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
   109
		<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
   110
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   111
			<id>a8beddfc-11e3-4012-9f88-f79dc88eee16</id>
22
893043da854c Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents: 19
diff changeset
   112
			<text>Semantic versioning is required.</text>
893043da854c Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents: 19
diff changeset
   113
			<text>The version number consists of three numbers: major.minor.pach.</text>
893043da854c Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents: 19
diff changeset
   114
			<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
   115
			<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
   116
			<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
   117
			<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
   118
			<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
   119
			<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
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   120
			<link>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   121
				<url>http://semver.org/</url>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   122
				<type>compatible</type>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   123
				<title>Semantic Versioning</title>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   124
			</link>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   125
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   126
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   127
			<id>cf557a11-b307-4c2f-a7b5-5d2485d23258</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
   128
			<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
   129
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   130
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   131
			<id>dd013325-bf22-43d3-9579-0e272e2ac344</id>
40
bc2043705ec5 small fixes, typos
František Kučera <franta-hg@frantovo.cz>
parents: 38
diff changeset
   132
			<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
   133
			<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
   134
		</item>
893043da854c Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents: 19
diff changeset
   135
		<item>
893043da854c Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents: 19
diff changeset
   136
			<id>dacb98cc-b558-4f0e-942d-e12004e45606</id>
893043da854c Semantic versioning is required
František Kučera <franta-hg@frantovo.cz>
parents: 19
diff changeset
   137
			<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
   138
			<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
   139
			<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
   140
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   141
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   142
			<id>ae33d206-4988-44ec-b8e2-3120019fcf2f</id>
40
bc2043705ec5 small fixes, typos
František Kučera <franta-hg@frantovo.cz>
parents: 38
diff changeset
   143
			<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
   144
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   145
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   146
			<id>c542336a-fce8-412c-a8dd-1328c1a884ec</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   147
			<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
   148
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   149
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   150
			<id>ba8fecf0-5c02-4fdf-abdc-2650d428f82a</id>
27
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   151
			<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
   152
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   153
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   154
			<id>f4826891-e732-45e8-b929-25d1182fa141</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   155
			<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
   156
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   157
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   158
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   159
	<chapter>
27
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   160
		<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
   161
		<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
   162
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   163
			<id>be4c72d1-c494-4c44-aeb4-c5847f5a3524</id>
27
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   164
			<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
   165
		</item>
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>b2202690-8a6c-467f-a2b1-b154f470aa77</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
   168
			<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
   169
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   170
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   171
			<id>dd206223-9525-4229-be2b-84b07c2b8244</id>
27
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   172
			<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
   173
			<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
   174
		</item>
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   175
		<item>
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   176
			<id>d341b78e-15b9-4077-8b48-9e54c93391ac</id>
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   177
			<text>And they should be written in machine readable format (e.g. WSDL, WADL, ASN.1, XSD, Diameter dictionary, D-Bus) or at least formal language (Backus–Naur Form, EBNF etc.)</text>
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   178
		</item>
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   179
		<item>
413a00a9cde7 merge two sections into Semantic versioning and upgrades
František Kučera <franta-hg@frantovo.cz>
parents: 25
diff changeset
   180
			<id>d61b3e31-bb9f-4333-87c8-9fb32f33a49d</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
   181
			<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
   182
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   183
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   184
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   185
	<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
   186
		<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
   187
		<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
   188
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   189
			<id>e50424e8-94f3-48aa-bf01-0ba984eb2349</id>
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
   190
			<text>Larger and multi-purpose software must be divided into smaller modules.</text>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   191
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   192
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   193
			<id>e752efae-75c9-4620-aa14-65c4949a3609</id>
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
   194
			<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
   195
			<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
   196
			<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
   197
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   198
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   199
			<id>e9988ed0-d686-41a0-9f1e-3243ac5235d5</id>
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
   200
			<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
   201
			<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
   202
			<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
   203
			<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
   204
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   205
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   206
			<id>a7bc51ba-9832-4f75-983c-e75dc0801113</id>
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
   207
			<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
   208
			<text>configuration (XML, INI, RegExp, SQL, XSLT, XPath etc.) and</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
   209
			<text>scripting (Guile, Bash, Python, Lua, ECMA Script etc.)</text>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   210
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   211
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   212
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   213
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   214
		<name>Testable</name>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   215
		<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
   216
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   217
			<id>d95dc118-7473-4f18-8b9e-35830a87b269</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   218
			<text>there should be automated build-time complex tests for the package – feed the program with sample input and verify expected output</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   219
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   220
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   221
			<id>a9f6725d-ddf1-41ee-96b4-15f3b851cb50</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
   222
			<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
   223
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   224
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   225
			<id>d610c04b-cc44-48c7-b069-f41b90bdef0f</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   226
			<text>unit tests are recommended for code parts that are internally complex (algorithms, important business logic) and have simple interfaces</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   227
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   228
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   229
			<id>e85baeda-8fcb-42d1-bb53-d7386a941ae7</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   230
			<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>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   231
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   232
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   233
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   234
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   235
		<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
   236
		<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
   237
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   238
			<id>a96206c9-3e69-483d-b575-6bab9dec4a30</id>
38
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   239
			<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
   240
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   241
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   242
			<id>d8eba0dd-4305-44b9-80ea-4c38b6dfa633</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   243
			<text>use strong data typing, declare preconditions and possible exceptions</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   244
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   245
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   246
			<id>ebea0c16-f820-444d-a73c-3054ca6a38c8</id>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
   247
			<text>data structures must be known and well documented – do not use 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
   248
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   249
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   250
			<id>e24e600e-6542-4664-8cf0-2d8c6feb6c13</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   251
			<text>code, comments and specification should be written in the same natural language</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   252
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   253
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   254
			<id>fa92aa33-a69f-43b8-9051-9bfdcd3d293f</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
   255
			<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
   256
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   257
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   258
			<id>b9345a0e-c672-45d3-b93b-8d0fb4ece8b3</id>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
   259
			<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>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   260
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   261
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   262
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   263
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   264
		<name>Small code footprint</name>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   265
		<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
   266
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   267
			<id>f5389468-2f8a-43c8-884a-8df6bc844453</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   268
			<text>less LOC (resp. cyclomatic complexity) = better</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   269
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   270
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   271
			<id>b6b6c838-be6d-43d5-9f99-2098fa217c54</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   272
			<text>reduce boilerplate and unused code</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   273
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   274
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   275
			<id>b07fe0f0-2be7-4c1c-9b19-b671269c5e58</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   276
			<text>use code generators (during build process, not to generate code to be manually edited and versioned)</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   277
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   278
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   279
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   280
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   281
		<name>Sane dependencies</name>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   282
		<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
   283
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   284
			<id>c2d5a677-a721-40e3-b560-73afe76fe2b0</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   285
			<text>avoid NIH and reuse code but also avoid dependency hell</text>
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
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   288
			<id>d214987c-881c-450b-8544-82141866f541</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   289
			<text>know your dependencies, know why they are required</text>
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>c8402612-e136-43b5-9209-f9800d2e94da</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   293
			<text>reduce dependencies to only necessary ones</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   294
		</item>
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
			<id>cbeb9a6b-7b64-4452-8caf-246c082a853d</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   297
			<text>depend on small and useful libraries – not on bulky application packages or libraries with large transitive dependencies</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   298
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   299
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   300
			<id>cbaf55be-8ffb-4109-9c83-083d1b3e793a</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
   301
			<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
   302
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   303
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   304
			<id>d7655989-a5e4-4123-9147-3782fc05a5ee</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   305
			<text>helper tools:</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   306
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   307
				<id>a5307bc9-36ed-4d83-963a-30c5c67613aa</id>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
   308
				<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
   309
			</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   310
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   311
				<id>b0237d84-7068-4b2b-bc28-ce5e0a0061e4</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   312
				<text>Or if you use Java as your main language, consider not using Python/Perl for scripting and use Java for it</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   313
			</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   314
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   315
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   316
			<id>a0f42ec9-5032-4f6d-a50a-4b7bddde77f0</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   317
			<text>if possible, always depend on abstract interfaces, not on particular implementations</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   318
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   319
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   320
			<id>c5974dcd-4855-40c5-ad22-894c128ca1dc</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   321
			<text>from the whole system point-of-view, Bootstrappable builds should be taken into account</text>
42
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   322
			<link>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   323
				<url>http://bootstrappable.org/</url>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   324
				<type>related</type>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   325
				<title>Bootstrappable builds</title>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   326
			</link>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   327
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   328
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   329
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   330
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   331
		<name>Easily auditable</name>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   332
		<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
   333
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   334
			<id>aeef6a5c-bafc-4fcf-9b21-5829e8a44c5e</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   335
			<text>small code footprint and minimal dependencies makes it easy to do security audit</text>
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
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   338
			<id>ab69d352-da68-40c2-a3e1-a8fd5c41ad0a</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   339
			<text>avoid ungrounded refactoring and reformatting – they make mess and noise in the version control system and impede the audit</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   340
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   341
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   342
			<id>e4db77b8-f145-4e43-bf8b-eb775b9352c8</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   343
			<text>refactoring/reformatting changesets should be separated from substantive changes</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   344
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   345
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   346
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   347
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   348
		<name>Reproducible builds</name>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   349
		<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
   350
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   351
			<id>e5154815-eeae-4664-8883-a29a64eea325</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   352
			<text>builds should be reproducible: same code/version → same binary package</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   353
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   354
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   355
			<id>a3b0c164-4dde-4e33-b3be-5478d2a187e2</id>
40
bc2043705ec5 small fixes, typos
František Kučera <franta-hg@frantovo.cz>
parents: 38
diff changeset
   356
			<text>if not, it should be documented, why and how build products might differ, and there should be plan/task to make it reproducible</text>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   357
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   358
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   359
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   360
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   361
		<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
   362
		<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
   363
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   364
			<id>a0d9322c-7d2b-4632-b543-7e0d75bb5f0b</id>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
   365
			<text>every released version (binary or source) must be cryptographically signed by the authors (GnuPG/OpenPGP is strongly recommended)</text>
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
   366
		</item>
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
   367
		<item>
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
   368
			<id>feb97ec0-c35c-49b8-b455-517a929b4a84</id>
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
   369
			<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
   370
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   371
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   372
			<id>ff33e209-0460-4a43-997f-d6b32b73997b</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   373
			<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>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   374
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   375
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   376
			<id>c1f83b3a-e564-4483-91de-9c08723efd13</id>
24
2cbf4c472a67 remove superfluous whitespace
František Kučera <franta-hg@frantovo.cz>
parents: 23
diff changeset
   377
			<text>the attacker should not be able to suppress updates – the program must not be silent in such case and must warn the user that something possibly nasty and dangerous is happening</text>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   378
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   379
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   380
			<id>c6a755c9-a54e-4ffb-8f70-bfbd851b93c5</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   381
			<text>releases should be downloadable also (or exclusively) over BitTorrent or other P2P network</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   382
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   383
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   384
			<id>f9275c3c-2b09-4aec-ac28-76ff827d52ce</id>
19
c28f759961c7 some cleanup and clarifications
František Kučera <franta-hg@frantovo.cz>
parents: 15
diff changeset
   385
			<text>source code repository must be accessible through an encrypted connection</text>
15
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
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   388
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   389
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   390
		<name>Network interactions</name>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   391
		<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
   392
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   393
			<id>c967092e-09e9-4c68-90bf-aa8cb441f7dc</id>
41
5ccfbf077da4 text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents: 40
diff changeset
   394
			<text>no network connection is needed during build – build must be possible completely offline, all dependencies must be downloadable and documented including secure hashes or preferably cryptographic signatures</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>b5515d33-1531-4361-8baf-a99ca461e763</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   398
			<text>if dependencies are optionally automatically downloaded during/before build, the packaging system must cryptographically verify that that they are undamaged</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   399
		</item>
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
			<id>f700413a-fde1-460c-8633-76985e98007c</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   402
			<text>avoid unwanted network interactions during runtime – no „call home“ or update-checks without user's explicit consent</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   403
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   404
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   405
			<id>f55c2ebd-c3ba-44f7-ae92-06f679780ec7</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   406
			<text>if any network connection is used, it must be cryptographically secured against MITM attacks</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   407
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   408
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   409
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   410
	<chapter>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   411
		<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
   412
		<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
   413
		<item>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   414
			<id>e56aad13-f68e-47ea-8b88-65fee6b5331a</id>
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   415
			<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
   416
			<text>which means that it allows localization (translation of the UI to national languages and other customization to national conventions).</text>
42
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   417
			<link>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   418
				<url>https://en.wikipedia.org/wiki/Internationalization_and_localization</url>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   419
				<type>related</type>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   420
				<title>Internationalization and localization</title>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   421
				<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>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   422
			</link>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   423
		</item>
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   424
		<item>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   425
			<id>ad2f572b-497b-4523-b435-f9752fd1518a</id>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   426
			<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
   427
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   428
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   429
			<id>c3827486-6bf5-45c0-9a6d-61ad659d8ba1</id>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   430
			<text>GNU Gettext or other standard framework (like Java resource bundles) should be used.</text>
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>a57f4fc8-1f64-46e2-a91d-3a598c37f2e9</id>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   434
			<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
   435
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   436
		<!-- 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
   437
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   438
			<id>eba92867-5c1b-45b6-943a-a3fa6ea67e38</id>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   439
			<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
   440
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   441
				<id>fee73fee-4940-47ac-84b6-15646f5f61c7</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   442
				<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
   443
			</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   444
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   445
				<id>f1a00487-ed89-4443-99b5-63ab4c635690</id>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   446
				<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
   447
			</item>
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
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   450
			<id>e6603e06-0b2c-439e-82ce-45f9744b2ef8</id>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   451
			<text>Character encoding:</text>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   452
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   453
				<id>abd42a7f-bd4b-4034-98ee-85a33094b5c1</id>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   454
				<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
   455
				<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
   456
			</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   457
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   458
				<id>abd48eae-d287-4729-80ee-52dd018b0ba7</id>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   459
				<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
   460
			</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   461
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   462
				<id>c9f4d9f4-f959-48ad-bc68-6720dd4596e3</id>
40
bc2043705ec5 small fixes, typos
František Kučera <franta-hg@frantovo.cz>
parents: 38
diff changeset
   463
				<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 XML format).</text>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   464
			</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   465
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   466
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   467
			<id>ce45c382-6ec5-41e8-869a-a0e758621b13</id>
35
db3eb602fa60 Internationalization and localization
František Kučera <franta-hg@frantovo.cz>
parents: 34
diff changeset
   468
			<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
   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>
38
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   473
		<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
   474
		<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
   475
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   476
			<id>fff90688-907e-48eb-a48a-2ae6d6b42f0a</id>
38
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   477
			<text>Following information should be provided in RSS/Atom or other machine readable format:</text>
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   478
			<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
   479
			<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
   480
			<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
   481
			<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
   482
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   483
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   484
			<id>e8b18e02-d7b2-4584-8eee-dbaf823f6800</id>
38
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   485
			<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
   486
			<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>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   487
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   488
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   489
			<id>e746eb5b-8d8b-4ec8-9315-a311f35e156a</id>
38
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   490
			<text>Users must not be pushed to register at a proprietary social networks resp. at particular providers of such services.</text>
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   491
			<text>Users without such account must not be disadvantaged – use open and decentralized networks/protocols instead.</text>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   492
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   493
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   494
			<id>ff537045-819e-4dec-a020-d2c9f2c3292b</id>
38
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   495
			<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
   496
			<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
   497
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   498
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   499
			<id>a1141312-5177-4d68-bb14-fce952d542c3</id>
38
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   500
			<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
   501
			<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
   502
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   503
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   504
			<id>c5b6d3d7-2f1f-4371-acfa-d6af1588c2cb</id>
38
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   505
			<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
   506
			<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
   507
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   508
		<item>
38
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   509
			<id>d5fbcc9e-a12c-44ce-909b-f514a579ab7e</id>
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   510
			<text>JavaScript or other code executed on client computers must be also free software with properly declared license.</text>
42
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   511
			<link>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   512
				<url>https://www.gnu.org/philosophy/javascript-trap.html</url>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   513
				<type>compatible</type>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   514
				<title>The JavaScript Trap</title>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   515
				<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>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   516
			</link>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   517
			<link>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   518
				<url>https://www.gnu.org/software/librejs/</url>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   519
				<type>related</type>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   520
				<title>GNU LibreJS</title>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   521
			</link>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   522
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   523
		<item>
41
5ccfbf077da4 text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents: 40
diff changeset
   524
			<id>e02c3fba-93f3-4f16-bd23-f49a203e40bc</id>
5ccfbf077da4 text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents: 40
diff changeset
   525
			<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
   526
			<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
   527
			<note>Modern browsers consists of 20 or 25 millions lines of code. Requiring such complex software for basic tasks is not reasonable.</note>
5ccfbf077da4 text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents: 40
diff changeset
   528
		</item>
5ccfbf077da4 text www browsers should be supported
František Kučera <franta-hg@frantovo.cz>
parents: 40
diff changeset
   529
		<item>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   530
			<id>c89e8699-574c-4b28-9f65-6284d6051f68</id>
38
8d0d0afb75f3 Communication with users and developers – clean-up, improve
František Kučera <franta-hg@frantovo.cz>
parents: 35
diff changeset
   531
			<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
   532
			<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
   533
			<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
   534
		</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
   535
		<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
   536
			<id>fed07648-106a-4b7c-9026-509c82109448</id>
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
   537
			<text>Source code repository (versioning system) must be public. Do not publish just source code snapshots of released versions.</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
   538
		</item>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   539
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   540
	
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   541
	<chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   542
		<name>Accept contributions</name>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   543
		<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
   544
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   545
			<id>efae935b-fef1-4bbd-a2c5-e12048524e35</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   546
			<text>good quality code contributions with appropriate copyright and patent licenses or assignments should be accepted from anyone</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   547
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   548
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   549
			<id>ea429f77-44db-4eb4-9925-0d28f9abf47a</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   550
			<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>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   551
		</item>
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>b0022cea-4caf-4663-ae24-5fc5da31333b</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   554
			<text>such requirements and rules should be available to the contributor before he begins; however (especially smaller) projects might communicate such code quality requirements and provide consultations and guidance during the contribution</text>
42
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   555
			<link>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   556
				<url>https://www.gnu.org/prep/standards/</url>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   557
				<type>related</type>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   558
				<title>GNU coding standards</title>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   559
				<description>example of such rules and guidelines</description>
ef8fd61fd011 structured links
František Kučera <franta-hg@frantovo.cz>
parents: 41
diff changeset
   560
			</link>
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
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   563
			<id>ea4a8d23-b2df-42eb-84ae-7687d35838c8</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   564
			<text>in order to contribute, it must not be required:</text>
32
3811f3a52f44 fix XML
František Kučera <franta-hg@frantovo.cz>
parents: 31
diff changeset
   565
			<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
   566
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   567
				<id>da7dabf6-f2d8-43bc-8121-6e4527eaa691</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   568
				<text>to have an account on any particular third party service like particular e-mail or hosting provider</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   569
			</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   570
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   571
				<id>dfd6a77f-7c4a-430a-8199-8ea71ec7ee8c</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
   572
				<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
   573
			</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   574
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   575
				<id>af6a589f-d419-483f-b7b2-07b6e9da3924</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   576
				<text>to sign any political, religious or other proclamation or agree with it</text>
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
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   579
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   580
			<id>b4319392-8d6a-4f07-8a94-7ae2ed97c787</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   581
			<text>in order to contribute, it might be required:</text>
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>f9f52f2f-b057-4a2f-9131-682fac54c853</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   584
				<text>to have an e-mail address (but not at particular domain)</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   585
			</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   586
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   587
				<id>ef9e64cc-90b0-4002-ab5a-a1135332c7fe</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   588
				<text>or use similar decentralized technology which has open standard and free software implementations</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   589
			</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   590
			<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   591
				<id>d7a94eba-efd6-471f-9c32-6ee9d3b8ab29</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
   592
				<text>to assign the copyright to the project and grant a free license for all patents relevant to the contribution</text>
15
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
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   595
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   596
			<id>e394c792-8294-4f15-a356-89cd0a7aa255</id>
28
547569f6e675 add non-breakable spaces (nbsp)
František Kučera <franta-hg@frantovo.cz>
parents: 27
diff changeset
   597
			<text>the project should record all accepted contributions and maintain a public list of all authors/contributors</text>
15
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   598
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   599
		<item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   600
			<id>b5a128a2-31d9-49df-890c-59a770f7afa9</id>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   601
			<text>the contributor must not loose the right to use or distribute the contributed code under any license (of his choice)</text>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   602
		</item>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   603
	</chapter>
96fc2f42b1e1 conversion to XML format, XSD, XSLT
František Kučera <franta-hg@frantovo.cz>
parents: 13
diff changeset
   604
</manifesto>