summaryrefslogtreecommitdiff
path: root/HACKING
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2009-05-29 00:46:26 +0000
committerChristian Grothoff <christian@grothoff.org>2009-05-29 00:46:26 +0000
commit0a217a8df1657b4334b55b0e4a6c7837a8dbcfd9 (patch)
tree6b552f40eb089db96409a312a98d9b12bd669102 /HACKING
ng
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING57
1 files changed, 57 insertions, 0 deletions
diff --git a/HACKING b/HACKING
new file mode 100644
index 000000000..3c50af952
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,57 @@
+Naming conventions:
+
+include files:
+- _lib: library without need for a process
+- _service: library that needs a service process
+- _plugin: plugin definition
+- _protocol: structs used in network protocol
+- exceptions:
+ * GNUNET_config.h --- generated // FIXME: decapitalize
+ * platform.h --- first included
+ * plibc.h --- external library
+ * gnunet_common.h --- fundamental routines
+ * gnunet_directories.h --- generated
+ * gettext.h --- external library
+
+
+exported symbols:
+- must start with "GNUNET_modulename_" and be defined in "modulename.c"
+- exceptions: those defined in gnunet_common.h
+
+
+testcases:
+- must be called "test_module-under-test_case-description.c"
+- "case-description" maybe omitted if there is only one test
+
+
+performance tests:
+- must be called "perf_module-under-test_case-description.c"
+- "case-description" maybe omitted if there is only one test
+
+
+
+src/ directories:
+- apps: end-user applications (i.e., gnunet-search)
+- connectors: libraries requiring services (i.e., libgnunetstatistics)
+- libs: standalone libraries (i.e., libgnunetecrs, etc.)
+- plugins: loadable plugins (i.e., TCP transport, MySQL backend)
+ * transports: udp/tcp/http/dv???
+- services: arm-controlled applications (i.e., gnunet-service-statistics)
+- util: library for everyone
+
+For each directory in services, there should be one
+in connectors and vice-versa.
+
+For each entry in apps, there should be one in libs.
+
+
+
+Minimum file-sharing system (in order of dependency):
+gnunet-arm
+gnunet-transport (name?)
+gnunet-core (name?)
+gnunet-datastore
+gnunet-statistics (integrate traffic?)
+gnunet-dv
+gnunet-dht
+gnunet-fs