Hi Everyone, This is to ask for help with building QuickBook documentation, but also to spill my frustration. I would like to offer some feedback in connection with the recent "the future of Boost" threads: about the entry barrier for someone who wants to contribute to Boost. I maintain Boost.Optional. Getting my environment to the point where I was actually able to apply modifications to the official repo took some time, but it has been working fine since. Modifying the source files, so that they compile on multiple compilers, platforms and versions, including C++03 is the easiest part. Testing is a bit harder, but basically works also: I go to folder `test`, run the `b2` command, and it is done. But updating the documentation is the most difficult task for me. Not the content -- this is easy -- but the process/pipeline/framework. I inherited the documentation in QuickBook format, which as I understand was the recommended way for providing documentation for Boost libraries. Maybe it still is? (but I see more and more docs being rewritten to AsciDocs.) I understand that library authors have the freedom to choose their own format of docs for their libraries, but does boost recommend (as opposed to enforcing) one format? Anyway, in order to test if my QuickBook dos are correct, I need to build HTML version from the sources. Sometimes it "just works" with `b2` command, but when something goes wrong, this becomes a pain. I cannot just call `b2` for my library, because apparently my Fedora comes with preinstalled version of b2 (4.4) which appears to be incompatible with something in Boost libraries sources, as I get error: error: mismatched versions of B2 engine and core
error: B2 engine (b2) is 4.4.1 error: B2 core (at /home/andrzej/Repos/boost/tools/build/src) is 4.9-git
Ok, I learned to live with it and to launch b2 from tools/build. It used to work for a while, but yesterday when I did a `git pull --rebase` on Boost repo, it no longer works. I get an error: Jamfile.v2:45: Unescaped special character in argument
<format>pdf:xsl:paramboost.url.prefix= http://www.boost.org/doc/libs/release/libs/optional/doc/html Performing configuration checks
- default address-model : 64-bit (cached) [1] error: at /home/andrzej/Repos/boost/tools/build/src/kernel/modules.jam:106 error: Unable to find file or target named error: '/boost/architecture//mips' error: referred to from project at error: '.'
Ok, I can remove line `: /boost/architecture//mips` from file `boostcpp.jam`. (Am I supposed to do it before using `b2`?). But then, when trying to build the docs, I get a lot of errors, saying: runtime error: file
/home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName.
(Full error message is enclosed.) I have no clue which element in the pipeline is causing or reporting this. QuickBook, BoostBook, DocBook, xsltproc? The process involves many components, at least according to this diagram: https://svn.boost.org/trac10/wiki/BoostDocs/GettingStarted Is this something obvious that I am missing? Is this a good idea, or a recommended practice to use QuickBook nowadays for Boost docs? I feel comfortable fixing or writing C++ code, and I am willing to devote some of my limited time to do this. But fighting with QuickBook documentation is something I would not rather do. I have a small library that I considered submitting to Boost: https://github.com/akrzemi1/markable But as long as it is on my GitHub page, it is simple to maintain, test and document. If I imagine how many nights I will have to spend making the documentation compatible with Boost, or getting all the b2-related stuff to work, I feel discouraged. Maybe I am being unfair to `b2` now. But it is certainly my personal emotional impression. I do not mind the current Boost website format or the underlying technology. I do not mind the mailing list format. My primary obstacle is this perceived or real difficulty to get a boost library into a shape where it just builds, including its documentation. My ideal as a Boost library maintainer, is that I just provide the source for the library and the documentation, and anything else "just works". Maybe this is not achievable, but the closer to this ideal, the more encouraged I would be to consider authoring or maintaining a library. Any help in fixing my build problem is most welcome. Regards, &rzej;
On Sat, May 21, 2022 at 4:08 PM Andrzej Krzemienski via Boost
I feel comfortable fixing or writing C++ code, and I am willing to devote some of my limited time to do this. But fighting with QuickBook documentation is something I would not rather do.
Yes I feel you. I stay with Quickbook because it gives me the most editorial control and I think it looks better, but it definitely requires a much larger investment of energy and willingness to be frustrated when things go wrong. In your case, you can just switch to asciidoc and call it a day. Peter uses asciidoc, have a look at Boost.mp11 for working scripts and examples of asciidoc integration into a Boost library. Thanks
On Sat, May 21, 2022 at 6:08 PM Andrzej Krzemienski via Boost < boost@lists.boost.org> wrote:
I cannot just call `b2` for my library, because apparently my Fedora comes with preinstalled version of b2 (4.4) which appears to be incompatible with something in Boost libraries sources, as I get error:
error: mismatched versions of B2 engine and core
error: B2 engine (b2) is 4.4.1 error: B2 core (at /home/andrzej/Repos/boost/tools/build/src) is 4.9-git
Right. That would be expected as the b2 engine executable needs to match the build system Jam code to work.
Ok, I learned to live with it and to launch b2 from tools/build. It used to work for a while, but yesterday when I did a `git pull --rebase` on Boost repo, it no longer works. I get an error:
Jamfile.v2:45: Unescaped special character in argument
<format>pdf:xsl:paramboost.url.prefix= http://www.boost.org/doc/libs/release/libs/optional/doc/html Performing configuration checks
- default address-model : 64-bit (cached) [1] error: at /home/andrzej/Repos/boost/tools/build/src/kernel/modules.jam:106 error: Unable to find file or target named error: '/boost/architecture//mips' error: referred to from project at error: '.'
Did you rebuild the b2 engine executable after doing the update? I posted about a new b2 version a few days ago < https://lists.boost.org/Archives/boost/2022/05/253006.php>.
Ok, I can remove line `: /boost/architecture//mips` from file `boostcpp.jam`. (Am I supposed to do it before using `b2`?). But then, when trying to build the docs, I get a lot of errors, saying:
runtime error: file
/home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName.
(Full error message is enclosed.) I have no clue which element in the pipeline is causing or reporting this. QuickBook, BoostBook, DocBook, xsltproc? The process involves many components, at least according to this diagram: https://svn.boost.org/trac10/wiki/BoostDocs/GettingStarted
I don't know what's going on either. But given that I don't know what version of the b2 engine you are invoking at this point I can't provide much help :-(
Is this something obvious that I am missing?
I suspect the obvious thing is not using the correct b2 engine, at least.
Is this a good idea, or a recommended practice to use QuickBook nowadays for Boost docs?
I stopped using quickbook, and stopped helping maintain it, long ago. As the toolchain was too complex to deal with. Like others I'm using Asciidoctor now.
Any help in fixing my build problem is most welcome.
I would suggest hoping into the boost channel on cpplang.slack.com for more immediate help. I tend to be there most hours of the day. As do others who know the workings of the documentation building. -- -- René Ferdinand Rivera Morell -- Don't Assume Anything -- No Supone Nada -- Robot Dreams - http://robot-dreams.net
niedz., 22 maj 2022 o 02:52 René Ferdinand Rivera Morell < grafikrobot@gmail.com> napisał(a):
On Sat, May 21, 2022 at 6:08 PM Andrzej Krzemienski via Boost < boost@lists.boost.org> wrote:
I cannot just call `b2` for my library, because apparently my Fedora comes with preinstalled version of b2 (4.4) which appears to be incompatible with something in Boost libraries sources, as I get error:
error: mismatched versions of B2 engine and core
error: B2 engine (b2) is 4.4.1 error: B2 core (at /home/andrzej/Repos/boost/tools/build/src) is 4.9-git
Right. That would be expected as the b2 engine executable needs to match the build system Jam code to work.
Ok, I learned to live with it and to launch b2 from tools/build. It used to work for a while, but yesterday when I did a `git pull --rebase` on Boost repo, it no longer works. I get an error:
Jamfile.v2:45: Unescaped special character in argument
<format>pdf:xsl:paramboost.url.prefix= http://www.boost.org/doc/libs/release/libs/optional/doc/html Performing configuration checks
- default address-model : 64-bit (cached) [1] error: at /home/andrzej/Repos/boost/tools/build/src/kernel/modules.jam:106 error: Unable to find file or target named error: '/boost/architecture//mips' error: referred to from project at error: '.'
Did you rebuild the b2 engine executable after doing the update? I posted about a new b2 version a few days ago < https://lists.boost.org/Archives/boost/2022/05/253006.php>.
Thanks. That would be the most likely cause of my problems. Could you point me to instructions for rebuilding the b2 engine executable? Regards, &rzej;
Ok, I can remove line `: /boost/architecture//mips` from file `boostcpp.jam`. (Am I supposed to do it before using `b2`?). But then, when trying to build the docs, I get a lot of errors, saying:
runtime error: file
/home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName.
(Full error message is enclosed.) I have no clue which element in the pipeline is causing or reporting this. QuickBook, BoostBook, DocBook, xsltproc? The process involves many components, at least according to this diagram: https://svn.boost.org/trac10/wiki/BoostDocs/GettingStarted
I don't know what's going on either. But given that I don't know what version of the b2 engine you are invoking at this point I can't provide much help :-(
Is this something obvious that I am missing?
I suspect the obvious thing is not using the correct b2 engine, at least.
Is this a good idea, or a recommended practice to use QuickBook nowadays for Boost docs?
I stopped using quickbook, and stopped helping maintain it, long ago. As the toolchain was too complex to deal with. Like others I'm using Asciidoctor now.
Any help in fixing my build problem is most welcome.
I would suggest hoping into the boost channel on cpplang.slack.com for more immediate help. I tend to be there most hours of the day. As do others who know the workings of the documentation building.
-- -- René Ferdinand Rivera Morell -- Don't Assume Anything -- No Supone Nada -- Robot Dreams - http://robot-dreams.net
-----Original Message----- From: Boost
On Behalf Of Andrzej Krzemienski via Boost Sent: 22 May 2022 14:14 To: René Ferdinand Rivera Morell Cc: Andrzej Krzemienski ; Boost Developers List Subject: Re: [boost] need help with building QuickBook docs Thanks. That would be the most likely cause of my problems. Could you point me to instructions for rebuilding the b2 engine executable?
https://www.boost.org/doc/libs/1_79_0/more/getting_started/windows.html#get-... Section 5.1 Simplified Build From Source If you wish to build from source with Visual C++, you can use a simple build procedure described in this section. Open the command prompt and change your current directory to the Boost root directory. Then, type the following commands: bootstrap .\b2 The first command prepares the Boost.Build system for use. The second command invokes Boost.Build to build the separately-compiled Boost libraries. Please consult the Boost.Build documentation for a list of allowed options. https://www.boost.org/doc/libs/1_79_0/tools/build/doc/html/index.html https://www.boost.org/doc/libs/1_79_0/tools/build/doc/html/index.html#bbv2.i... Run either .\bootstrap.bat (on Windows), or ./bootstrap.sh (on other operating systems) (which may be too simple. By default, Windows 10 and up, probably don't provide cmd.exe, preferring the fancy new command shell Windows PowerShell) b2 -v will show the current version. You will probably want to ensure that b2.exe is visible globally, perhaps by adding to PATH. Perhaps using the Windows Environment Variables editor? HTH Paul
niedz., 22 maj 2022 o 15:52 Paul A Bristow via Boost
-----Original Message----- From: Boost
On Behalf Of Andrzej Krzemienski via Boost Sent: 22 May 2022 14:14 To: René Ferdinand Rivera Morell Cc: Andrzej Krzemienski ; Boost Developers List < boost@lists.boost.org> Subject: Re: [boost] need help with building QuickBook docs Thanks. That would be the most likely cause of my problems. Could you point me to instructions for rebuilding the b2 engine executable?
https://www.boost.org/doc/libs/1_79_0/more/getting_started/windows.html#get-...
Section 5.1 Simplified Build From Source
If you wish to build from source with Visual C++, you can use a simple build procedure described in this section. Open the command prompt and change your current directory to the Boost root directory. Then, type the following commands:
bootstrap .\b2 The first command prepares the Boost.Build system for use. The second command invokes Boost.Build to build the separately-compiled Boost libraries. Please consult the Boost.Build documentation for a list of allowed options.
https://www.boost.org/doc/libs/1_79_0/tools/build/doc/html/index.html
https://www.boost.org/doc/libs/1_79_0/tools/build/doc/html/index.html#bbv2.i...
Run either .\bootstrap.bat (on Windows), or ./bootstrap.sh (on other operating systems)
(which may be too simple. By default, Windows 10 and up, probably don't provide cmd.exe, preferring the fancy new command shell Windows PowerShell)
b2 -v will show the current version.
You will probably want to ensure that b2.exe is visible globally, perhaps by adding to PATH. Perhaps using the Windows Environment Variables editor?
HTH
Paul
Thank you. This seems to remove the first obstacle on my way to building Boost.Optional docs. I am now using B2 Version 4.9. OS=LINUX. I get the error from another tool, I suppose: [2] gcc-12/release/cxxstd-0x-iso/link-static/python-3.10/threadapi-pthread/threading-multi/visibility-hidden ...patience... ...patience... ...found 4351 targets... ...updating 2 targets... xslt-xsltproc ../../../bin.v2/libs/optional/doc/optional.docbook runtime error: file /home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName. Is it DocBook, QuickBok, BoostBook? (I enclose the full error report.) I am just running b2 on boost/libs/optional/doc from the official repo. Can someone confirm if they see the same problem? or is it just me? Regards, &rzej;
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Andrzej Krzemienski wrote:
I am now using B2 Version 4.9. OS=LINUX. I get the error from another tool, I suppose:
[2] gcc-12/release/cxxstd-0x-iso/link-static/python-3.10/threadapi- pthread/threading-multi/visibility-hidden ...patience... ...patience... ...found 4351 targets... ...updating 2 targets... xslt-xsltproc ../../../bin.v2/libs/optional/doc/optional.docbook runtime error: file /home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName.
This error seems to be coming from xsltproc. Why, I have no idea. Maybe the version of xsltproc changed, and it no longer likes annotation.xsl.
I don't have a file annotation.xsl ☹ C:\Program Files\xsltproc_win32>xsltproc.exe --version Using libxml 20630, libxslt 10122 and libexslt 813 xsltproc was compiled against libxml 20630, libxslt 10122 and libexslt 813 libxslt 10122 was compiled against libxml 20630 libexslt 813 was compiled against libxml 20630 Paul
-----Original Message----- From: Boost
On Behalf Of Peter Dimov via Boost Sent: 22 May 2022 16:50 To: boost@lists.boost.org Cc: Peter Dimov Subject: Re: [boost] need help with building QuickBook docs Andrzej Krzemienski wrote:
I am now using B2 Version 4.9. OS=LINUX. I get the error from another tool, I suppose:
[2] gcc-12/release/cxxstd-0x-iso/link-static/python-3.10/threadapi- pthread/threading-multi/visibility-hidden ...patience... ...patience... ...found 4351 targets... ...updating 2 targets... xslt-xsltproc ../../../bin.v2/libs/optional/doc/optional.docbook runtime error: file /home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName.
This error seems to be coming from xsltproc. Why, I have no idea. Maybe the version of xsltproc changed, and it no longer likes annotation.xsl.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
On 5/22/22 17:45, Andrzej Krzemienski via Boost wrote:
Thank you. This seems to remove the first obstacle on my way to building Boost.Optional docs. I am now using B2 Version 4.9. OS=LINUX. I get the error from another tool, I suppose:
[2] gcc-12/release/cxxstd-0x-iso/link-static/python-3.10/threadapi-pthread/threading-multi/visibility-hidden ...patience... ...patience... ...found 4351 targets... ...updating 2 targets... xslt-xsltproc ../../../bin.v2/libs/optional/doc/optional.docbook runtime error: file /home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName.
Is it DocBook, QuickBok, BoostBook? (I enclose the full error report.) I am just running b2 on boost/libs/optional/doc from the official repo. Can someone confirm if they see the same problem? or is it just me?
I think, this is coming from from incorrect (unexpected?) generated BoostBook document that was produced by QuickBook. xsltproc then applies BoostBook stylesheets to convert it to Docbook and fails. On my local machine Boost.Optional docs from develop build successfully, although with the following warning: 23_ref_optional_io.qbk:45: warning: line breaks generate invalid boostbook (will only note first occurrence). I think, it's worth fixing. The docs at the place of the warning contain some elaborate sequence that could probably be replaced with a code block. I'm not sure if the warning is the culprit, though. Have you modified your local copy of the docs? Are you using the latest built QuickBook executable?
On 5/23/22 01:26, Andrey Semashev wrote:
On 5/22/22 17:45, Andrzej Krzemienski via Boost wrote:
Thank you. This seems to remove the first obstacle on my way to building Boost.Optional docs. I am now using B2 Version 4.9. OS=LINUX. I get the error from another tool, I suppose:
[2] gcc-12/release/cxxstd-0x-iso/link-static/python-3.10/threadapi-pthread/threading-multi/visibility-hidden ...patience... ...patience... ...found 4351 targets... ...updating 2 targets... xslt-xsltproc ../../../bin.v2/libs/optional/doc/optional.docbook runtime error: file /home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName.
Is it DocBook, QuickBok, BoostBook? (I enclose the full error report.) I am just running b2 on boost/libs/optional/doc from the official repo. Can someone confirm if they see the same problem? or is it just me?
I think, this is coming from from incorrect (unexpected?) generated BoostBook document that was produced by QuickBook. xsltproc then applies BoostBook stylesheets to convert it to Docbook and fails.
On my local machine Boost.Optional docs from develop build successfully, although with the following warning:
23_ref_optional_io.qbk:45: warning: line breaks generate invalid boostbook (will only note first occurrence).
I think, it's worth fixing. The docs at the place of the warning contain some elaborate sequence that could probably be replaced with a code block.
I'm not sure if the warning is the culprit, though. Have you modified your local copy of the docs? Are you using the latest built QuickBook executable?
Also, make sure you don't have some stale content in bin.v2. Your log doesn't indicate that QuickBook was run, probably because the BoostBook document was already there.
pon., 23 maj 2022 o 00:30 Andrey Semashev via Boost
On 5/23/22 01:26, Andrey Semashev wrote:
On 5/22/22 17:45, Andrzej Krzemienski via Boost wrote:
Thank you. This seems to remove the first obstacle on my way to building Boost.Optional docs. I am now using B2 Version 4.9. OS=LINUX. I get the error from another
tool,
I suppose:
[2]
gcc-12/release/cxxstd-0x-iso/link-static/python-3.10/threadapi-pthread/threading-multi/visibility-hidden
...patience... ...patience... ...found 4351 targets... ...updating 2 targets... xslt-xsltproc ../../../bin.v2/libs/optional/doc/optional.docbook runtime error: file /home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName.
Is it DocBook, QuickBok, BoostBook? (I enclose the full error report.) I am just running b2 on boost/libs/optional/doc from the official repo. Can someone confirm if they see the same problem? or is it just me?
I think, this is coming from from incorrect (unexpected?) generated BoostBook document that was produced by QuickBook. xsltproc then applies BoostBook stylesheets to convert it to Docbook and fails.
On my local machine Boost.Optional docs from develop build successfully, although with the following warning:
23_ref_optional_io.qbk:45: warning: line breaks generate invalid boostbook (will only note first occurrence).
I think, it's worth fixing. The docs at the place of the warning contain some elaborate sequence that could probably be replaced with a code block.
I'm not sure if the warning is the culprit, though. Have you modified your local copy of the docs? Are you using the latest built QuickBook executable?
How can I check my version of QuickBook?
Also, make sure you don't have some stale content in bin.v2. Your log doesn't indicate that QuickBook was run, probably because the BoostBook document was already there.
I now removed everything from folder bin.v2 before running `b2 doc`. I still get the same result. Maybe there is a way to see intermediate results, such as the generated BoostBook format? Regards, &rzej;
Andrzej Krzemienski wrote:
pon., 23 maj 2022 o 00:30 Andrey Semashev via Boost
napisał(a):
...
I'm not sure if the warning is the culprit, though. Have you modified your local copy of the docs?
The most important question is this one. Nobody can reproduce your results without knowing what you are working with.
On 5/23/22 22:14, Andrzej Krzemienski wrote:
pon., 23 maj 2022 o 00:30 Andrey Semashev via Boost > > Are you using the latest built QuickBook > executable?
How can I check my version of QuickBook?
quickbook --version But if you need to ask, it is probably better to just build it from sources.
Also, make sure you don't have some stale content in bin.v2. Your log doesn't indicate that QuickBook was run, probably because the BoostBook document was already there.
I now removed everything from folder bin.v2 before running `b2 doc`. I still get the same result. Maybe there is a way to see intermediate results, such as the generated BoostBook format?
The intermediate results can be found in bin.v2/libs/optional.
-----Original Message----- From: Boost
On Behalf Of Andrey Semashev via Boost Sent: 22 May 2022 23:27 To: boost@lists.boost.org Cc: Andrey Semashev Subject: Re: [boost] need help with building QuickBook docs On 5/22/22 17:45, Andrzej Krzemienski via Boost wrote:
Thank you. This seems to remove the first obstacle on my way to building Boost.Optional docs. I am now using B2 Version 4.9. OS=LINUX. I get the error from another tool, I suppose:
[2] gcc-12/release/cxxstd-0x-iso/link-static/python-3.10/threadapi-pthread /threading-multi/visibility-hidden ...patience... ...patience... ...found 4351 targets... ...updating 2 targets... xslt-xsltproc ../../../bin.v2/libs/optional/doc/optional.docbook runtime error: file /home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName.
Is it DocBook, QuickBok, BoostBook? (I enclose the full error report.) I am just running b2 on boost/libs/optional/doc from the official repo. Can someone confirm if they see the same problem? or is it just me?
I think, this is coming from from incorrect (unexpected?) generated BoostBook document that was produced by QuickBook. xsltproc then applies BoostBook stylesheets to convert it to Docbook and fails.
On my local machine Boost.Optional docs from develop build successfully, although with the following warning:
23_ref_optional_io.qbk:45: warning: line breaks generate invalid boostbook (will only note first occurrence).
If this warning is from using [br] (at least once) then it is entirely normal and can be ignored. Paul
Thank you. This seems to remove the first obstacle on my way to building Boost.Optional docs. I am now using B2 Version 4.9. OS=LINUX. I get the error from another tool, I suppose:
[2] gcc-12/release/cxxstd-0x-iso/link-static/python-3.10/threadapi-pthread/threading-multi/visibility-hidden ...patience... ...patience... ...found 4351 targets... ...updating 2 targets... xslt-xsltproc ../../../bin.v2/libs/optional/doc/optional.docbook runtime error: file /home/andrzej/Repos/boost/tools/boostbook/xsl/annotation.xsl line 432 element element xsl:element: The effective name '' is not a valid QName.
Is it DocBook, QuickBok, BoostBook? (I enclose the full error report.) I am just running b2 on boost/libs/optional/doc from the official repo. Can someone confirm if they see the same problem? or is it just me?
Optional docs build fine for me here, there is some getting started guidance here: https://svn.boost.org/trac10/wiki/BoostDocs/GettingStarted on getting set up for building with quickbook etc. Just another thing to double check: are you using the Docbook 4.2 DTD? Using a later one will result in inscrutable errors. Hoping this helps, John.
-----Original Message----- From: Boost
On Behalf Of Andrzej Krzemienski via Boost Sent: 22 May 2022 00:00 To: Boost mailing list Cc: Andrzej Krzemienski Subject: [boost] need help with building QuickBook docs Hi Everyone, This is to ask for help with building QuickBook documentation, but also to spill my frustration. I would like to offer some feedback in connection with the recent "the future of Boost" threads: about the entry barrier for someone who wants to contribute to Boost.
You are right that Quickbook is nice to write documents and produces very nice documentation, especially for complex libraries. I have yet to see any other documentation system that can produce results that are as good. But setup is tricky and when it goes wrong it is even more difficult to figure what to do. I'd put part of the blame on B2 whose error messages are generally no help because that fail to tell you what to do to put things right. (OK that's *much* trickier than automatically telling what went wrong).
I maintain Boost.Optional. Getting my environment to the point where I was actually able to apply modifications to the official repo took some time, but it has been working fine since. Modifying the source files, so that they compile on multiple compilers, platforms and versions, including C++03 is the easiest part. Testing is a bit harder, but basically works also: I go to folder `test`, run the `b2` command, and it is done. But updating the documentation is the most difficult task for me. Not the content -- this is easy -- but the process/pipeline/framework. I inherited the documentation in QuickBook format, which as I understand was the recommended way for providing documentation for Boost libraries. Maybe it still is? (but I see more and more docs being rewritten to AsciDocs.) I understand that library authors have the freedom to choose their own format of docs for their libraries, but does boost recommend (as opposed to enforcing) one format?
Anyway, in order to test if my QuickBook dos are correct, I need to build HTML version from the sources. Sometimes it "just works" with `b2` command, but when something goes wrong, this becomes a pain. I cannot just call `b2` for my library, because apparently my Fedora comes with preinstalled version of b2 (4.4) which appears to be incompatible with something in Boost libraries sources, as I get error:
error: mismatched versions of B2 engine and core
error: B2 engine (b2) is 4.4.1 error: B2 core (at /home/andrzej/Repos/boost/tools/build/src) is 4.9-git
I think the error message should say "re-build B2" and tell you *in detail* how to do that.
I suspect all your further difficulties result from not rebuilding B2 (and making sure that it is visible everywhere).
I share your frustration with B2, but it does things painlessly something that no other build system does - build lots of variants of operating systems and compilers and options. Its key feature is handling portability. Cmake, for example, is easy to use - but only for one single users build system.
As regards your small project, you can use any documentation system - but Quickbook will have the best look and feel.
(And if you have to struggle with building the Boost.Optional docs, it will work painlessly for your project.
Good luck - and ask for help early and often. On Boost-build
participants (7)
-
Andrey Semashev
-
Andrzej Krzemienski
-
John Maddock
-
pbristow@hetp.u-net.com
-
Peter Dimov
-
René Ferdinand Rivera Morell
-
Vinnie Falco