text/ssm.en.xml
branchv_0
changeset 42 ef8fd61fd011
parent 41 5ccfbf077da4
child 43 1f52b8493268
equal deleted inserted replaced
41:5ccfbf077da4 42:ef8fd61fd011
    26 			<text>Every piece of Sane software is also Free software (as originally defined by Richard Stallman).</text>
    26 			<text>Every piece of Sane software is also Free software (as originally defined by Richard Stallman).</text>
    27 			<text>Which means that the user has freedom to</text>
    27 			<text>Which means that the user has freedom to</text>
    28 			<text>run the program for any purpose,</text>
    28 			<text>run the program for any purpose,</text>
    29 			<text>to study and change it (i.e. has access to the source code under a free software license)</text>
    29 			<text>to study and change it (i.e. has access to the source code under a free software license)</text>
    30 			<text>and to distribute modified or unmodified copies.</text>
    30 			<text>and to distribute modified or unmodified copies.</text>
    31 			<note>see https://www.gnu.org/philosophy/free-sw.html</note>
    31 			<link>
    32 			<note>see https://www.gnu.org/philosophy/who-does-that-server-really-serve.html</note>
    32 				<url>https://www.gnu.org/philosophy/free-sw.html</url>
       
    33 				<type>compatible</type>
       
    34 				<title>What is free software? – The Free Software Definition</title>
       
    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>
       
    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>
       
    37 			</link>
       
    38 			<link>
       
    39 				<url>https://www.gnu.org/philosophy/who-does-that-server-really-serve.html</url>
       
    40 				<type>related</type>
       
    41 				<title>Who does that server really serve?</title>
       
    42 				<description>About Software as a Service (SaaS) and Service as a Software Substitute (SaaSS)</description>
       
    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>
       
    44 			</link>
    33 		</item>
    45 		</item>
    34 		<item>
    46 		<item>
    35 			<id>b7cd1a50-79eb-4df2-925c-7243a46d5ed8</id>
    47 			<id>b7cd1a50-79eb-4df2-925c-7243a46d5ed8</id>
    36 			<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>
    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>
    37 		</item>
    49 		</item>
   100 			<text>Semantic versioning is required.</text>
   112 			<text>Semantic versioning is required.</text>
   101 			<text>The version number consists of three numbers: major.minor.pach.</text>
   113 			<text>The version number consists of three numbers: major.minor.pach.</text>
   102 			<text>Major version is incremented if there is an incompatible change.</text>
   114 			<text>Major version is incremented if there is an incompatible change.</text>
   103 			<text>Minor version is incremented if a feature is added in a compatible way.</text>
   115 			<text>Minor version is incremented if a feature is added in a compatible way.</text>
   104 			<text>Patch version is incremented if a bug is fixed in a compatible way.</text>
   116 			<text>Patch version is incremented if a bug is fixed in a compatible way.</text>
   105 			<note>see http://semver.org/</note>
       
   106 			<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>
   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>
   107 			<note>Propper Semantic versioning is especially important if the software is suposed to be used as dependency by others.</note>
   118 			<note>Propper Semantic versioning is especially important if the software is suposed to be used as dependency by others.</note>
   108 			<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>
   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>
       
   120 			<link>
       
   121 				<url>http://semver.org/</url>
       
   122 				<type>compatible</type>
       
   123 				<title>Semantic Versioning</title>
       
   124 			</link>
   109 		</item>
   125 		</item>
   110 		<item>
   126 		<item>
   111 			<id>cf557a11-b307-4c2f-a7b5-5d2485d23258</id>
   127 			<id>cf557a11-b307-4c2f-a7b5-5d2485d23258</id>
   112 			<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>
   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>
   113 		</item>
   129 		</item>
   301 			<text>if possible, always depend on abstract interfaces, not on particular implementations</text>
   317 			<text>if possible, always depend on abstract interfaces, not on particular implementations</text>
   302 		</item>
   318 		</item>
   303 		<item>
   319 		<item>
   304 			<id>c5974dcd-4855-40c5-ad22-894c128ca1dc</id>
   320 			<id>c5974dcd-4855-40c5-ad22-894c128ca1dc</id>
   305 			<text>from the whole system point-of-view, Bootstrappable builds should be taken into account</text>
   321 			<text>from the whole system point-of-view, Bootstrappable builds should be taken into account</text>
   306 			<note>see http://bootstrappable.org/</note>
   322 			<link>
       
   323 				<url>http://bootstrappable.org/</url>
       
   324 				<type>related</type>
       
   325 				<title>Bootstrappable builds</title>
       
   326 			</link>
   307 		</item>
   327 		</item>
   308 	</chapter>
   328 	</chapter>
   309 	
   329 	
   310 	<chapter>
   330 	<chapter>
   311 		<name>Easily auditable</name>
   331 		<name>Easily auditable</name>
   392 		<id>fa655b7c-f22d-4b98-ab7b-c0d0f608aad8</id>
   412 		<id>fa655b7c-f22d-4b98-ab7b-c0d0f608aad8</id>
   393 		<item>
   413 		<item>
   394 			<id>e56aad13-f68e-47ea-8b88-65fee6b5331a</id>
   414 			<id>e56aad13-f68e-47ea-8b88-65fee6b5331a</id>
   395 			<text>Any software with nontrivial user interface must be internationalized</text>
   415 			<text>Any software with nontrivial user interface must be internationalized</text>
   396 			<text>which means that it allows localization (translation of the UI to national languages and other customization to national conventions).</text>
   416 			<text>which means that it allows localization (translation of the UI to national languages and other customization to national conventions).</text>
   397 			<note>see https://en.wikipedia.org/wiki/Internationalization_and_localization</note>
   417 			<link>
       
   418 				<url>https://en.wikipedia.org/wiki/Internationalization_and_localization</url>
       
   419 				<type>related</type>
       
   420 				<title>Internationalization and localization</title>
       
   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>
       
   422 			</link>
   398 		</item>
   423 		</item>
   399 		<item>
   424 		<item>
   400 			<id>ad2f572b-497b-4523-b435-f9752fd1518a</id>
   425 			<id>ad2f572b-497b-4523-b435-f9752fd1518a</id>
   401 			<text>It should be possible to localize the user interface independently from the original author by creating an additionally installable language pack.</text>
   426 			<text>It should be possible to localize the user interface independently from the original author by creating an additionally installable language pack.</text>
   402 		</item>
   427 		</item>
   481 			<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>
   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>
   482 		</item>
   507 		</item>
   483 		<item>
   508 		<item>
   484 			<id>d5fbcc9e-a12c-44ce-909b-f514a579ab7e</id>
   509 			<id>d5fbcc9e-a12c-44ce-909b-f514a579ab7e</id>
   485 			<text>JavaScript or other code executed on client computers must be also free software with properly declared license.</text>
   510 			<text>JavaScript or other code executed on client computers must be also free software with properly declared license.</text>
   486 			<note>see https://www.gnu.org/software/librejs/</note>
   511 			<link>
       
   512 				<url>https://www.gnu.org/philosophy/javascript-trap.html</url>
       
   513 				<type>compatible</type>
       
   514 				<title>The JavaScript Trap</title>
       
   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>
       
   516 			</link>
       
   517 			<link>
       
   518 				<url>https://www.gnu.org/software/librejs/</url>
       
   519 				<type>related</type>
       
   520 				<title>GNU LibreJS</title>
       
   521 			</link>
   487 		</item>
   522 		</item>
   488 		<item>
   523 		<item>
   489 			<id>e02c3fba-93f3-4f16-bd23-f49a203e40bc</id>
   524 			<id>e02c3fba-93f3-4f16-bd23-f49a203e40bc</id>
   490 			<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>
   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>
   491 			<text>Such tasks should be feasible even with simple text browsers (e.g. Lynx or Links2).</text>
   526 			<text>Such tasks should be feasible even with simple text browsers (e.g. Lynx or Links2).</text>
   515 			<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>
   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>
   516 		</item>
   551 		</item>
   517 		<item>
   552 		<item>
   518 			<id>b0022cea-4caf-4663-ae24-5fc5da31333b</id>
   553 			<id>b0022cea-4caf-4663-ae24-5fc5da31333b</id>
   519 			<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>
   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>
   520 			<note>example of such rules and guidelines: https://www.gnu.org/prep/standards/</note>
   555 			<link>
       
   556 				<url>https://www.gnu.org/prep/standards/</url>
       
   557 				<type>related</type>
       
   558 				<title>GNU coding standards</title>
       
   559 				<description>example of such rules and guidelines</description>
       
   560 			</link>
   521 		</item>
   561 		</item>
   522 		<item>
   562 		<item>
   523 			<id>ea4a8d23-b2df-42eb-84ae-7687d35838c8</id>
   563 			<id>ea4a8d23-b2df-42eb-84ae-7687d35838c8</id>
   524 			<text>in order to contribute, it must not be required:</text>
   564 			<text>in order to contribute, it must not be required:</text>
   525 			<note>The term „contribution“ includes not only source code (patch) but also bugreports, feature specifications, documentation, assets (graphics, music etc.) or similar artifacts.</note>
   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>