Acme Design is a full service design agency.
JuliaCon 2023
Saransh Chopra
Clever documentation will push away beginners and newcomers
The documentation and examples in FluxML were convoluted with complex looking simple code which resulted in problems like this -
While starting out with FluxML, I faced the exact same issues as well
Hence, it is critical to ensure that the examples are not unnecessarily complicated
There are no "perfect" docstrings
I do write bad code, but my simple documentation PRs were getting more change requests than my bad code PRs
Patience is the key! Incorporate best bits from everyone's "perfect" docstring!
Doctests make documentation much more maintainable in the longer run
Great, another testing suite that developers can collectively hate
These missing or outdated examples were pushing beginners away
A lot of examples and docstrings were indeed outdated, and all of them were caught by doctests
Now the examples will ideally never go stale ;)
Unless someone turns off the doctests :(
Broken cross-references and links are a big let down for everyone
Hate these pages? So do your package's users!
FluxML had a huge number of broken links and cross-references, because, they were not checked anywhere
USE LINK CHECKERS! USE DOCUMENTER'S INBUILT FEATURES TO AVOID SUCH PAGES!
Scattered docs make it really hard to navigate to the right content, driving away beginners from your package
The tutorials and guides were scattered across the website, docs, and model-zoo.
The API docs were mixed with the guides
documentation.divio.com
Utility infrastructure for documentation will make your life smooth and investing your time in developing it is worth it
Welp, another failing CI badge, but this time for documentation
Need to review a documentation PR? Well, you better run the branch locally to check if the docs are rendering correctly
A new bug reported with no MWE? I think I might have to comment and remind the author to write an MWE
Nice, a new PR with 50 changed files, but wait, there's no description
Splitting up your package?
Set up documentation previews on PRs. Set up a bot to comment preview links on command. Write custom workflows for Franklin.jl previews. Worth the time! Cue: Flux.jl + fluxml.github.io
Set up issue and PR templates. Worth the time! Cue: FluxML
Split the workflows and documentation infrastructure too! Cue: NNlib.jl
Revamping an outdated package?
Migrate to the latest documentation tools! Cue: Metalhead.jl