[18252] | 1 | GNOME 1.4 release (must freeze VERY soon) |
---|
| 2 | === |
---|
| 3 | |
---|
| 4 | The release with 1.4 is not going to be super-useful for large-scale |
---|
| 5 | installation administration; it's mostly just going to be a |
---|
| 6 | process-transparent way to store settings, limited to single |
---|
| 7 | workstation config files. |
---|
| 8 | |
---|
| 9 | No more source-incompatible API changes are planned for 1.4 at this |
---|
| 10 | time. |
---|
| 11 | |
---|
| 12 | API additions |
---|
| 13 | == |
---|
| 14 | |
---|
| 15 | * Implement batch gets |
---|
| 16 | |
---|
| 17 | Other |
---|
| 18 | == |
---|
| 19 | |
---|
| 20 | * Maintain documentation |
---|
| 21 | |
---|
| 22 | * Envisioneering |
---|
| 23 | |
---|
| 24 | Maybe 1.4 |
---|
| 25 | === |
---|
| 26 | |
---|
| 27 | * Implement dump/slurp functionality (define XML DTD to represent |
---|
| 28 | modifications to the database; augment gconftool to be able to |
---|
| 29 | write out the current state of the database in this format, |
---|
| 30 | and also apply the changes given in the format) |
---|
| 31 | |
---|
| 32 | * Make it so that once the first notification of a change in a GConfChangeSet |
---|
| 33 | is delivered, the other values will be retrieved by gconf_get() and |
---|
| 34 | gconf_client_get(), which means a way to invalidate GConfClient |
---|
| 35 | cached stuff, and doing the setting of all values in the changeset |
---|
| 36 | before the notifications. |
---|
| 37 | |
---|
| 38 | * Allow various currently-hardcoded items to be set from environment variables |
---|
| 39 | or a config file ("home" directory to use, timeout lengths, etc. are |
---|
| 40 | some candidates). |
---|
| 41 | |
---|
| 42 | * "Laptop mode" where GConf avoids touching the disk much |
---|
| 43 | |
---|
| 44 | * Implement server-side search (Kind of hard to actually implement |
---|
| 45 | on the server, at least in any sort of fast way, and |
---|
| 46 | all other gconf-using apps will block while the server is searching, |
---|
| 47 | without some tricks to let the main loop run sometimes, so, dunno.) |
---|
| 48 | |
---|
| 49 | * Implement a way to get the GConfMetaInfo |
---|
| 50 | |
---|
| 51 | Future |
---|
| 52 | === |
---|
| 53 | |
---|
| 54 | * Berkeley DB backend (note: consider issues surrounding various incompatible |
---|
| 55 | versions of DB and historical problems with the upgrade path, cf. |
---|
| 56 | RPM and gnome-mime-db) |
---|
| 57 | |
---|
| 58 | * Performance tuning |
---|
| 59 | |
---|
| 60 | * Document locking issues for backends (backends should perform |
---|
| 61 | their own locking, handle concurrency, etc.) |
---|
| 62 | |
---|
| 63 | * Document which database GConf will write to given multiple |
---|
| 64 | writeable databases (i.e. the first one it can write to, |
---|
| 65 | at the moment, maybe eventually the "database map" will |
---|
| 66 | specify which it writes to) |
---|
| 67 | |
---|
| 68 | * Implement a way for backends to notify gconfd of changes they detect |
---|
| 69 | |
---|
| 70 | * Implement a "database map"; this would be a tree structure (similar |
---|
| 71 | in implementation to GConfListeners). Rather than storing listeners |
---|
| 72 | at the tree nodes, store a list of databases in order, and |
---|
| 73 | readability/writability of each database. Create a config file |
---|
| 74 | (perhaps in the GMarkup XML subset from glib 2.0) for configuring |
---|
| 75 | the database map. Figure out whether this can entirely replace |
---|
| 76 | the readable/writable methods from the backend vtable. |
---|
| 77 | It likely replaces the gconf/path configuration file. (Essentially |
---|
| 78 | the idea is a database path per key/directory, instead of a |
---|
| 79 | global database path, giving administrators more flexibility.) |
---|
| 80 | |
---|
| 81 | Also, aliases for paths, and way for apps to install a suggested |
---|
| 82 | default database alias ("per_display" "per_homedir" etc.) |
---|
| 83 | (See gconf-list post) |
---|
| 84 | |
---|
| 85 | Details to be figured out. |
---|
| 86 | |
---|
| 87 | * GUI admin tool, and GUI user tool (are these the same?) |
---|
| 88 | |
---|
| 89 | * Thread support for scalability; may require ORBit thread safety? |
---|
| 90 | Or a protocol with oneway CORBA methods (client requests a value, |
---|
| 91 | gconfd calls back when it has the value) |
---|
| 92 | |
---|
| 93 | * Fix non-default GConfEngines: this means propagating change |
---|
| 94 | notifications from them to other engines with the same |
---|
| 95 | databases. Or maybe instead we should use the mechanism |
---|
| 96 | used when the same database is in two gconfds (backend |
---|
| 97 | notifies us of changes). |
---|
| 98 | |
---|
| 99 | Suspect that all notification has to come from the backend, |
---|
| 100 | this is the only way to get sane behavior if _some_ notification |
---|
| 101 | comes from the backend. Hmm. |
---|
| 102 | |
---|
| 103 | * Use a real DTD and a nicer structure for the XML backend format |
---|
| 104 | |
---|
| 105 | * The design of the client-server architecture is horked, overcomplicating |
---|
| 106 | GConf.idl; the client should remember all its state (listeners, etc.), |
---|
| 107 | and when the server disappears (we lose the connection to it), the |
---|
| 108 | client resends its state; thus eliminating the saved state file |
---|
| 109 | and making things more robust. |
---|
| 110 | |
---|