[Freeassociation-devel] Provide a GObject-based introspectable interface for libical

Milan Crha mcrha at redhat.com
Thu May 15 10:55:28 PDT 2014


	Hello,
I would like to ask, whether it would be acceptable by libical project
to provide also GObject introspactable interface for the library, as
part of the sources, with optional compilation, to not add a hard
dependency on GLib due to it.

The reason is that we've got a GSoC 2014 project to complete
introspection of calendar part of evolution-data-server, which is using
libical and exposes it in public API, but the libical as such is not
introspectable, thus we have basically bad luck. The current idea is,
instead of doing some ugly hacks on the evolution-data-server side,
define GObject-based interface for libical, which will be fully
introspectable. This interface would be nice to have as part of libical
sources, thus more people interested in it would be able to use it.

The tasks for the student will be:
- create GObject based interface for structures provided by libical
- properly annotate the interface, thus it'll be usable both by
  the introspection interface generator and by the gtk-doc (thus a nice
  developer help pages will be created from it too)
- provide python3 tests of the introspection interface, with as large
  coverage as possible, which would be possible to run during 'make check'

There will be probably involved some scripts for build-time, for example
for enums, to generate them from libical sources, rather than hard-code
them and miss any future changes. A script which would check whether any
public API function is not missing in the GObject-interface would be
also nice. Who knows, if there will be some pattern found, then many of
the work would be semi-automated. That all is to be figured out. I do
not want to go too much into detail now, nothing is set in the stone.

So, would be libical developers willing to include GObject introspection
interface of libical in the sources?

	Thanks and bye,
	Milan

P.S.: I CC'ed also Miao Yu, whom is the student which will do the work.

P.P.S.: In case you are not sure, introspection interface allow running
the code in languages like python or javascript, which seem to be quite
popular, thus the interface may bring more interested users to libical.





More information about the libical-devel mailing list