On Tue, May 7, 2019 at 7:42 AM Peter Dimov via Boost
Rene Rivera wrote:
But having a modular Boost would actually make it easier to deal with that problem. As we could then include a version header for each library. And the library could check that the versions of its dependencies satisfy their requirements and error otherwise.
I am so not looking forward to this. It will be a disaster, if we're lucky.
It is also unnecessary; a distribution system like conan would manage downloading direct and transitive dependencies. The version of a boost module would be stored in a conanfile (if we used conan), not in a C++ header; though it could be in both if we felt it was useful, or since conan uses python, it could read the version from the module's version file so there is one source of truth to the version. There are also multiple projects that inspect boost repositories for dependencies. We could leverage these to automatically maintain a list of dependencies in each repository meta/, as well as describe optional sub-packages and which headers belong to those. There should be no need to manually generate or manage dependencies... sure you can do it, but how do you know that you got it right without a clean-room build with 100% unit test coverage? - Jim