Boost logo

Boost :

Subject: Re: [boost] [cmake] Pull request announcement
From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2018-09-15 18:01:07

On Sat, 15 Sep 2018 at 10:11, mike via Boost <boost_at_[hidden]> wrote:
> I'm pretty sure the desire of the steering committee, many users and probably
> A lot of boost maintainers is that b2 gets completely replaced by a cmake based
> solution someday (e.g. in the form of BCM).

Unless you poll the community the "pretty sureness" has no connection
to the reality.

I am a user and developer quite heavily sold to CMake
I use CMake for Boost development.
I would like to see CMake accepted as officially offered and supported
build configuration.
But, I do not expect CMake to replace Boost.Build.

Despite that I quite often suffer from motion sickness when
I have to write a non-trivial Jamfile script, I consider Boost.Build
an excellent build system and I do rely on Boost.Build for
Boost development developing and testing.

I would like to see
- CMake and Boost.Build first class citizen build systems in Boost
- each maintained by dedicated team devoted to one or the other
- non-competing, but complementing

Next, all references to Boost.Build and Jamfiles wiped out from the
library requirements [1].
Instead, the whole community of Boost maintainers and teams of the respectful
build configurations (ie. CMake and Boost.Build) should offer library author(s)
any help required to integrate the libraries into the officially
supported build systems.

Build configurations are there as common layers glueing Boost libraires for
practical convenience in development and usage, and they should be
common collaborative responsibility.

FWIW, since substantial concern of library reviews are C++ code and
documentation, only,
lack of Jamfile-s is not a stopper preventing successful acceptance into Boost!

The requirements [1] clearly states the build integration happens
*after* the fact:
"Once a library is accepted as part of the Boost C++ Libraries it is
required that it integrate
properly into the development, testing, documentation, and release processes."

Then, Jamfile 'transitively' required via the testing policy [2]
"A Jamfile to drive the regression tests for the library"

The Boost.Build-related requirements for testing policy were
established in times when no
Travis CI/AppVeyor/CircleC/Azure Pipelines existed, but Boost heavily
relied on in-house
regression tests waterfall. Now, perhaps the requirement can shift the weight
towards the CI services, make the Jamfile optional and participation
in the Boost
regression tests waterfall complementary.

However, an update to the policies and requirements will be necessary
in order to
make CMake (or any other new build system) officially supported.


Best regards,

Mateusz Loskot,

Boost list run by bdawes at, gregod at, cpdaniel at, john at