[ANN] Documenter 1.9 - public keyword support

I am happy to announce Documenter 1.9.0! As is often the case, there’s a bunch of changes in this release, and please see the release notes for full details. As always, thank you to everyone who contributed!

However, one particular change I want to draw attention to is that Documenter finally supports the public keyword (thanks to @gdalle; #2629), both when running the “document checks” for missing docstrings (you have to set checkdocs = :public), and also in @autodocs blocks, when using the Public = true option.

The latter change may be BREAKING your documentation build if (1) you’re building your docs on 1.11 or above, (2) are taking advantage of the public keyword in your package, and (3) are using @autodocs blocks to list public names. From the release notes:

This is potentially breaking as it can cause previously working builds to fail if they are being run in strict mode. Errors can happen if there are unexported symbols marked with public whose docstrings are being included manually with e.g. @docs blocks, and there is also an @autodocs block including docstrings for all public symbols. The solution is to remove the duplicate inclusion.

Given the importance of public, we did figure that it’s better to support it properly, and it’s worth the cost of this “minor breaking change”. I do believe that most documentation builds will be fine and won’t notice this. Apologies to anyone who does get hit by this though.

Happy documenting! :writing_hand:

20 Likes

Let the mayhem begin

1 Like

Is there any intention to introduce a distinction between “exported” and “public” (not exported) in the @autodocs as well?

This seems like a reasonable option to have if anyone wants to take up the implementation.