GNOME Bugzilla – Bug 591600
should be a way to mark bindings unstable
Last modified: 2018-02-08 11:51:29 UTC
There are a handful of libraries that are explicitly non-API-stable, and require you to #define something acknowledging that fact if you want to #include their headers. (eg, #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE). It would be nice if gir/typelib files could represent this idea somehow. Note that libgnome-desktop has both stable and unstable APIs. Also, there's a bug open about introspection in libsoup, but there are still a handful of issues where I'm not happy with the way things are bound, and so if I did ship it for 2.28, it would be nice if it could come with a built-in disclaimer that the introspected API is not stable, and isn't guaranteed to be the same in 2.30, even though the underlying C API *is* stable.
we could generate two different gir/typelibs (one with the #define set, the other with the #define unset in the scanner CFLAGS) and use two different names, e.g. Soup-$MAJOR.$MINOR and SoupUnstable-$MAJOR.$MINOR.
Basically what libsecret does, although I think there the libraries are also unstable at the C level.
(In reply to comment #1) > we could generate two different gir/typelibs (one with the #define set, the > other with the #define unset in the scanner CFLAGS) and use two different > names, e.g. Soup-$MAJOR.$MINOR and SoupUnstable-$MAJOR.$MINOR. Then you'd end up with both the stable and unstable APIs in SoupUnstable though. Is that what you meant? The "Unstable" convention definitely works for entirely-unstable libraries though, unless we wanted the instability to be programmatically recognizable, and I don't know any use case for that. (And this is no longer relevant to libsoup, since the .gir shipped a long time ago.)
[Mass-moving gobject-introspection tickets to its own Bugzilla product - see bug 708029. Mass-filter your bugmail for this message: introspection20150207 ]
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gobject-introspection/issues/22.