ContinuumIO / elm

Phase I & part of Phase II of NASA SBIR - Parallel Machine Learning on Satellite Data
http://ensemble-learning-models.readthedocs.io
43 stars 27 forks source link

Documentation structure overhaul #188

Open PeterDSteinberg opened 6 years ago

PeterDSteinberg commented 6 years ago

Order of operations:

PeterDSteinberg commented 6 years ago

cc @gbrener Ideas?

jbednar commented 6 years ago

Copy the scaffolding of the notebook testing / docs system of Holoviews - customize as necessary (can start this immediately)

Yes and no! Our scaffolding is amazing and also hellish. We have agreed on a plan to make it portable between projects, but we don't have time to start that plan yet until we can deliver on one of our client projects that has a milestone approaching. I agree that it's urgent to get this sort of stuff in place for elm (as it is for datashader), but is there any way this could be delayed by 1 month? If so we'll be able to clean it up, separate it into a useful system, and then start using it widely.

gpfreitas commented 6 years ago

@PeterDSteinberg I'll wait for your answer to @jbednar's question.

In the meantime, can someone explain at a high level the pros/cons of the way Bokeh does documentation (traditional Sphinx, from what I can see) vs the way that holoviews does?

PeterDSteinberg commented 6 years ago

Delaying for a month sounds good @jbednar @gpfreitas . I'll label this issue as deferred.

jbednar commented 6 years ago

In the meantime, can someone explain at a high level the pros/cons of the way Bokeh does documentation (traditional Sphinx, from what I can see) vs the way that holoviews does?

The HoloViews website is actually based on the Bokeh docs infrastructure, but it extends it to build the site nearly entirely from notebooks rather than from .rst, to automate various additional aspects of the gallery when building from notebooks, to add automatic cross-linking between notebooks (so that the notebooks link to .ipynb files but when deployed as a web site the links go to the deployed .htmls), and to allow automatic testing of notebook outputs.

The result is that writing and maintaining the website becomes nearly entirely a matter of writing notebooks and putting them into a certain directory structure, which is good because those same notebooks are then available to the users to re-run and compare their results, and then use them as starting points. Everything then stays up to date automatically as long as you maintain the notebooks, in principle (once we finish up some key sticky points).

We may be able to move the "month away" time forward; we have yet another project that needs a website, and so we are meeting on Monday to see if there's any way we can get this functionality published as a viable separate tool earlier.

PeterDSteinberg commented 6 years ago

@gpfreitas is working on documentation in xarray_filters

PeterDSteinberg commented 6 years ago

See notes on issue #185 regarding documentation needs related to Elm PR #192's changes for evolutionary search.

PeterDSteinberg commented 6 years ago

Docstrings are absent or insufficient in these places (and likely others):

PeterDSteinberg commented 6 years ago

cc @hsparra

PeterDSteinberg commented 6 years ago

See #206

PeterDSteinberg commented 6 years ago

See https://github.com/ContinuumIO/elm/issues/189

gbrener commented 6 years ago

@PeterDSteinberg are we still considering adopting the Holoviews style of sharing notebooks between examples, CI testing, and documentation? I looked into the Holoviews approach a bit, and found it to align with @jbednar's earlier comments - it seems a bit "rough around the edges", and not in a generally-applicable state yet. I did find a tool called "nbsphinx" which might get us closer to this goal, if you still think it's something worth pursuing.

jbednar commented 6 years ago

The CI testing stuff should improve very soon now; Chris Ball has just set up an nbval-based approach that looks like it should greatly simplify the amount of code and special configuration we have to maintain. (I.e., now that nbval is available, we can let them take the bulk of the hit for doing such testing, with our own special-purpose stuff being just a little extra effort). Thus having dual-purpose example/testing notebooks is a reasonable short-term goal.

That leaves sharing notebooks between examples and docs, i.e. triple-purpose notebooks. That stuff is definitely still rough in the holoviews approach, which won't be fixed in October. For datashader what I am doing is to write the notebooks assuming that it will eventually work smoothly, and that way the documentation will exist, it just won't easily be published to a web site. Then once the web publishing bit becomes more generalizable, it should transition relatively painlessly to use the new support. Unless someone on the elm project wants to help us make that happen sooner? :-)

PeterDSteinberg commented 6 years ago

Phased implementation of new conda pkg for doing this docs auto-gen and auto-test of notebooks:

PeterDSteinberg commented 6 years ago

Plan