more fixes
[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   - review FS API [Nils, Amatus, CG]
40   - design network structs (CS)
41   - implement FS library
42     + URI API -- DONE (but do more testing)
43     + getopt API -- DONE (but do more testing)
44     + persistence mechanism (design done)
45     + sharing API
46       ~ file-information (needs testing)
47       ~ directory (needs testing)
48       ~ publish (work in progress...)
49       ~ unindex & list indexed!!! (need publish to be done)
50       ~ search (need publish to be done)
51       ~ download (need publish/search to be done)
52       ~ namespaces
53       ~ collection
54   - design network structs (P2P)
55   - datastore request queueing mechanism
56   - implement FS service (needs DHT)
57     + download
58     + search
59   - implement testcases 
60     + URI API
61     + getopt API
62     + sharing API (needs TESTING)
63       ~ file-information
64       ~ insert
65       ~ download
66       ~ search
67       ~ unindex
68       ~ namespaces
69       ~ collection
70     + directory API
71   - implement performance tests (needs TESTING)
72     + insert
73     + download
74     + search
75     + unindex
76 * new webpage
77   - install on proper server
78   - activate as ng.gnunet.org
79 => Deploy(able) development network
80
81
82 PHASE #3: (Goal: ready for pre-release) [completion-goal: end of 2009]
83 * Module features to implement:
84   - setup (RC-pre0)
85     + default generation
86     + need to settle basic design; do we want to keep guile?
87   - testing (RC-pre0)
88     + implement library for distributed testing [Nate]
89     + implement testcases for distributed testing [Nate]
90   - tbench (RC-pre1)
91     + good to have for DV evaluation!
92   - DV (RC-pre1)
93     + write DV API 
94     + implement DV service [Nate & CG]
95     + implement DV library [Nate]
96     + implement DV transport plugin [Nate & CG]
97     + implement testcases [Nate]
98     + implement performance tests [Nate]
99   - tracekit (RC-pre2)
100     + good to have for DV/DHT evaluation!
101   - DHT (RC-pre2)
102     + implement DHT service (needs DV, DATACACHE)
103     + implement DHT library
104     + implement testcases
105     + implement performance tests
106 * GUIs to implement:
107   - gtk (RC-pre1)
108     + how to integrate scheduler with GTK event loop!
109   - fuse (RC-pre2)
110   - qt (RC-pre3)
111     + see discussions @ FISL about integration with event loop!
112 * Plugins to implement:
113   - UDP backend (RC-pre2)
114     + Fragmentation library 
115     + actual plugin
116   - HTTP backend (RC-pre2)
117 * Determine RC bugs and fix those!
118
119 => PRE-RELEASE
120
121
122 PHASE #4: [completion-goal: mid 2010]
123 * Documentation
124   - Doxygen generation
125   - lcov generation
126   - update man pages
127   - update webpage documentation
128 * new webpage:
129   - expand bibliography
130   - convert documentation pages to books
131   - update books (especially for developers)
132   - create good Drupal theme for GNUnet
133   - make a NICE download page and figure out how to 
134     enable developers to publish TGZs nicely
135   - port "contact" page; add impressum
136   - add content type for "todo" items?
137   - DNS activation
138 * Plugins to implement:
139   - MySQL database backends
140     + datacache
141     + datastore
142   - Postgres database backends
143     + datacache
144     + datastore
145   - vpn
146 * Determine RC bugs and fix those!
147
148 => 0.9.0 RELEASE
149
150
151
152
153 Post 0.9.0 features:
154 * SMTP transport backend
155 * HTTPS transport backend
156   - improved HTTPS support in MHD
157   - actual plugin