-
Notifications
You must be signed in to change notification settings - Fork 16
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
Develop version 2.1-dev.0 breaks ABI compatiblity #126
Comments
This seems reasonable. Since we're working with an interface, we should be extra careful with how we do versioning (and how we follow the semantic versioning guidelines). Perhaps we should make it a policy that any time we include new functions in a version, the major version has to be incremented? |
@mdpiper, introducing new functionality is not a breaking change so I think a minor bump is merited. Changes to the existing api would constitute a major version change. Edit: im wrong. given the way that the BMI is specified, this breaks ABI like @hellkite500 noted. This would have to be a major version bump. |
The accepted inclusion of get_bmi_version in #111 moves BMI from version
2.0
to version 2.1-dev.0.By adding this to function name to the namespace, it will break ABI compatibility for all compiled headers in the supported languages (C, C++, Fortran). For example, if a model builds against version 2.1, but some other model/utility is built with version 2.0, the runtime behavior of using the two together is likely to lead to undefined behavior and segmentation faults.
I haven't seen this inclusion land on the implemented interfaces for the various languages yet, but I'm wondering if this should land in a major (non-backwards compatible) version, like BMI 3.0 instead?
The text was updated successfully, but these errors were encountered: