LoadError: `makedocs` encountered an error [:missing_docs] -- terminating build before rendering.
kdheepak opened this issue · comments
I have the following source code in my project:
"""
CursorStyle
Different styles for the terminal cursor.
"""
@enumx CursorStyle::UInt32 begin
DEFAULT_USER_SHAPE = 0
BLINKING_BLOCK = 1
STEADY_BLOCK = 2
BLINKING_UNDER_SCORE = 3
STEADY_UNDER_SCORE = 4
BLINKING_BAR = 5
STEADY_BAR = 6
end
Base.cconvert(::Type{LibCrossterm.crossterm_CursorStyle}, v::CursorStyle.T) = LibCrossterm.crossterm_CursorStyle(UInt32(v))
And in my docs, I have
See API documentation below.
```@autodocs
Modules = [Crossterm]
```
But I get an error when building docs on CI
![image](https://private-user-images.githubusercontent.com/1813121/316717149-74c5a4ec-8be8-481a-9d0a-dfa80aa77121.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA1OTc5OTMsIm5iZiI6MTcyMDU5NzY5MywicGF0aCI6Ii8xODEzMTIxLzMxNjcxNzE0OS03NGM1YTRlYy04YmU4LTQ4MWEtOWQwYS1kZmE4MGFhNzcxMjEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcxMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MTBUMDc0ODEzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Y2Q4NmM3NTk4MDJkYTZkMjFiZDZhZTVkODQzOTIyNzU0OWIyNGMxNjgwZWNkOTczMmVhM2ZmYjUwYTEyZmQwMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.x4ZqmMLczJnvCpVSMr7EOyXqXhhUJLZzd6CU55lm6TY)
https://github.com/kdheepak/Crossterm.jl/actions/runs/8430336211/job/23086017914
I'm not quite sure what is going on here? How do I get the docs to build properly?
Bit of a guess, but what happens if you do
```@autodocs
Modules = [Crossterm, Crossterm.CursorStyle, Crossterm.ClearType]
```
?
Explicitly specifying it solves the problem.
https://github.com/kdheepak/Crossterm.jl/actions/runs/8431301904/job/23088490229
I'm happy to close this issue but I'm still not sure why this happens? Does Documenter not handle recursive modules?
Does Documenter not handle recursive modules
It does not. I think this was a design decision
Weirdly I'm not able to reproduce this locally:
Your're just running doctests. That doesn't try to build the whole manual, and therefore doesn't check for missing docstrings etc.
I think this was a design decision
It seems like a good default though, because you can always add submodules by hand in Modules
, but you can't remove them if they're included implicitly. But it could be nice to have some syntax here to "expand" recursively to all submodules. And we should probably also document this behavior explicitly -- I don't think we do right now.
I thought I ran the same command I was running on GitHub actions. I believe @enumx
creates a Module
, so it would be nice to recursively expand it.