summaryrefslogtreecommitdiff
path: root/HACKING
diff options
context:
space:
mode:
authorPhilip Withnall <philip@tecnocode.co.uk>2014-11-03 00:13:51 +0000
committerPhilip Withnall <philip@tecnocode.co.uk>2014-11-03 00:16:12 +0000
commit30cf8a58e0f7f6520112c45b7d2877bdecbd6bc1 (patch)
treec7c62c1a733fb940a8320ebf17ffe312f4e73981 /HACKING
parent8a695555b68671a765f95603dd054046df3e8a5d (diff)
downloadlibgdata-30cf8a58e0f7f6520112c45b7d2877bdecbd6bc1.tar.gz
core: Mark all API as stable and impose API and ABI stability guarantees
It’s time for libgdata to grow up and start guaranteeing some stability for its users. In this vein, it’s already been API stable for around 3 years (since 0.9.1) — it’s about time that was made explicit. http://upstream-tracker.org/versions/libgdata.html is quite interesting.
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING9
1 files changed, 7 insertions, 2 deletions
diff --git a/HACKING b/HACKING
index 6f4dca86..587b5b8e 100644
--- a/HACKING
+++ b/HACKING
@@ -124,6 +124,9 @@ Adding public API
- Any async function which uses non-async-scope callbacks as well as the async ready callback should provide GDestroyNotify callbacks for destroying
the user data for those callbacks. See https://bugzilla.gnome.org/show_bug.cgi?id=649728 for details.
+ - Any new class’ class structure (e.g. GDataServiceClass) must have reserved slots to allow future API additions of virtual functions without
+ breaking ABI.
+
Choosing function names
=======================
@@ -205,7 +208,9 @@ Versioning
==========
Starting with version 0.9.0, libgdata has adopted an even–odd/stable–unstable versioning policy, where odd minor version numbers are unstable releases,
-released periodically (with increasing micro version numbers) and leading to a stable release with the next even minor version number. API breaks are
-allowed in micro releases with an odd minor version number, but not in micro releases with an even minor version number.
+released periodically (with increasing micro version numbers) and leading to a stable release with the next even minor version number. API breaks of
+new API are allowed in micro releases with an odd minor version number, but not in micro releases with an even minor version number.
+
+ABI and API backwards compatibility must be preserved unless the major version number is changed. libgdata is now ABI-stable.
It is encouraged to make a new micro release of an odd minor series after each large API addition or break.