On Wed, 2017-10-04 at 10:58 -0700, Vinnie Falco via Boost wrote:
On Wed, Oct 4, 2017 at 10:45 AM, Rene Rivera via Boost
wrote: Anyhow, I'm sorry this went off a tangent. My original point was to suggest that CMake (or any other future Boost build system) should support modular builds, rather than expect Boost.X and Boost.Y always have the same version, or be part of the same source tree.
Couldn't agree more :-) And if that is a key requirement for the next build system it should be explicitly considered as such in future deliberations.
I disagree. I rather like the current system where there is the one monolithic distribution, and you have confidence thanks to the testing that all of those libraries from the same Boost version are going to work together. Its an easier guarantee to uphold for the library author and it is easier to understand for the user.
I dont think being able to build against different version means that we won't test and release a set versions that work together. Thats the way any distro works. The distro tests and makes sure all the version works together, and provides the user with the set of versions that do work, but I can still manually install newer versions. Some authors may work hard so their library is compatible across several boost releases, but its not necessary for an author. The most likely use case a user will mix and match version is to update a version to fix some bug or to get a new feature. None of this will be something boost itself will test, but a user or author may be able to make it work on their own.
To break this contract and now say that X needs version so and so of Y, and another version of Z, is I think to introduce needless complexity. I'm not opposed to the idea of modular builds (i.e. get just Boost.HTTPKit and Boost.Buffers without also acquiring Boost.Asio) but I prefer the simplicity of keeping them all at the same version. Update one, update all.
Yes, an if boost is released as a some kind of distro, its just a matter of updating your boost distro to get new versions of everything together. And of course, a modular distro release also doesn't mean we no longer support a monolithic release of boost, either.