Render/parse docs as a part of the CI
Motivation
It's easy to leave out a ::, making the docs invalid. As in #6938.
Probably don't need to render them, only parse them.
Description of Proposed Feature
Add a unit test, should be easy.
Plan for Implementation
It would be great to catch broken internal links as well. Not sure offhand what the mechanism would be to catch this, but here are a couple places where broken links are caught in SCDoc:
https://github.com/supercollider/supercollider/blob/13c0be0c2f6d6d5580fa02f149a9014788938a53/SCClassLibrary/SCDoc/SCDoc.sc#L648-L686
https://github.com/supercollider/supercollider/blob/13c0be0c2f6d6d5580fa02f149a9014788938a53/SCClassLibrary/SCDoc/SCDocRenderer.sc#L55-L93
I started digging into this (see https://github.com/supercollider/supercollider/compare/develop...capital-G:supercollider:build-help-target) but currently run into an error during the build step?
https://github.com/capital-G/supercollider/actions/runs/15487130834/job/43604340109
Run timeout 5m cmake --build $BUILD_PATH --config Release --target Help
[ 0%] Built target tlsf
[ 0%] Building CXX object server/scsynth/CMakeFiles/libscsynth.dir/SC_Jack.cpp.o
/home/runner/work/supercollider/supercollider/server/scsynth/SC_Jack.cpp:34:10: fatal error: 'jack/jack.h' file not found
34 | #include <jack/jack.h>
| ^~~~~~~~~~~~~
1 error generated.
gmake[3]: *** [server/scsynth/CMakeFiles/libscsynth.dir/build.make:499: server/scsynth/CMakeFiles/libscsynth.dir/SC_Jack.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/Makefile2:3901: server/scsynth/CMakeFiles/libscsynth.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:4127: lang/CMakeFiles/Help.dir/rule] Error 2
Can someone make sense of this why after an install build of SuperCollider we could run into an error b/c of missing jack?
One problem though: I think if we run into an invalid syntax the parser will bail out on a primitive level and this will also return sclang into its REPL state from which we can't exit anymore in CI - we will bail out after the timeout of 5 minutes though.
We should introduce a flag to sclang like --script-mode in order to not have the ability to fall back into REPL mode if something goes south.
I'm not too sure what is going on here. I was going to do this as a SC UnitTest by calling a method on SCDoc, there is already a render all, should be easy enough to add a parse all. This should throw a primitive error if it can't parse them, so we just test there were no exceptions thrown.