-
Notifications
You must be signed in to change notification settings - Fork 1.4k
[Tutorials] Make converttonotebook smarter, and update RF tutorials. #5913
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
[Tutorials] Make converttonotebook smarter, and update RF tutorials. #5913
Conversation
|
Starting build on |
d295ca9 to
af73775
Compare
|
Starting build on |
|
Build failed on ROOT-debian10-i386/cxx14. Failing tests: |
af73775 to
92be15e
Compare
|
Starting build on |
92be15e to
6217fb9
Compare
|
Starting build on |
|
Starting build on |
51daa22 to
50989b7
Compare
|
Starting build on |
50989b7 to
68a712f
Compare
|
Starting build on |
|
Starting build on |
|
Build failed on ROOT-fedora31/noimt. Errors:
|
6994a3d to
26204ee
Compare
|
Starting build on |
26204ee to
3ad0de5
Compare
|
Build failed on ROOT-performance-centos8-multicore/cxx17. Failing tests: |
f5d9481 to
72b4745
Compare
|
Starting build on |
72b4745 to
fbe4475
Compare
|
Starting build on |
|
Build failed on ROOT-performance-centos8-multicore/cxx17. Failing tests: |
|
@hageboeck I tried it locally and seems to be working as intended - I saw some errors though, but I think those are related to my environment. @couet I think it is essentially good to go 🙂. Could you pay attention after merging this that things are working as expected in the machine where the documentation is being built? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! (EDIT: I have rebased and applied clang-format suggestions)
converttonotebook.py was able to recognise a few functions based on a
few hard-coded return types in C++. Now, it searches for patterns such as
<return type>[*&] [abcd::]abcd(
to find functions, and then it counts () as well as { } to find the
function bodies. It also more reliably deals with things that appear
before function definitions, such as
template<typename T>
[ROOT-10861] This is a partial fix for ROOT-10861, because functions are
not ripped apart, so the notebook will run.
Further, doxygen-style latex tags such as `\f[` by
notebook-style `$$`, so markdown cells look better.
Make sure converttonotebook recognises indented comments.
- Add a function that measures the indentation of a function body. - Use this to create nicely formatted cells in notebooks. This is especially important for RooFit tutorials.
If errors/exceptions occur during conversion of tutorial macros to notebooks, a few more helpful messages are printed. Further, the exit status of the notebook conversion step now propagates to the outside, the conversion failures can be detected automatically.
converttonotebook.py was converting each comment into a markdown cell. If comments are inside blocks, the blocks get split into multiple cells, and therefore cannot execute, any more. [ROOT-10877]
[ROOT-10157] - The doxygen filter step now only writes out that it wants a notebook, and how it should be created, but it doesn't run the notebook. - Later, this info is picked up by makeNotebooks.sh, and notebooks are generated in parallel. - Add a variable in the Makefile to choose number of processes for notebook conversion.
- Doxygen was creating one svg for every class, showing in which library it resides. This created 6000 svgs, which were mostly identical. Now, only ~100 are created for every library in ROOTSYS/lib/, and the relevant webpages link to those. This speeds up the "listlibs" step of the doxygen process signficantly. - Add parallel processing for collaboration diagrams of class webpages. - Remove scanning of rootmap files. It doesn't work, any more. TCling needs a fix for ROOT-10900, so gInterpreter->GetClassSharedLib() will always return the right thing. - Further, parallelise the modification of class webpages.
Notebooks can't deal with something like
TFile file("name");
This leads to a name clash, and the notebook cannot be executed.
fbe4475 to
989112a
Compare
|
Starting build on |
converttonotebook.pyonly recognises functions with a few hard-coded return types. Here, this limitation is lifted (or at least a broader range of functions is recognised ...).