gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-docs] 02/02: style


From: gnunet
Subject: [GNUnet-SVN] [taler-docs] 02/02: style
Date: Wed, 18 Sep 2019 19:19:16 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository docs.

commit 10f8ce889c36458d21bf1161295a35b152eb68db
Author: Florian Dold <address@hidden>
AuthorDate: Wed Sep 18 19:18:54 2019 +0200

    style
---
 onboarding.rst | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 83 insertions(+), 3 deletions(-)

diff --git a/onboarding.rst b/onboarding.rst
index cb3044c..ea0ae83 100644
--- a/onboarding.rst
+++ b/onboarding.rst
@@ -1,6 +1,7 @@
 Developer Onboarding Manual
 ###########################
 
+.. contents:: Table of Contents
 
 Taler installation
 ==================
@@ -385,11 +386,89 @@ Code coverage is done with the Gcov / Lcov
 \*nightly\* (once a day) by a Buildbot worker. The coverage results are
 then published at ``https://lcov.taler.net/``.
 
-Appendix
-========
+
+Coding Style
+============
+
+These are the general coding style rules for Taler.
+
+* Baseline rules are to follow GNU guidelines, modified or extended
+  by the GNUnet style: https://gnunet.org/style
+
+Naming conventions
+------------------
+
+* include files (very similar to GNUnet):
+
+  * if installed, must start with "``taler_``" (exception: platform.h),
+    and MUST live in src/include/
+  * if NOT installed, must NOT start with "``taler_``" and
+    MUST NOT live in src/include/ and
+    SHOULD NOT be included from outside of their own directory
+  * end in "_lib" for "simple" libraries
+  * end in "_plugin" for plugins
+  * end in "_service" for libraries accessing a service, i.e. the exchange
+
+* binaries:
+
+  * taler-exchange-xxx: exchange programs
+  * taler-merchant-xxx: merchant programs (demos)
+  * taler-wallet-xxx: wallet programs
+  * plugins should be libtaler_plugin_xxx_yyy.so: plugin yyy for API xxx
+  * libtalerxxx: library for API xxx
+
+* logging
+
+  * tools use their full name in GNUNET_log_setup
+    (i.e. 'taler-exchange-keyup') and log using plain 'GNUNET_log'.
+  * pure libraries (without associated service) use 'GNUNET_log_from'
+    with the component set to their library name (without lib or '.so'),
+    which should also be their directory name (i.e. 'util')
+  * plugin libraries (without associated service) use 'GNUNET_log_from'
+    with the component set to their type and plugin name (without lib or 
'.so'),
+    which should also be their directory name (i.e. 'exchangedb-postgres')
+  * libraries with associated service) use 'GNUNET_log_from'
+    with the name of the service,  which should also be their
+    directory name (i.e. 'exchange')
+
+* configuration
+
+  * same rules as for GNUnet
+
+* exported symbols
+
+  * must start with TALER_[SUBSYSTEMNAME]_ where SUBSYSTEMNAME
+    MUST match the subdirectory of src/ in which the symbol is defined
+  * from libtalerutil start just with ``TALER_``, without subsystemname
+  * if scope is ONE binary and symbols are not in a shared library,
+    use binary-specific prefix (such as TMH = taler-exchange-httpd) for
+    globals, possibly followed by the subsystem (TMH_DB_xxx).
+
+* structs:
+
+  * structs that are 'packed' and do not contain pointers and are
+    thus suitable for hashing or similar operations are distinguished
+    by adding a "P" at the end of the name. (NEW)  Note that this
+    convention does not hold for the GNUnet-structs (yet).
+  * structs that are used with a purpose for signatures, additionally
+    get an "S" at the end of the name.
+
+* private (library-internal) symbols (including structs and macros)
+
+  * must not start with ``TALER_`` or any other prefix
+
+* testcases
+
+  * must be called "test_module-under-test_case-description.c"
+
+* performance tests
+
+  * must be called "perf_module-under-test_case-description.c"
+
+
 
 Testing library
----------------
+===============
 
 This chapter is a VERY ABSTRACT description of how testing is
 implemented in Taler, and in NO WAY wants to substitute the reading of
@@ -458,3 +537,4 @@ to tamper with the data exchanged by A and B.
 
 Please refer to the Twister codebase (under the ``test`` directory) in
 order to see how to configure it.
+

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]