Re: [Tracker] ANNOUNCE: tracker 0.10.4 released (stable)



On 18/03/11 13:32, Michael Biebl wrote:
2011/3/18 Martyn Russell<martyn lanedo com>:
On 17/03/11 16:00, Michael Biebl wrote:

Hi,

Hi,

looks like there was an ABI/API break in libtracker-sparql without a
soname bump.
The following symbols were removed:

  tracker_backend_status_wait_async
  tracker_backend_status_wait_finish
  tracker_sparql_connection_init_async
  tracker_sparql_connection_init_finish

Was that intentional?

It was intentional to fix the problem we had with initialisation but not to
break ABI. There is no API break AFAICS. These functions were not public.

See my other email (ABI vs API). this is for tracker 0.10.3:

/usr/include/tracker-0.10/libtracker-sparql# grep
tracker_sparql_connection_init_async *
void tracker_sparql_connection_init_async (TrackerSparqlConnection*
self, GAsyncReadyCallback _callback_, gpointer _user_data_);

/usr/include/tracker-0.10/libtracker-sparql# grep
tracker_sparql_connection_init_finish *
void tracker_sparql_connection_init_finish (TrackerSparqlConnection*
self, GAsyncResult* _res_, GError** error);

So this *is* an API break

That very much depends on your definition. After some discussion on IRC between Jürg and myself, we agree that our definition of ABI break is aligned with actual APIs which should be used publicly. That meaning, if we change something internally (which strictly speaking is an ABI break), we don't consider it so. I believe this is where debian disagrees with us?

About the API break, this is tough. There are a number of issues here. First and foremost, the _init* API was not meant to be public. The fact that the TrackerSparqlConnectionClass exists in the header file tracker-sparql.h is regrettable, but it's not easy (possible?) to do this correctly with Vala. This means it is confusing for people reading the header file. Ideally the class should be in a private header and not installed.

So:

- while we *strictly* broke ABI, we don't consider it a break.
- while we *strictly* broke API, it was never meant to be used publicly.

--
Regards,
Martyn



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]