Boost logo

Boost-Build :

Subject: Re: [Boost-build] The future of B2?
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2016-10-06 10:55:51


On 10/06/2016 08:23 AM, Raffi Enficiaud wrote:
> <snip>
> Project maintenance
> ===================
> - it is not clear who is "in charge" of b2. Who are exactly the people
> deciding which actions should be taken? Do those people have the
> bandwidth to cope with a growing community? Who constitutes the core?
> who constitutes the committed developers?
> If we want to support a growing community, those information should be
> clear or clarified. See for instance . If
> ppl want to use b2, they should feel that there are ppl backing up and
> helping out. On my side, I feel like Steven Watanabe and Vladimir Prus
> are the only core.
> - how do we contribute to b2? Is there any good way of writing modules?
> Any coding style? As a user (and hopefully/maybe contributor) I would
> like to see good instructions stated somewhere (and outside of the boost
> umbrella as well). I just saw this page
>, sorry
> if I missed it .
> Installation/deployment
> =======================
> - If I were to use b2 in another project, I do not want to clone or
> download boost[tarball] for that. <snip>.
> So, if I just clone on a almost naked system with a build
> chain, and have project with one Jamfile, would that just work?

  Yes. At the top level of Boost.Build, there's
a and a Jamfile that can install
Boost.Build for standalone use.

> Documentation
> =============
> - there are currently several documentations, and in different places.
> It is good (for referencing) and bad (for confusion). A quick look shows
> -
> -
> -
> -
> I would rather merge all of those into a single one. If one of the
> target is to be out of the boost umbrella, then I would also favor a
> dedicated website. Those are for free on GitHub, ReadTheDocs, etc. and
> Jekyll for instance is very easy (and the changes can be tracked within
> the repository as well).
> - I would go for a unique language for documentation. Be it QBK (easier
> than boostbook) or md or sphinx or doxygen. Quickbook however would mean
> that it stays tightly coupled with boost (except if quickbook is being
> distributed standalone). I can work on that if you want and/or if needed.

The main documentation is the BoostBook
xml in doc/

> - I would think of a way to integrate and extract documentation into the
> modules and the code. CMake has something that is working fairly well
> for the modules documentation (uses Sphinx as backend), but this will
> definitely help to see what module available and how to use them. Maybe
> can be integrated there to convert from reST to
> docbook (just guessing).

  b2 actually has a --help command that can
extract documentation from the source.
Many modules don't have comments correctly
formatted for this to be useful, however.

> - I think the project should make a good use of the wiki feature of
> GitHub as a starting point with I believe there should be a
> single point there as well, since some information are also in
> bug tracker I can
> work on that as well if needed.
> - I would really like to see the current design architecture as a
> drawing :)
> Tests
> =====
> - If I want to use b2, how do I debug what I am writing? In CMake I just
> use the available "printf" (message(FATAL_ERROR blablabla)) and I am
> fine with that. Is there such a thing in b2 and Jam?

ECHO should work. I also have a WIP debugger in the
debug branch.

> - If I want to add a feature to b2, how do I test it? How do I say that
> I am in such environment, so I want a specific set of features on this
> environment and I am running specific tests for it?
> - I can see that there are travis tests. What is currently covered? Any
> interests in having more testers with other type of environments?
> - In I can see only
> python files. Is that enough for the testing purposes? Don't you think
> that having Jamfiles as well here would be testing complementary things
> and being at the same time a source of documentation?

The python scripts create Jamfiles to test.

> Repository organization
> =======================
> - This is a bit related to what is above, but how is the repository
> currently organized? I can see for instance a "website" AND "doc"
> folders, a "notes" folder etc. Where are the modules supposed to be?
> - Why would contributions go to a "contrib" folder? Aren't contributions
> first class citizens? (and BTW, why would tntnet be integrated into b2
> repository?)
> - Ideally, I would like to understand the main components of the project
> just by looking at the top folders in the repository.

engine/ - The C source for b2
kernel/ - Core language components that are tightly
          integrated with the engine.
build/ - The main components of the build system.
          targets, feature, projects, etc.
tools/ - Modules to handle specific compilers, libraries,
          tools. Most new modules should go here.

In Christ,
Steven Watanabe

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at