On 21/07/2017 22:15, Andrey Semashev via Boost wrote:
On 07/21/17 21:58, Stefan Seefeld via Boost wrote:
On 21.07.2017 13:10, Andrey Semashev via Boost wrote:
On 07/21/17 19:30, Stefan Seefeld via Boost wrote:
On 21.07.2017 12:16, Andrey Semashev via Boost wrote:
I'm sure it's been mentioned before by someone, but as a Boost user and packager (for my work projects) I don't want to deal with a dozen of build systems (worse yet - multiple versions of the same build system) to be able to build Boost. Having a single build system, a single interface and customization point is an important advantage regardless of what the actual build system is used.
Don't you realize how impossible this has become, given the current size and scale of Boost ? You can't treat a project like Boost, with > 100 individual libraries in it, as a single entity. It's not going to work. And each attempt to impose a change will result in endless discussions leading nowhere. We have to face this reality, and break Boost up into parts that individually are amenable to such change. But not as a single orchestrated switch.
Also, please note that I did not suggest that we open the door for any other build systems (though that certainly could become an interesting discussion later).
I think you did advocate for the model where each library picks its own tools, including the build system. Allowing two build systems would be just the first step. I'm just saying that this won't work well for Boost users, at least not for a significant part of them.
That's just FUD.
What exactly in my message is FUD?
What I'm proposing can indeed be seen as one step towards the multiplication of tools. But that would be quite a few steps down the road, while what I'm saying here is that the step I propose above seems to me to be essential to overcome the current stalemate. Now assuming we progress somewhat using the above, with some libraries having transitioned to using CMake, while others still using Boost.Build, we have two choices: a) Test everything, and come to the conclusion that it works well enough for users, so we can make another release, or b) decide that we need to hold back the next release until the remaining libraries have switched.
I don't think it is realistic to convert the whole Boost in a single release time frame, unless you want to put the transition as a release criteria (which would be a bad idea). It would make sense to either release half-baked support for CMake for a few Boost releases or to follow the switch-the-whole-Boost approach: work on libraries in the background and then merge it to develop/master for all libraries. In the former case there's that potentially endless period of having two build systems.
You could possibly ask developers from other major project who transitioned to CMake what was their experience. LLVM moved exclusively to CMake not too long ago and it would certainly be interesting for people doubting it is possible to talk to their build engineers and developers. Note that some people (certainly not everyone) are quite happy with the transition, I saw again some message the other day from people loving the new changes in the latest CMake and it made LLVM compile much faster.
Regarding the transition process (to whatever build system, not necessarilly CMake), I think both ways have its merits. Making a whole-Boost switch is more resource expensive, but not impossible if there are enough interested people with enough permissions to do the job.
I don't share your (apparent) mental model of software, or the practice of software engineering. Software in general, and Boost libraries in particular, live from the respective communities of people maintaining and developing them. You can't just ask arbitrary "interested people" that aren't already part of those communities to do "a job" on the software.
Sure. Those "interested people" would be members of the community. Alternatively, these could be paid individuals acting on behalf of the community, but I think this is unlikely to happen.
First, that's highly disrespectful of those who have been working on and with the software being changed. And more importantly, you aren't even addressing the real problem, of who would be responsible for the maintenance of that new software ? Who would help users getting stuck trying to build the library ? Who would fix issues ?
Whatever plan you propose, nothing will happen unless all library developers are on board. This is an obvious implied pre-requisite. Doing it the other way will only leave you with a pile of dead code and no maintainers.
The particular developers may not be willing or have the resource or knowledge to do the actual transition, but it should be evident to everyone that if and when the transition is complete (by those interested champions willing to do the job), the maintenance burden is left upon the particular library maintainers. This is similar to how it happened with git and I see no other way.
I'm certain there will be build engineers like myself and many others willing to send PR to transition libraries to CMake once a design has been chosen. Then it's up to the library owners to merge them in due time.
There's nothing disrespectful in this approach. It would be disrespectful if the SC or someone with universal commit permissions imposed CMake on everyone. Which is why the latest announcement from the SC is a big mistake, to put it mildly.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost