docs & GNUnet-style return codes
[oweals/gnunet.git] / TODO
1 Implementable right now (but not necessarily important), with caveats
2 (unavailable components that will limit what can be implemented right
3 away), in order in which they will likely be done:
4 * TESTING
5 * FS (DHT not available)
6 * SETUP
7 * DV (distributed testing not available)
8 * TBENCH (distributed testing not available)
9 * TRACEKIT (distributed testing not available)
10 * HTTP transport
11 * FRAGMENTATION
12 * MySQL / Postgres plugins (datastore, datacache)
13 * UPNP
14
15
16 PHASE #2: (Goal: recover basic file-sharing functionality)
17 * TESTING (needed for DV, DHT, Topology)
18   - implement library for local testing
19     + modify configuration to allow controlling
20       connections for non-local starts
21     + CORE service does not start with valid peer ID (all zeross)
22       -- testcase fails!
23     + consider changing API for peer-group termination
24       to call continuation when done
25     + testbed creation with topology (needs working F2F topology) [Nate]
26     + testbed with churn [Nate]
27   - implement testcases for library
28     + get test for basic peer start to work!
29     + test basic peer connect
30     + test group start
31     + test basic peer re-configure [Nate]
32     + test topology creation [Nate]
33     + test churn generation [Nate]
34 * TOPOLOGY:
35   - implement testcases (needs TESTING)
36 * HOSTLIST:
37   - implement testcases
38 * FS (anonymous FS only)
39   - design network structs (CS)
40     + list-indexed, index, unindex
41     + search/download, response
42   - implement basic FS library
43     + sharing API
44       ~ publish (indexing)
45       ~ unindex & list indexed!!! (need publish to be done)
46       ~ search (need publish to be done)
47       ~ download (need publish/search to be done)
48   - design network structs (CS/P2P)
49   - implement FS service
50     + datastore request queueing mechanism
51     + CS-functions (search, download, index, get_indexed, unindex)
52     + P2P-functions (query, response)
53   - implement testcases 
54     + URI API
55     + getopt API
56     + sharing API (needs TESTING)
57       ~ file-information
58       ~ publish (insert, index)
59       ~ download
60       ~ search
61       ~ unindex
62       ~ namespaces
63       ~ collection
64     + directory API
65   - advanced sharing API 
66     + namespaces => SBlocks!
67     + collection
68     + location URIs (publish, search, download)
69     + persistence support (publish, unindex, search, download)
70     + datastore reservation (publishing)
71   - implement adv. testcases 
72     + insert: sblocks, loc uris
73     + download: loc uris
74     + search: sblocks, skblocks, loc uris
75     + namespaces
76     + collection
77   - implement performance tests (needs TESTING)
78     + insert
79     + download
80     + search
81     + unindex
82   - implement adv. FS service (needs DHT)
83     + basic DHT integration
84     + CS-DHT-functions (DHT-put of LOC)
85     + P2P-functions (DHT-get)
86 * new webpage
87   - install on proper server
88   - activate as ng.gnunet.org
89 => Deploy(able) development network
90
91
92 PHASE #3: (Goal: ready for pre-release) [completion-goal: end of 2009]
93 * Module features to implement:
94   - setup (RC-pre0)
95     + default generation
96     + need to settle basic design; do we want to keep guile?
97   - testing (RC-pre0)
98     + implement library for distributed testing [Nate]
99     + implement testcases for distributed testing [Nate]
100   - tbench (RC-pre1)
101     + good to have for DV evaluation!
102   - DV (RC-pre1)
103     + write DV API 
104     + implement DV service [Nate & CG]
105     + implement DV library [Nate]
106     + implement DV transport plugin [Nate & CG]
107     + implement testcases [Nate]
108     + implement performance tests [Nate]
109   - tracekit (RC-pre2)
110     + good to have for DV/DHT evaluation!
111   - DHT (RC-pre2)
112     + implement DHT service (needs DV, DATACACHE)
113     + implement DHT library
114     + implement testcases
115     + implement performance tests
116 * GUIs to implement:
117   - gtk (RC-pre1)
118     + how to integrate scheduler with GTK event loop!
119   - fuse (RC-pre2)
120   - qt (RC-pre3)
121     + see discussions @ FISL about integration with event loop!
122 * Plugins to implement:
123   - UDP backend (RC-pre2)
124     + Fragmentation library 
125     + actual plugin
126   - HTTP backend (RC-pre2)
127 * Determine RC bugs and fix those!
128
129 => PRE-RELEASE
130
131
132 PHASE #4: [completion-goal: mid 2010]
133 * Documentation
134   - Doxygen generation
135   - lcov generation
136   - update man pages
137   - update webpage documentation
138 * new webpage:
139   - expand bibliography
140   - convert documentation pages to books
141   - update books (especially for developers)
142   - create good Drupal theme for GNUnet
143   - make a NICE download page and figure out how to 
144     enable developers to publish TGZs nicely
145   - port "contact" page; add impressum
146   - add content type for "todo" items?
147   - DNS activation
148 * Plugins to implement:
149   - MySQL database backends
150     + datacache
151     + datastore
152   - Postgres database backends
153     + datacache
154     + datastore
155   - vpn
156 * Determine RC bugs and fix those!
157
158 => 0.9.0 RELEASE
159
160
161
162
163 Post 0.9.0 features:
164 * SMTP transport backend
165 * HTTPS transport backend
166   - improved HTTPS support in MHD
167   - actual plugin