You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
The text was updated successfully, but these errors were encountered:
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.
The text was updated successfully, but these errors were encountered: