clangml reinstallations regularly break when the underlying llvm dep-ext (a system package) is upgraded, because the detection of the system package is performed by conf-libclang, and the detected paths (stored in package variables) are no longer valid after upgrade.
A workaround is to run opam reinstall conf-libclang to detect the new paths, but this is not intuitive for the users.
In an ideal world, I would like to tell opam that conf-libclang should be reinstalled each time the external dependency has changed, but I doubt there exists such a mechanism.
Another possibility is to duplicate the detection logic implemented in conf-libclang directly in the package clangml itself, but that is not very satisfactory and, in that case, I will not see the point to keep a separate conf-libclang package anymore.
I think it should be a common problem for all conf packages relying on external dependencies. Are there any better solutions?