Repository navigation
Closed
Description
ReadTheDocs is awesome for hosting reference docs based on GitHub code. However, we've been bad about ensuring its set up and formatted consistently. Ideally, they would all be like this.
We should do a pass over all of the drivers to ensure that they do these things:
- Have a
docsfolder with the conf.py moved there. (change sys.path at top of conf.py from'.'to'..') (Adabot verified.) - Use an
docs/index.rstfile which includes the README.rst contents and has a table of contents. (Also remove API reference from old README.rst and update conf.py to point to itmaster_doc = 'index'.) (Adabot verified.) - Have an
examples.rstfile which includes all of the example code with titles and brief explanations of what they do. (Adabot verified.) - Have an updated
.travis.ymlwhich will build the docs using sphinx for every PR. Any warnings will cause the Travis run to fail. (Adabot verified.)- Add a new folder
docs/_staticto remove a static warning. - Automock any missing modules, such as
micropythonandbusio, inconf.py. - Correct any rST syntax errors.
- Exclude
.envandCODE_OF_CONDUCT.mdfrom docs inconf.py.exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '.env', 'CODE_OF_CONDUCT.md']
- Add
sphinx.ext.todoto extensions in conf.py and these settings.# If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = False # If this is True, todo emits a warning for each TODO entries. The default is False. todo_emit_warnings = True
- Add a new folder
- Add a blinka favicon at
docs/_static/favicon.icoand update conf.py to point to it.html_favicon = '_static/favicon.ico'
- Rename
readthedocs.ymlto.readthedocs.ymlso its hidden on some systems and listed near.travis.yml - Have Discord and Travis CI badges (Adabot verified.)
- All images in the README have alt text. This is useful for Adabot finding badges and for screen readers. (Adabot verified.)
I'll follow up with more info below.
If you change example files, please check the Learn guide to see if it's linked
- See the comment below for clarification. Thanks!
Reacted by Kattni and Carol Willing
Activity
willingc commentedon Feb 3, 2018
Once a month, maybe by scheduled cron job, run
make linkcheckon all the docs.willingc commentedon Feb 4, 2018
Just an FYI for future docs, you may want to check out sphinx-gallery for examples: https://sphinx-gallery.github.io/index.html
sommersoft commentedon Feb 21, 2018
Assigned myself, but anyone feel free to jump in. @ me if you start one so I can mark it, or if you get one completed and need it marked as complete.
So, I took step one and made a list of the current drivers in the bundle. Then, went through each one to see if any were already completed (knew it would be a short list).
At any rate, here's the task list:
DRIVERS
HELPERS
sommersoft commentedon Feb 22, 2018
README Badges: some have
Gittersome don't. Do we want all, some, or none to have it?tannewt commentedon Feb 22, 2018
@sommersoft I remove them in favor of the Discord badge when I come across them.
sommersoft commentedon Feb 25, 2018
Realized a small(?) problem. By getting image files in the repos to pass Sphinx builds (
.. image:: ../blah/blah.jpg), they no longer show up in GitHub.Here is what I have so far
CircuitPlayground: images were in
top/_static/. I moved them totop/docs/_staticand updatedREADMEwith the appropriate path. Images show in RTD build, but do not show in GitHub. My PR was merged, so RTD should reflect my changes.DS1307: image was in
top/. I originally left it there, and got Sphinx to eventually build using.. image:: ../image.jpg. Moved on to next lib to work, then it popped in my head to check. GitHub is no longer showing the image (PR isn't merged yet, so I can't check RTD). Not fully understanding the problem, I moved the image totop/docs/_staticand updatedREADME. That's when I went back to check CircuitPlayground to verify...DS3231: (updating original comment) Same as DS1307 above. Just to keep track of where the images are.
I don't remember any other libraries having images that I've done so far, but I'll check. (update: no others effected before CircuitPlayground)
Since we're using the
README.rstfor both GitHub and RTD, the only way I see having images in both places is to use a.rstand a.mdversion. Granted, my Sphinx knowledge is barely basic...sommersoft commentedon Feb 27, 2018
For clarity, is this what we need to check for on learn pages?
And again, I'm sorry for flooding email boxes! I had a fleeting thought that they might be connected, and even browsed a guide or two but didn't scroll all the way to the end (or the ones I looked at didn't have examples linked).
willingc commentedon Feb 27, 2018
Folks, I don't think that there is a need for two versions (rst and markdown). I'm trying to understand what is happening now and what you wish the desired behavior to be. Links to specific files would be helpful too. Thanks :-)
kattni commentedon Feb 27, 2018
If you change example files, please check the Learn guide to see if the code is linked
For example:
The guide has a link to .../libname/main.py (where "..." is https://www.github.com etc) and you changed it to .../libname/examples/sensorname_simpletest.py. If you go to the guide, and the URL to the example is .../libname/main.py, and you know you changed it, then you would include that information in your pull request.
See @sommersoft's comment above for a screenshot of what the file will look like when it's linked to GitHub.
It's ok if you miss it! Even if it's been fixed, we'll likely be getting the email notifying us of the change, so I'll have another opportunity to check it.
It is possible that you'll find examples not linked to GitHub, in which case they will not have a "View on GitHub" link. These will not be altered when you make changes to GitHub.
sommersoft commentedon Feb 27, 2018
@willingc , the issue is has to do with the file paths. I'll use the DS3231 repo as a reference.
Pre-update:
.. image:: 3013-01.jpgPost-update (not merged upstream yet):
.. image:: ../docs/_static/3013-01.jpg. (note: I moved it into the nested folder)The major difference is the inclusion of
..in the file path. If it is not included, Sphinx will not build, but it does show on GitHub. And vice versa if..is included in the file path.Here is the result using an image path of
/docs/_static/3013-01.jpg:Here is the link to the Travis build that fails (I just did this to verify): Travis
And here is the link to the GitHub README linked to that Travis failure: GitHub
I hope that helps explain what I'm seeing. Word salad is a talent of mine. 😄
tannewt commentedon Feb 27, 2018
The different file path is needed because we moved conf.py from the top directory to
docs/conf.py. The top-levelREADME.rstis now included byindex.rstwhich also has the table of contents because the conf.py can't reference it directly anymore. Its also nice because the table of contents doesn't render nicely on GitHub anyway.8 remaining items
sommersoft commentedon Mar 16, 2018
@tannewt CharLCD has been out of commission for some time... It appears that most, if not all, of the ones in the 'autodoc failed' section are older builds (1+ month). I will get a full list together shortly.
tannewt commentedon Mar 16, 2018
I checked and fixed all the build issues except APDS9960 which is failing due to a data descriptor getting passed a mock object I think.
sommersoft commentedon Mar 17, 2018
FeatherWing
example.pyfiles are nested in subdirectories. Should we figure out a way to have adabot check nested folders, or maybe just put a dummy/general .py in theexamples/folder?For the APDS9960, do you want me to remove the
conston theAPDS9960_ENABLEassignment? I just hope it doesn't waterfall for all of the others and we just keep chasing it down the line.I think these two should be good now after the new builds. I checked their RTDs, and all seems well. Just don't want to mark them complete since I didn't do anything with them..
kattni commentedon Mar 17, 2018
I noticed the FeatherWing issue. If we can update Adabot to check subfolders, that's great, but I think in the case of FeatherWing, it might still be a good idea to have a readme.py in that folder anyway since it's an unusual library. Something explaining that each folder contains examples to go along with the associated FeatherWing.
We'll need to test it if we remove
constbut I think we should. We need to make sure it gets tested and doesn't sit for ages, though. And, if it's something we have to chase, then we chase it. Once we've chased it to the end, it'll be over and we can do as we like moving forward. I'll defer to Scott on this one if he has a differing opinion.Thanks for the update!
tannewt commentedon Mar 19, 2018
We can updated Adabot to be ok with subfolders. I think a
README.mdwould be fine but I don't think a.pymakes sense.I'll take a quick look now at APDS9960 and see if I can get a better mock function in there. I think another library may have done it already.
tannewt commentedon Mar 19, 2018
Here is a fix for APDS9960: adafruit/Adafruit_CircuitPython_APDS9960#8
We can use the same technique to remove any MockObjects we see references in the auto-gened docs.
Great work everyone!
sommersoft commentedon Mar 19, 2018
I agree on both accounts. A
READMEwould be useful in the FeatherWing examples folder, but a.pymight get confusing. Would RTD render a.md(lazy/at work; haven't looked it up myself)? If not, we could setup a toctree for the examples with anexamples.rst, or sub-tree it in theindex.rst.tannewt commentedon Mar 19, 2018
willingc commentedon Mar 19, 2018
I believe @tannewt is correct. If you do not for some reason see it, double check that it is included in any toctree (local or master) and that recommonmark is installed.
tannewt commentedon Apr 5, 2018
Isn't this done?
sommersoft commentedon Apr 5, 2018
@tannewt I think the only thing left from the lists above, is taking care of the FeatherWing example "readme". Other than that, guess it depends on what adabot is still complaining about...
tannewt commentedon Apr 6, 2018
I don't think we'll get to zero, we'll just hover around it. Thanks for getting us close! I'll close this and we can do more Adabot driven stuff in new issues as needed.