signalapp / libsignal-protocol-c

GNU General Public License v3.0
1.41k stars 295 forks source link

API change between 2.3.1 and 2.3.2 #125

Closed paulfariello closed 5 years ago

paulfariello commented 5 years ago

I have:


Bug description

There was a non backward compatible API change between 2.3.1 and 2.3.2. As a developer I didn't attend to see such change in a patch version bump.

What is the current versioning scheme for libsignal-protocol-c?

Steps to reproduce

Actual result:

error: initialization of ‘int (*)(signal_buffer **, signal_buffer **, const signal_protocol_address *, void *)’ {aka ‘int (*)(struct signal_buffer **, struct signal_buffer **, const struct signal_protocol_address *, void *)’} from incompatible pointer type ‘int (*)(signal_buffer **, const signal_protocol_address *, void *)’ {aka ‘int (*)(struct signal_buffer **, const struct signal_protocol_address *, void *)’} [-Werror=incompatible-pointer-types]
         .load_session_func = load_session,
error: initialization of ‘int (*)(const signal_protocol_address *, uint8_t *, size_t,  uint8_t *, size_t,  void *)’ {aka ‘int (*)(const struct signal_protocol_address *, unsigned char *, long unsigned int,  unsigned char *, long unsigned int,  void *)’} from incompatible pointer type ‘int (*)(const signal_protocol_address *, uint8_t *, size_t,  void *)’ {aka ‘int (*)(const struct signal_protocol_address *, unsigned char *, long unsigned int,  void *)’} [-Werror=incompatible-pointer-types]
         .store_session_func = store_session,

Expected result: If libsignal-protocol-c were following semantic versioning I wouldn't have broke build between two patch version.

Device info

N/A

Link to logs

N/A

dkonigsberg commented 5 years ago

Issue #112 was already opened (and since closed) to complain about this issue. It was an accident, and one I'll be more mindful of in the future.

The original intent of versioning was to try and track the Java version, on a feature basis. However, that ship has long since sailed. Furthermore, this library does sometimes need changes (like this one) that have absolutely nothing to do with the Signal Protocol implementation itself, and are primarily there to handle app integration issues.

paulfariello commented 5 years ago

Thanks and sorry for duplicate issue.