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:
> 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 http://scons.org/contact.html . 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
> https://github.com/boostorg/build/blob/develop/CONTRIBUTING.rst, sorry
> if I missed it .
> - 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 boost.build 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 bootstrap.sh/bat and a Jamfile that can install
Boost.Build for standalone use.
> - there are currently several documentations, and in different places.
> It is good (for referencing) and bad (for confusion). A quick look shows
> - http://www.boost.org/build/doc/html/bbv2/builtins/testing.html
> - http://www.boost.org/build/tutorial.html
> - https://trac.lvk.cs.msu.su/boost.build/
> 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
> http://pandoc.org/ 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 boost.build. I believe there should be a
> single point there as well, since some information are also in
> boost.build bug tracker https://trac.lvk.cs.msu.su/boost.build/. I can
> work on that as well if needed.
> - I would really like to see the current design architecture as a
> drawing :)
> - 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
> - 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 https://github.com/boostorg/build/tree/develop/test 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
> - 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.
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk