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