InsightSoftwareConsortium / InsightSoftwareConsortium/ITK
GitHub action to detect ABI incompatibilities for commits
- Dominant language
- C++
- Stars
- 1.7k
- Forks
- 748
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 64
Description
### 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.
Contributor guide
Assessment
This issue has not been assessed yet.