Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation structure overhaul #188

Open
8 tasks
PeterDSteinberg opened this issue Aug 24, 2017 · 15 comments
Open
8 tasks

Documentation structure overhaul #188

PeterDSteinberg opened this issue Aug 24, 2017 · 15 comments
Assignees
Labels

Comments

@PeterDSteinberg
Copy link
Contributor

  • See how Holoviews uses notebooks that are tested automatically to fill out code and output examples in the documentation. Coordinate with @jbednar on the details of how that works. We have too many code snippets in Elm's docs to maintain currently. Aim to remove code snippets expressed in the ./docs folder (somehow get it automatically from notebook cells + add CI testing to those notebooks). May involve making new notebooks.
    • The outputs of cells should be tracked so you can do assertions
    • Get the documentation snippets tested somehow on each push / Travis test
  • We also need doctests in the source code - not enough there now (delay this work ~1.5 months)
  • We also have plan the messaging around earthio + xarray_filters as experimental repos and how to get help there or find help ...? Should help for all these be in one place (the current readthedocs)? Phased implementation towards 2 to 3 separate docs sites that link to each other?

Order of operations:

  • Copy the scaffolding of the notebook testing / docs system of Holoviews - customize as necessary (can start this immediately)
  • Content edits - regarding the interactions of repos (the docs are now all elm-based with little description about the point of Earthio / xarray_filters and not much help on those either). Approx date for this is: Sept 15, 2017
  • Content edits - regarding refactored usage: Oct 1, 2017 or earlier
@PeterDSteinberg
Copy link
Contributor Author

cc @gbrener Ideas?

@jbednar
Copy link
Collaborator

jbednar commented Aug 25, 2017

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
Copy link

@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
Copy link
Contributor Author

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

@jbednar
Copy link
Collaborator

jbednar commented Aug 28, 2017

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
Copy link
Contributor Author

@gpfreitas is working on documentation in xarray_filters

@PeterDSteinberg
Copy link
Contributor Author

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

@PeterDSteinberg
Copy link
Contributor Author

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

  • elm.pipeline.steps - See @gpfreitas 's work in xarray_filters for wrapping the docstring of an underlying wrapped function (xarray_filters.datasets) and do the same kind of thing for elm.pipeline.steps wrapping the docs of the sklearn estimator that is the ._cls attribute of an elm.pipeline.steps class like elm.pipeline.steps.linear_model.LinearRegression and including a note that the wrapping of that sklearn class is intended for use with xarray_filters.MLDataset / xarray.Dataset.

@PeterDSteinberg PeterDSteinberg assigned gbrener and unassigned gpfreitas Oct 11, 2017
@PeterDSteinberg
Copy link
Contributor Author

cc @hsparra

@PeterDSteinberg
Copy link
Contributor Author

See #206

@PeterDSteinberg
Copy link
Contributor Author

See #189

@gbrener
Copy link
Contributor

gbrener commented Oct 16, 2017

@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
Copy link
Collaborator

jbednar commented Oct 16, 2017

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
Copy link
Contributor Author

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

  • First - conda pkg just for the documentation auto-gen from notebooks (@gbrener working on this)
    • Install nbsphinx and make easy to use import nbsphinx - see nbsphinx in conf.py of holoviews/doc
    • Readme/ boilerplate on how to do the auto-gen package. What is the package called. Docs-builder?
  • Second - testing of the docs / notebooks automatically

@PeterDSteinberg
Copy link
Contributor Author

Plan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants