-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
documentation build steps #876
Comments
Upon further consideration, maybe this idea is misdirected - if Antora is providing many benefits that cannot be achieved otherwise. And so, whatever the disadvantages, it is still worthwhile to use Antora for one library such as boostorg/url. |
I agree with the complexity and frustration that new different workflows cause. For instance, iterating all libraries and calling the same command on each is no longer a correct strategy. One similar inconvenience is the BoostBook documentation, which causes similar problems in some ways. But basically, I agree this is painful:
Antora assumes that each library is a component of a larger project that must be built all at once. Especially now that only Boost.URL is using it, there's the apprehension that other libraries won't adopt it, and then we'll end up with a different workflow just for Boost.URL. On the other hand, at least five other libraries could join it immediately because these are libraries we maintain and would like to transition. If we ever give up entirely on Antora, we can revert Boost.URL too Quickbook+Doxygen+Docca.
This issue doesn't reflect our design. I saw that Vinnie made a question there. But Vinnie's question predates our current design.
We may need more comments, renaming this script, or better documentation on the workflow. But The process to build Boost.URL docs is running Also, However, the extension doesn't need all of Boost. It just needs Boost in
Yes. Having the same method for all libraries is useful. And we considered that in the trade-offs. There are also benefits, such as the relationship between libraries that opt-in, being based on asciidoc, the UI bundles, navigation, and many ways to customize it. It's not standardized in the sense that it's a new workflow (not the same as other libs). It's a proposal for a new standard worth adopting because of its benefits. The contributor guide in People may be willing to reevaluate the trade-offs and choose some other tool to replace Antora. But Antora does offer extra features that can't be replicated easily with just Asciidoc. The other points you mention after this list assume all points are correct and interrelated:
|
Imagine the goal is for widespread adoption of this method. Two hundred libraries are on-board now. I am the author of boostorg/leaf. I am testing locally, and want to iterate: edit the docs, build and view them, edit the docs, build and view them, repeat. Can this be accurate: "The process to build Boost.LEAF docs is running libdoc.sh in website-v2-docs, that generates the documentation for all antora libraries." It seems unbelievable, to build 200 libraries each time, to require all of them to be checked out locally, how long will it take for everything to compile, and what if another library has a bug, can I build leaf? |
Yes, I agree. Libraries not being independent is a price for the benefit of cross-references, etc. And I agree the price is high in many ways. I am also open to removing Antora completely and using another tool where documentation is always independent if other people agree. Or maybe some people would use multiple Antora playbooks with a single component representing their libraries. Then Still, as far as I have any influence over the process, I'm thinking of a better approach for when more libraries use it. What The fact that this is possible without much loss (we could lose some cross-references) is evidence we could have one playbook per library. But again, that goes back to convincing other people through other means so we can undo the changes in |
The Antora git client "isomorphic-git" is written in javascript. "Is this really all there is to support working with submodules?" Meaning that maybe it's not impossible to add submodule capabilities to "isomorphic-git". Also: To make a note, the antora developers recommended Playbook Providers to support per-repo previews. That is similar to the strategy already mentioned. "The same thing could be done for any other build tool, so if nothing else, this is a reference for the idea." |
With boost library documentation there are two factors that are both important:
that the library docs can be built for any individual library, relatively conveniently, simply, directly.
that the library docs can be compiled by release-tools and published in full release archives.
The difficulties with antora docs in boostorg/url are:
https://gitlab.com/antora/antora/-/issues/895 "Document generation fails for Git Submodules". Since boostorg uses submodules, developers out in the world will encounter this. Attempting to add CI jobs also ran into this problem.
The build script "build_antora.sh" is complicated, and has a large number of dependencies, including the fact it downloads "all of boost". And npm modules.
It's not standardized. It's not the same method as other libs, which in boost is helpful.
An individual lib contributor would not seem to benefit from a "build_antora.sh" system since it's more complex and more work. The Jamfile method of building one library is simple, basic, quick, convenient.
Here is an idea:
Since Antora is based on AsciiDoc at some level, compose the docs for boostorg/url and other similar libaries using AsciiDoc and Jamfiles, and build them as normal, for each library. For each individual library, nothing changes, and it doesn't know about Antora.
Then, in boostorg/release-tools, collate and compile any discovered AsciiDoc libs into an antora collection. This may involve generating playbooks and dynamically modifying the text content of each library doc. Well, this is just an idea and I do not know if it would be feasible.
The text was updated successfully, but these errors were encountered: