Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify what constitutes API break and what not #65

Open
t8m opened this issue Mar 21, 2023 · 2 comments
Open

Clarify what constitutes API break and what not #65

t8m opened this issue Mar 21, 2023 · 2 comments

Comments

@t8m
Copy link
Member

t8m commented Mar 21, 2023

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.

@DDvO
Copy link
Contributor

DDvO commented Oct 9, 2023

@t8m wrote in openssl/openssl#22304 (comment):

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.

@arapov
Copy link
Member

arapov commented Nov 13, 2023

  • Propose a change to stable release policy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Backlog
Development

No branches or pull requests

3 participants