prep work
[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 Urgent items (before announcing ng.gnunet.org):
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 zeros)
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 (basic anonymous FS only)
39   - design network structs (P2P)
40     + query
41     + response
42   - implement FS service
43     + datastore request queueing mechanism
44     + CS-functions (search/download, index, get_indexed, unindex)
45     + P2P-functions (query, response)
46   - implement testcases 
47     + URI API
48     + getopt API
49     + sharing API
50       ~ file-information
51       ~ publish (insert, index)
52       ~ download
53       ~ search
54       ~ unindex
55     + directory API
56 * new webpage
57   - prevent?
58   - migrate Mantis!?
59   - Doxygen generation
60   - run peer => have a 0.9.x hostlist
61   - improve basic documentation (configure, dependencies, what works, etc.)
62   - write minimal welcome/introduction to 0.9.x-development/webpage/status
63 => Deploy(able) development network
64
65
66 0.9.0pre0:
67 * Module features to implement:
68   - advanced FS API parts
69     + namespaces
70       ~ fundamental namespace API
71     + search: SBlocks, KSBlocks, probes
72     + collection
73     + location URIs (publish, search, download)
74     + persistence support (publish, unindex, search, download)
75     + indexing: index-failure-cleanup
76     + download: management/bounding of parallel downloads (for recursive dl.)
77     + datastore reservation (publishing)
78     + gnunet-publish (URI args)
79     + gnunet-download (directory)
80     + gnunet-search (options, incl. namespace search)
81     + gnunet-download (many options)
82     + gnunet-directory (man page, options)
83     + gnunet-pseudonym (all of it)
84   - implement adv. FS testcases 
85     + insert: sblocks, loc uris
86     + download: loc uris
87     + search: sblocks, skblocks, loc uris
88     + namespaces
89     + collection
90   - implement FS performance tests (needs TESTING)
91     + insert
92     + download
93     + search
94     + unindex
95   - non-anonymous FS service (needs DHT)
96     + basic DHT integration
97     + CS-DHT-functions (DHT-put of LOC)
98     + P2P-functions (DHT-get)
99   - setup (RC-pre0)
100     + default generation
101     + need to settle basic design; do we want to keep guile?
102   - testing (RC-pre0)
103     + implement library for distributed testing [Nate]
104     + implement testcases for distributed testing [Nate]
105
106 0.9.0pre1:
107 * Module features to implement:
108   - tbench (RC-pre1)
109     + good to have for DV evaluation!
110   - DV (RC-pre1)
111     + write DV API 
112     + implement DV service [Nate & CG]
113     + implement DV library [Nate]
114     + implement DV transport plugin [Nate & CG]
115     + implement testcases [Nate]
116     + implement performance tests [Nate]
117 * GUIs to implement:
118   - gtk (RC-pre1)
119     + how to integrate scheduler with GTK event loop!
120
121 0.9.0pre2:
122 * Module features to implement:
123   - tracekit (RC-pre2)
124     + good to have for DV/DHT evaluation!
125   - DHT (RC-pre2)
126     + implement DHT service (needs DV, DATACACHE)
127     + implement DHT library
128     + implement testcases
129     + implement performance tests
130 * GUIs to implement:
131   - fuse (RC-pre2)
132 * Plugins to implement:
133   - UDP backend (RC-pre2)
134     + Fragmentation library 
135     + actual plugin
136   - HTTP backend (RC-pre2)
137
138 0.9.0pre3:
139 * GUIs to implement:
140   - qt (RC-pre3)
141     + see discussions @ FISL about integration with event loop!
142 * Determine RC bugs and fix those!
143
144 0.9.0:
145 * Documentation
146   - update man pages
147   - update webpage documentation
148 * new webpage:
149   - expand bibliography
150   - convert documentation pages to books
151   - update books (especially for developers)
152   - create good Drupal theme for GNUnet
153   - make a NICE download page and figure out how to 
154     enable developers to publish TGZs nicely
155   - port "contact" page; add impressum
156   - add content type for "todo" items?
157   - DNS activation
158 * Plugins to implement:
159   - MySQL database backends
160     + datacache
161     + datastore
162   - Postgres database backends
163     + datacache
164     + datastore
165   - vpn
166 * Determine RC bugs and fix those!
167
168
169 0.9.x:
170 * Plugins to implement:
171   - SMTP transport backend
172   - HTTPS transport backend
173     + improved HTTPS support in MHD
174     + actual plugin