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

Perform ABI bumps when they happen, not at release time #82

Open
gilles-peskine-arm opened this issue Dec 14, 2022 · 2 comments
Open

Perform ABI bumps when they happen, not at release time #82

gilles-peskine-arm opened this issue Dec 14, 2022 · 2 comments
Labels

Comments

@gilles-peskine-arm
Copy link
Contributor

gilles-peskine-arm commented Dec 14, 2022

At the moment, if there's an ABI change in one of the libraries, we perform a version bump at release time.

This is an annoying step in the release process. We've been known to forget, or to make a mistake when checking (the tool we use is brittle, for example the version we use on the CI silently fails on modern systems).

I think we should change our process to increment the ABI version as soon as it deviates from the last release. Then we might still want to double-check at release time, but normally we'd be covered. This means:

  • CI must compare the ABI with the previous release, only for the libraries whose soversion hasn't changed. E.g. if the last release has {crypto=42, x509=2, tls=7} and the branch being tested has {crypto=43, x509=2, tls=7}, then the CI compares the ABI of x509 and tls but not crypto. The CI always compares the API with the previous release.
  • We need to have clear instructions on how to do an ABI version bump (not scripts/bump_version.sh which wants a new API version — it's easiest to edit library/Makefile and CMakeLists.txt manually).
  • As things stand, if two pull requests want to bump the ABI of the same library concurrently, that's ok: they'll make the same changes to the same lines in library/Makefile and CMakeLists.txt. But if one PR bumps e.g. crypto and another one bumps x509, there'll be a merge conflict because of consecutive edited lines. To avoid that we'd need e.g. a blank line between each SOVERSION number.
  • Since we'll be doing SO version bumps more often and more manually, we may want to have a single source of truth for the SO versions. If not we should check coherence in the CI.

Possible prerequisites:

@tom-cosgrove-arm
Copy link
Contributor

But if one PR bumps e.g. crypto and another one bumps x509, there'll be a merge conflict because of consecutive edited lines

Will this happen frequently enough for it to be a problem?

@gilles-peskine-arm
Copy link
Contributor Author

But if one PR bumps e.g. crypto and another one bumps x509, there'll be a merge conflict because of consecutive edited lines

Will this happen frequently enough for it to be a problem?

Maybe not. But I think it's easy to avoid, just by adding a comment and a blank line above each version number in library/Makefile (they're already separated in CMakeLists.txt).

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

No branches or pull requests

2 participants