On 5/13/2015 5:30 PM, Stefan Seefeld wrote:
On 13/05/15 05:24 PM, Andrey Semashev wrote:
On 13/05/15 02:23 PM, Edward Diener wrote:
That's for each library maintainer to determine and to encode. Of course, I would assume boost to provide shareable tools to make it easier to do this, but boost is hardly the only project facing such tasks. In fact, the entire Free Software world had to solve this for many years. Sorry but that is just skipping over a real problem. If there are solutions that solve the problem then Boost needs to adopt one of
On 5/13/2015 1:52 PM, Stefan Seefeld wrote: those solutions. I strongly disagree. "Boost needs to adopt" already sounds very wrong to me, in the context of my proposal where Boost is little more than an umbrella org. I think you will have to make a choice ultimately. You can't realistically have a zoo of tools used by different libraries and expect them all work together nicely. If library A uses a dependency tracking tool X and depends on
On Wednesday 13 May 2015 14:42:43 Stefan Seefeld wrote: library B then X should be able to handle dependencies of B as well and so on to the leaf dependencies. I'm pretty sure the same would be desired for other tools, like build systems. If it doesn't work that way then you can pretty much drop the whole idea of modularity and follow the path of copy/pasting the code, something Google likes to do.
Just look at a typical Linux-based software stack. There are lots of applications with lots of dependencies, with lots of different choices of choices for tools to build and package, as well as version-control the code. Sure, life would be easier of the whole world would agree on a single set of such tools. But that isn't realistic. And experience with Boost has shown that the community easily gets distracted by bikeshed discussions about which tools to pick, which policies to adopt, etc. That problem can easily go away if there is no single choice to be made.
In other words, "modularity" needs to be applied not just the code but the organization, too !
On Linux systems there is always dependency management software which specifies that if package X of a particular version is installed all dependent packages of the correct version are also installed. These systems do not depend on some documentation which tells the end-user what has to be done manually to install a package. Of course most packages can be built from source manually, but the most Linux users probably use the automated package management systems instead. If Boost goes the way where individual libraries can be released separately on their own development cycles, as you suggested, I think some sort of agreed upon automated dependency management system needs to be in place, at least for dependencies between Boost libraries/versions.