[Maria-discuss] MariaDB Connector C 3.1 ABI contract broken in latest release
Hello! After uploading MariaDB 10.3.38 in Debian I started seeing reports about libmariadb3 being broken for some consumers. Turns out that the function mysql_get_client_version() had a major behavior change in the latest MariaDB Connector C 3.1.20 which is embedded in the MariaDB 10.3 build. Details in PR https://github.com/mariadb-corporation/mariadb-connector-c/pull/219. Affected library consumers are listed in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1031863#86 Unfortunately it might be too late to fix this, the milk is already spilled. Could you please in future keep as the engineering policy that *libraries are not allowed to have backwards-incompatible changes* unless the soname/version is also bumped. You might add a new symbol in an existing library version without causing breakage in library consumers, but you cannot remove any symbols/functions, or change their behavior significantly. In this case you completely changed what version the library returns. Please acknowledge these base rules and be more diligent in the future to avoid risks. Also, if you want to introduce libmariadb4, please do it on MariaDB 11.0 or newer only, and don't change any ABI in existing stable releases of libmariadb3. Thanks!
participants (1)
-
Otto Kekäläinen