Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
--- a/text/ssm.en.xml Sun Sep 22 01:36:35 2019 +0200
+++ b/text/ssm.en.xml Mon Sep 23 14:51:12 2019 +0200
@@ -167,56 +167,30 @@
</chapter>
<chapter>
- <name>Modular architecture</name>
+ <name>Modular architecture and extensibility</name>
<id>c56e7e86-e480-4a5d-8a47-ab155dcd59b1</id>
<item>
<id>e50424e8-94f3-48aa-bf01-0ba984eb2349</id>
- <text>larger and multi-purpose software should be divided into smaller modules</text>
+ <text>Larger and multi-purpose software must be divided into smaller modules.</text>
</item>
<item>
<id>e752efae-75c9-4620-aa14-65c4949a3609</id>
- <text>modules must have defined dependencies (less = better)</text>
+ <text>The modules must have defined dependencies (less = better).</text>
+ <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>
+ <note>The required dependency should contain just interfaces (method/function signatures) and data structures but no implementation (executable code).</note>
</item>
<item>
<id>e9988ed0-d686-41a0-9f1e-3243ac5235d5</id>
- <text>particular modules should be compilable and executable separately</text>
- </item>
- <item>
- <id>ac722cec-0734-4d80-9885-d70a97b6402b</id>
- <text>whole system should be compilable (buildable) with only selected modules – must not require compilation or even distribution of all modules, if they are not necessary</text>
+ <text>Particular modules should be compilable and executable (installable) independently.</text>
+ <text>It should not be necessary to recompile the core and other modules if only one module is changed.</text>
+ <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>
+ <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>
</item>
- </chapter>
-
- <chapter>
- <name>Extensible</name>
- <id>d333af72-b5b5-432f-b564-a008d54a85d1</id>
<item>
<id>a7bc51ba-9832-4f75-983c-e75dc0801113</id>
- <text>able to be extended</text>
- <item>
- <id>e190f58d-1c16-4198-94d6-fc1a99fa85a0</id>
- <text>by configuration (RegExp, SQL, XSLT, XPath etc.)</text>
- </item>
- <item>
- <id>fde301e5-6e75-49a4-85c8-a231f6a63036</id>
- <text>by scripting (Guile, Bash, Python, Lua, ECMA Script etc.)</text>
- </item>
- <item>
- <id>a9c63cea-b9df-4bbd-bec1-84a047514667</id>
- <text>and/or third-party plugins/modules</text>
- <item>
- <id>de7270db-0410-4152-974f-4f0d74ff255b</id>
- <text>it should be easy to create a third-party module and plug it in an existing system</text>
- </item>
- <item>
- <id>fb4b07d1-6af7-44d9-8e6a-89ea63638652</id>
- <text>dependencies needed to write an extension (i.e. header files, API classes/interfaces) should be as small as possible (do not require large codebase to write a mere plug-in); the required dependency should contain just interfaces (method/function signatures) and data structures but no implementation (executable code)</text>
- </item>
- </item>
- </item>
- <item>
- <id>e41134a4-715c-4926-a7df-01ff3759eda1</id>
- <text>there should be public directory of extensions/scripts</text>
+ <text>Another good ways to extend and customize the software are:</text>
+ <text>configuration (XML, INI, RegExp, SQL, XSLT, XPath etc.) and</text>
+ <text>scripting (Guile, Bash, Python, Lua, ECMA Script etc.)</text>
</item>
</chapter>
@@ -558,6 +532,14 @@
<id>b6cf8d5f-0fc9-46f7-8e38-8342a1229037</id>
<text>every security incident must be clearly documented and investigated – do not obscure it</text>
</item>
+ <item>
+ <id>e41134a4-715c-4926-a7df-01ff3759eda1</id>
+ <text>There should be public directory of extensions/scripts.</text>
+ </item>
+ <item>
+ <id>fed07648-106a-4b7c-9026-509c82109448</id>
+ <text>Source code repository (versioning system) must be public. Do not publish just source code snapshots of released versions.</text>
+ </item>
</chapter>
<chapter>
@@ -590,6 +572,7 @@
<id>af6a589f-d419-483f-b7b2-07b6e9da3924</id>
<text>to sign any political, religious or other proclamation or agree with it</text>
</item>
+ <note>The term „contribution“ includes not only source code (patch) but also bugreports, feature specifications, documentation, assets (graphics, music etc.) or similar artifacts.</note>
</item>
<item>
<id>b4319392-8d6a-4f07-8a94-7ae2ed97c787</id>
@@ -616,25 +599,4 @@
<text>the contributor must not loose the right to use or distribute the contributed code under any license (of his choice)</text>
</item>
</chapter>
-
- <chapter>
- <name>Open development – has public:</name>
- <id>b704bc25-d3c1-4481-98bf-54455c507f37</id>
- <item>
- <id>fed07648-106a-4b7c-9026-509c82109448</id>
- <text>source code repository (versioning system), not just source code snapshots of released versions</text>
- </item>
- <item>
- <id>d9934675-abbd-418f-abf6-dfeaaea6a544</id>
- <text>description of the process of accepting external patches</text>
- </item>
- <item>
- <id>e6d2175a-97ff-4fd5-9bc1-a3914c6dd719</id>
- <text>feature/bug tracking system</text>
- </item>
- <item>
- <id>ae430fee-4850-453f-9382-282d7eed27a4</id>
- <text>plan of supported versions/branches</text>
- </item>
- </chapter>
</manifesto>