Re: Boost.Graph Documentation Got a Facelift: Ship it Or Not ?

Andrzej Krzemienski via Boost <[email protected]> Tue, 16 Jun 2026 14:00:00 +0200
Newsgroups gmane.comp.lib.boost.devel
Message-ID <CAOenAXgp+cG7Ex1dimGhfJwK=U-k+hnnEY24G6OAUUZYzPwsBA@mail.gmail.com>
śr., 10 cze 2026 o 22:59 Andrzej Krzemienski <[email protected]>
napisał(a):

>
>
> wt., 9 cze 2026 o 17:43 Arnaud Becheler via Boost <[email protected]>
> napisał(a):
>
>> Dear Boostlings, Graphlings,
>>
>> We have taken a first step in modernizing the Boost.Graph documentation
>> with a preview available here:
>> https://491.graph.prtest3.cppalliance.org/graph/index.html .
>>
>> These first steps aim at solving low-hanging fruits and answering frequent
>> complaints from users collected during the 2022 User Survey (
>> https://www.reddit.com/r/cpp/comments/vyt4t5/boostgraph_user_survey/ )
>> and
>> BGL workshop 2026  ( https://github.com/boostorg/graph/discussions/466 )
>>
>> - documentation hard to explore (no table of content, no search bar)
>> - examples use old C++ and several don't even compile
>> - outdated visual design
>>
>> We have been investing into several dimensions:
>>
>> - migrating the old pure html pages to asciidoc + antora
>> - modern examples for each algorithm are compiled and run in CI, with
>> output integrated in the documentation
>> - higher scanability for algorithm complexity + where defined
>> - a better landing for users not familiar with property maps
>>
>> The PR currently sits unmerged as we are trying to assess its viability.
>>
>> Important:
>>
>> - this is NOT the final vision, this is meant as a first important step.
>> - the current scope is NOT a full rewrite/reorganization of each algorithm
>> page (future work).
>> - the current scope is a modernization of the documentation
>> infrastructure.
>>
>> - we are just worried we may have made and missed important mistakes that
>> should prevent the merge, so Jeremy Murphy (principal BGL maintainer) and
>> I
>> decided to poll around for general review and feeling.
>>
>> Question to the community:
>>
>> 1. Is the new documentation preview (
>> https://491.graph.prtest3.cppalliance.org/graph/index.html ) going in the
>> right direction?
>>
>
> Absolutely yes! Thank you so much for doing this!
> It is already way more user friendly and accessible.
>
>
>
>> 2. Is it better than the old documentation (
>> https://www.boost.org/doc/libs/1\_91\_0/libs/graph/doc/ )?
>>
>
> The front matter is definitely better.
>
>
>> 3. Would you want to see it merged in its current state or did you
>> identify
>> important mistakes we should absolutely fix before merge?
>>
>
> In order to be able to say that it can be merged right now, I would have
> to be sure if nothing important didn't disappear from the old one, and I
> was not able to inspect it that thoroughly.
>
> For instance, I do not see a Reference section. Old docs also do not have
> one either, but I can see
> https://www.boost.org/doc/libs/1_91_0/libs/graph/doc/table_of_contents.html
> where all names, like  predecessor_recorder
> <https://www.boost.org/doc/libs/1_91_0/libs/graph/doc/predecessor_recorder.html>,
> are listed. In the new docs, if I knew where to click, I would get to
> section "Predecessor Recorder
> <https://491.graph.prtest3.cppalliance.org/graph/visitors/predecessor_recorder.html>"
> but it is still different spelling: not the one used in code.
>
>
>> Any general complaints not directly related to this PR scope is welcome
>> and
>> will be integrated in future work :)
>>
>
> You bet.
> In the front page, it is not immediately clear that the cool animation
> actually illustrates what the following code snippet does. In fact, the
> animation moves so quickly that I do not know what is actually being
> illustrated. (It is still cool though.)
>
> The code snippet alone already does a great service to the users, present
> and future ones. I would recommend improving it further.
> Please do not use `using namespace boost` and instead prefix every
> function call with `boost::`. This will make the code a bit longer, but it
> will make it clear which parts come from the library, and which are defined
> in the fairly long snippet. For instance, in:
>
> ```
> auto vidx = get(vertex_index, g);
> ```
>
> It is so difficult to figure out what `vertex_index` is and how it got
> there, and  if this example would even compile.  `using namespace` is such
> a bad habit, and young developers learn it from looking at library examples
> like this one.
>
> The code example will require even more comments. For instance, it is not
> clear what 20 is in:
>
> ```
> Graph g(edges.begin(), edges.end(), 20);
> ```
>
> Next, in:
>
> ```
>     // Wrap storage into property maps
>     auto vidx = get(vertex_index, g);
>     auto dmap = make_iterator_property_map(distances.begin(), vidx);
>     auto pmap = make_iterator_property_map(predecessors.begin(), vidx);
> ```
>
> It is not clear that all three represent property maps. The first one
> looks so different from the other two. Why does the first one not have
> "map" in the variable name?
>
> Rename distances/predecessors to distance_storage/predecessor_storage.
> Then rename dmap/pmap to distance/predecessor.
>

Oh, and the original authors from Indiana University need to be listed in
the front matter.

Regards,
&rzej;
_______________________________________________
Boost mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.boost.org/mailman3/lists/boost.lists.boost.org/
Archived at: https://lists.boost.org/archives/list/[email protected]/message/BKHBVH7Y4P6BV24N6TA33KVASL5RG7C4/