boost icon indicating copy to clipboard operation
boost copied to clipboard

Add a bootstrapper script for preparing development enviroment

Open HO-COOH opened this issue 7 months ago • 3 comments

Hi, I am a newcomer wanting to contribute to one of the boost library. I read through the official getting started tutorial carefully, and found it unnecessarily complicated for anyone wanting to contribute.

Some key points are:

  • C++ developers are expected to able to use CMake, but b2 is honestly speaking not very mainstream. (Actually I have never heard of it) And instead of having an official download link it requires manually go to the github repro and download the latest release. The is not most windows users are used to. This could be better automated by a bootstrapper script.
  • If I am interested in a specific library, I need to try to build it first, found out the missing dependencies, install those (and they themselves could have other libraries as dependencies). This could be tedious without a boostraper.
  • The documentation pages also need additional tooling to work.

I image all these could be solved by adding something like a TUI and let new contributors (like me) to select the workflow they wanted. Powershell script would be a perfect choice as it is cross-platform and light to install. (Built-in on windows, one-liner to install on linux/mac os). If you think this is a good idea, I would like work on it.

HO-COOH avatar Jul 19 '25 16:07 HO-COOH

A couple of comments.

cmake works for me, is there something there that could use improvement or documentation clarification?

Linux people don't tend to be powershell literate, to be honest.

nigels-com avatar Sep 04 '25 03:09 nigels-com

@nigels-com I am talking more about contributing to boost, that is maintaining some existing library (or create a new one). Currently the workflow of using cmake is still under construction, and I figured out how to actually do that with pain:

  • I need to have the super project
  • define -DBOOST_INCLUDE_LIBRARIES in cmake arguments (and the way to achieve that will be different for different ides and editors to make debugging actually works)
  • define DBUILD_TESTING because you really should

Creating a new library will require more bootstrapping of course. And the doc is not clear about it.

And another thing is getting Antora to generate documentation pages, for contributing to docs.

HO-COOH avatar Sep 05 '25 12:09 HO-COOH

I had a fresh look at Getting Started again, and I really do think there is a structural problem there. To me the point of supporting cmake is to not require b2, at least to me. (I respect that b2 has been getting the job done, day-in, day-out.). But in the starting guide we're constant steering people to b2 because it's recommended or because cmake isn't necessary.

One thing I stumbled on in recent years is that besides the official release tarball, there is also a cmake-ready one that doesn't seem to be signposted. Such as boost-1.89.0-cmake.tar.gz which I've used to build boost binaries for downstream consumption, entirely via cmake.

So through that lens I think cmake should be treated as more of a first-class citizen and option. And I believe that is also helpful for boost adoption, broadly. And having some sort of boost-specific UI as a third option sort of a distraction.

I use boost a fair bit, but b2 hasn't seemed necessary, it's just another cmake thing, for the most part.

nigels-com avatar Sep 05 '25 13:09 nigels-com