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