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

GitHub action to detect ABI incompatibilities for commits #5083

Open
jhlegarreta opened this issue Dec 17, 2024 · 0 comments
Open

GitHub action to detect ABI incompatibilities for commits #5083

jhlegarreta opened this issue Dec 17, 2024 · 0 comments
Labels
type:Design Improvement in the design of a given area

Comments

@jhlegarreta
Copy link
Member

Description

Currently, ITK relies on its reviewers to detect API breaks. This is error-prone and effort-intensive, especially when changes are extensive. It may be useful to have some automated tool (e.g. through an GitHub Action) that detects such breaks automatically whenever a commit is pushed.

Impact analysis

Automatically detecting ABI incompatibilities/API breaks would benefit the toolkit as we would no longer rely on human reviewers, which may miss some breaks.

These commits could be identified with some label so that they are considered only for a new major release.

Actual behavior

API/ABI breaks are identified by human code reviewers.

Versions

N/A

Additional Information

Related resources:
https://manpages.ubuntu.com/manpages/jammy/en/man1/abi-compliance-checker.1.html
https://pkgs.alpinelinux.org/package/edge/main/x86/abi-compliance-checker
https://formulae.brew.sh/formula/abi-compliance-checker
https://github.com/conda-forge/abi-compliance-checker-feedstock
https://github.com/lvc/api-sanity-checker
https://github.com/lvc/abi-compliance-checker

This may be an interesting thing to consider for the NumFOCUS SDG or POSSEE.

Slightly related, I am sure that there are tools out there that are able to do the version handling automatically, but I ignore if such tools exist for C++, what they would involve in terms of orchestrating all aspects involved by a release in ITK (i.e. the test data repository, the SWG, the Sphinx Examples, the remote modules, etc.), or what the downsides of these tools are. They may be helpful to shorten the release cycle as it would be automatic, and reduce manual work.

@jhlegarreta jhlegarreta added the type:Design Improvement in the design of a given area label Dec 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:Design Improvement in the design of a given area
Projects
None yet
Development

No branches or pull requests

1 participant