The current EXX_DEV implementation depends on LibRI APIs such as RI::Exx::cal_dHs and dHs_HF. However, these APIs are not available in the LibRI master branch or in the LibRI revision currently used by the ABACUS toolchain. They are still under development in abacusmodeling/LibRI#10. As a result, configuring ABACUS with ENABLE_EXX_DEV=ON produces a build failure as long as libRI is obtained from master branch via toolchain or CMake FetchContent.
I do not think code depending on unpublished APIs from another repository should remain in the ABACUS main (develop) branch, even though 99% of users wouldn't trigger the corresponding option actually. Keeping it behind a CMake option does not make the configuration valid: the option is exposed to users, but the required dependency cannot currently be obtained from the corresponding upstream branch.
My proposal would be to:
- Remove the entire
EXX_DEV implementation from the ABACUS master branch for now.
- Continue the development of these features in a seperate feature or integration branch.
- Merge the implementation back only after the required LibRI APIs have been merged upstream, and then enable
ENABLE_EXX_DEV=ON in CI testing workflow.
This would keep the main (develop) branch internally consistent and prevent unfinished cross-repository integration code from silently becoming unbuildable.
The current
EXX_DEVimplementation depends on LibRI APIs such asRI::Exx::cal_dHsanddHs_HF. However, these APIs are not available in the LibRI master branch or in the LibRI revision currently used by the ABACUS toolchain. They are still under development in abacusmodeling/LibRI#10. As a result, configuring ABACUS withENABLE_EXX_DEV=ONproduces a build failure as long as libRI is obtained from master branch via toolchain or CMakeFetchContent.I do not think code depending on unpublished APIs from another repository should remain in the ABACUS main (develop) branch, even though 99% of users wouldn't trigger the corresponding option actually. Keeping it behind a CMake option does not make the configuration valid: the option is exposed to users, but the required dependency cannot currently be obtained from the corresponding upstream branch.
My proposal would be to:
EXX_DEVimplementation from the ABACUS master branch for now.ENABLE_EXX_DEV=ONin CI testing workflow.This would keep the main (develop) branch internally consistent and prevent unfinished cross-repository integration code from silently becoming unbuildable.