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