Browse Source

add dependencies and code quality information to the readme

Julius Pfrommer 7 years ago
parent
commit
9985ddeebd
1 changed files with 21 additions and 5 deletions
  1. 21 5
      README.md

+ 21 - 5
README.md

@@ -33,11 +33,6 @@ open62541 implements the OPC UA binary protocol stack as well as a client and se
 - Code-Generation
   - Support for generating data types from standard XML definitions
   - Support for generating server-side information models (nodesets) from standard XML definitions
-- Code quality checks
-  - Every commit checked with continuous integration and unit tests (code coverage > 80%)
-  - Memory leak detection using Valgrind (Linux) and DrMemory (Windows)
-  - Static code analysis with cpp-check and clang static code analysis
-  - Fuzz testing with [oss-fuzz](https://github.com/google/oss-fuzz)
   
 Features currently being implemented:
 - Target 0.3 release (to be released in the coming weeks):
@@ -48,6 +43,27 @@ Features currently being implemented:
   - Event-loop (background tasks) and asynchronous service requests in the client, WIP #1117 #1410
   - Publish/Subscribe based on UDP (Specification Part 14), WIP by @jpfr
 
+### Dependencies
+
+None.
+
+On a more serious note, on most systems, open62541 requires the C standard library only. For dependencies during the build process, see the following list and the [build documentation](https://open62541.org/doc/current/building.html) for details.
+
+- Core Library: The core library has no dependencies besides the C99 standard headers.
+- Default Plugins: The default plugins use the POSIX interfaces for networking and accessing the system clock. Ports to different (embedded) architectures are achieved by customizing the plugins.
+- Building and Code Generation: The build environment is generated via CMake. Some code is auto-generated from XML definitions that are part of the OPC UA standard. The code generation scripts run with both Python 2 and 3.
+
+### Code Quality
+
+We emphasize code quality. The following quality metrics are continuously checked and are ensured to hold before an official release is made:
+
+- Zero errors indicated by the Compliance Testing Tool (CTT) of the OPC Foundation for the supported features
+- Zero compiler warnings from GCC/Clang/MSVC with very strict compilation flags
+- Zero issues indicated by unit tests (more than 80% coverage)
+- Zero issues indicated by clang-analyzer, clang-tidy, cpp-check and the Coverity static code analysis tools
+- Zero unresolved issues from fuzzing the library in Google's oss-fuzz infrastructure
+- Zero issues indicated by Valgrind (Linux), DrMemory (Windows) and Clang AddressSanitizer / MemorySanitizer for the CTT tests, unit tests and fuzzing
+
 ### Using open62541
 
 A general introduction to OPC UA and the open62541 documentation can be found at http://open62541.org/doc/current.