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


AMDG

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 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 .
>
> 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 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.

>
> Documentation
> =============
> - 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
> -
> http://www.boost.org/doc/libs/1_62_0/doc/html/bbv2/tasks.html#bbv2.builtins.testing
>
> - 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 :)
>
> 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 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
> 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 acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk