Hi, Thank you for reviewing! > Hi, I did a debdiff between them, and I see some changes that might be ABI breaking the library: > > -GRN_API grn_rc grn_timeval_now(grn_ctx *ctx, grn_timeval *tv); > -GRN_API grn_rc grn_timeval2str(grn_ctx *ctx, grn_timeval *tv, char *buf, size_t buf_size); > -struct tm *grn_timeval2tm(grn_ctx *ctx, grn_timeval *tv, struct tm *tm_buffer); > -grn_rc grn_str2timeval(const char *str, uint32_t str_len, grn_timeval *tv); > > > removing symbols might be an ABI break The above functions are kept in lib/time.c. They are not removed. > also adding a field to a struct > + grn_bool is_dirty; > > (not always) > > as well as adding them in the middle of a struct > - uint32_t reserved[1003]; > + uint32_t n_dirty_opens; > + uint32_t reserved[1002]; > grn_pat_delinfo delinfos[GRN_PAT_NDELINFOS]; > grn_id garbages[GRN_PAT_MAX_KEY_SIZE + 1]; The n_dirty_opens is added, but it is just allocated from reserved area. so it keeps compatibility. > so, please answer wrt ABI/API breakage. I've contacted upstream author, and heard the following policy about Groonga ABI. There are two kind of policy about ABI for Groonga. * experimental APIs Groonga is shipped every month. The new release sometimes contains experimental API. There is no guarantee for it. It may be suddenly changed. Even though such a case, it doesn't regarded as ABI breakage because it is experimental. * stable APIs if this kind of APIs are changed, it needs to be raise ABI version, but these APIs are not changed yet.
Attachment:
pgpPUUntcLOBt.pgp
Description: PGP signature