summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2008-12-21 19:14:12 -0500
committerDavid Zeuthen <davidz@redhat.com>2008-12-21 19:14:12 -0500
commit4b17af2718f562620a2236456a46c5a35f500bc3 (patch)
tree2fe1414855b9cc1a74863c399a82fde5074d6273
parentc340f7d0aefc1f2287c370fa864012ed2379c426 (diff)
revise TODO list0.1
-rw-r--r--docs/TODO64
1 files changed, 26 insertions, 38 deletions
diff --git a/docs/TODO b/docs/TODO
index 22d0434..1b5c976 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -1,36 +1,26 @@
-Before first release:
-
- o Add I_KNOW_EGG_DBUS_IS_UNSTABLE guards
-
- o Port remaining tests from exampleservice.py to exampleserver.c
+Can happen before 1.0 (before API/ABI freeze):
o Review TODO items scattered around the code and update this file
- o Review all annotations and move them to a proper name space
- - probably org.gtk.EggGDBus.*
- - also document all of them!
+ o Document all annotations
o Port DBusConnection mainloop integration from dbus-glib to avoid that
dependency
- o Rename dbus2gobject to eggdbus-binding-tool
-
o Add single-include-policy to generated files such as to force
the user to include <namespace>bindings.h
-Can happen before 1.0 (before API/ABI freeze):
-
o Make sure the values and nicks (e.g /*< nick=org.example.Error >*/)
for enums are nicely indented since it's shown verbatim in the
generated gtk-doc output
- o Rewrite MethodCalls(), #FlagReference etc. in .DocString annotations
- to match gtk-doc (this is probably hard)
+ o Rewrite references such as MethodCalls(), #FlagReference etc. in
+ .DocString annotations to match gtk-doc (this is probably hard)
o Add a mode to generate nice DocBook that describes only the
- D-Bus interface; similar to spectodocbook.xsl that the DeviceKit
- projects use
+ D-Bus interface; similar to spectodocbook.xsl that the DeviceKit,
+ ConsoleKit and others projects use
o Use quarks for all uses of g_object_set_data() etc.
@@ -39,21 +29,28 @@ Can happen before 1.0 (before API/ABI freeze):
o Audit all libdbus calls for return value and abort() on OOM
o Add some harness to easily check that we don't leak anything when
- building in maintainer mode. Add to test suite.
+ building in maintainer mode. Add to test suite. Something similar
+ to what Alex mentions here
+
+ http://blogs.gnome.org/alexl/2006/04/13/nautilus-memory-use-analysis/
+
+ It wouldn't hurt having this kind of stuff built into the GObject
+ library itself and have it kick in if an environment variable
+ is set or whatever.
o Make sure our test harness can run during 'make check' even
when there is no session bus (for e.g. running the test suite
as part of RPM build to ensure the test suite passes on many
archs)
- o Return proxies instead of EggDBusObjectPath; provide an escape
+ o Maybe return proxies instead of EggDBusObjectPath; provide an escape
hatch (through an annotation) to avoid this behavior (e.g. for broken
services that return an object path that refers to an object from
another service and/or bus). Maybe something like
<annotation name="org.gtk.GObject.ObjectPath" value="no_proxy"/>
- o Use annotations to let the user call functions to transform both
+ o Maybe use annotations to let the user call functions to transform both
incoming and outgoing parameters:
- <annotation name="org.gtk.GObject.ParamMapFrom"
value="user_supplied_map_from_func"/>
@@ -67,21 +64,21 @@ Can happen before 1.0 (before API/ABI freeze):
handle_message() in the generated code. This should both make it more
efficient and the generated code smaller.
- o Move EggDBusConnection to EggDBusBusConnection and write a superclass
+ o Maybe move EggDBusConnection to EggDBusBusConnection and write a superclass
EggDBusConnection that can be used for peer-to-peer communication.
Add test-cases for peer-to-peer. Also make sure that the bus connection
class is a singleton.
- o Add marker magic in GDBusInterface to avoid exporting interfaces
- that don't "extend" GDBusInterface... (should perhaps file a bug
- asking for the ability to extend a GInterface in GObject but...)
+ o Have a way to do peer-to-peer connection. Ideally we want to use
+ something like the networking code that is starting to appear in GIO.
+ Might need libdbus changes to create a DBusConnection from a UNIX fd.
o Figure out remaining D-Bus spec functionality needed (cf. the current
EggDBusChanged() signal on org.fd.Properties) for efficient operation;
implement it and mail the D-Bus mailing list for review/inclusion in
the D-Bus spec.
- o Retrieve properties async when constructing an EggDBusProxy and
+ o Retrieve properties async when constructing an EggDBusInterfaceProxy and
make it possible to get the proxy async from the connection (ie.
so when you get it then it has all properties).
@@ -100,17 +97,13 @@ Can happen before 1.0 (before API/ABI freeze):
won't have to create a proxy for each and every service side
objects...
- o Review the GObject code to get an idea of evil it is to block in
- get_property()/set_property(). Code in the wild does this, see
- e.g. NetworkManager.
-
o Write a good tutorial
- Some like the Java Pet Store but probably simpler
o Make sure all functions and programs are properly documented (e.g.
gtk-doc and man pages)
- o Make sure all generated code got full gtk-doc coverage. Also
+ o Make sure all generated code have full gtk-doc coverage. Also
make sure it got the proper GObject-Introspection annotations.
o Make sure we have test coverage of all important bits
@@ -118,10 +111,10 @@ Can happen before 1.0 (before API/ABI freeze):
o Figure out what level of thread safety is needed; then implement and
write test cases.
- o Rework collection APIs
- - we want something like libgee
- - see also http://bugzilla.gnome.org/show_bug.cgi?id=560061
- - how do we nicely handle array of primitive types? (e.g. guint8, double)
+ o Collection API
+ - we want something like libgee but with the nicer C API that we
+ already have in EggDBusArraySeq and EggDBusHashMap.
+ - see http://bugzilla.gnome.org/show_bug.cgi?id=560061
o Is GMarkup a good enough parser for introspection XML or do we
want a real XML parser like Expat? If so, we might want to move
@@ -138,16 +131,11 @@ Can happen before 1.0 (before API/ABI freeze):
Maybe this is just the Architecture Astronaut talking.
- o Talk to Ryan about how EggDBusVariant relates to his DVariant stuff
-
Can happen post 1.0 (after API/ABI freeze):
o Define an IDL language instead of abusing D-Bus introspection XML.
See [1] for an example of how this could look like.
- o Get this stuff merged in GLib
-
-
[1] : Ad-hoc proposal for what an IDL could look like. Totally not
thought through yet, only added to get a better feeling of what
annotations is needed. Yes, it's pretty lame right now.