technical-policies icon indicating copy to clipboard operation
technical-policies copied to clipboard

Clarify what constitutes API break and what not

Open t8m opened this issue 2 years ago • 2 comments

DDvO commented Mar 21, 2023

The problem is that basically anything that changes in the public API headers that can potential break a compilation for > anyone is an API break. So until we found that this is very unlikely to break anyone it was considered an API break. Not > sure how to record this and where.

Thanks for your response, which more or less includes a definition of an API break. Unfortunately, it won't be easy to give simple syntactic rules to correctly and completely determine what will constitute an API break or not.

For instance, the following header file changes do not lead to API breaks:

  • whitespace and comment changes
  • adding or removing the const qualifier before a primitive (i.e., non-reference) type
  • adding or removing the name or changing the name of a function parameter
  • adding a declaration
  • ...?

I suggest adding something like this to the technical policies, next to the coding style.

t8m avatar Mar 21 '23 11:03 t8m

@t8m wrote in https://github.com/openssl/openssl/pull/22304#issuecomment-1753174465:

Unfortunately even constifying reference type arguments is nowadays considered an API break because in theory someone could use that function in a function pointer variable.

DDvO avatar Oct 09 '23 17:10 DDvO

  • Propose a change to stable release policy.

arapov avatar Nov 13 '23 08:11 arapov