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 #7387

Open
jasongrout opened this issue Oct 17, 2019 · 9 comments
Open

Documentation structure #7387

jasongrout opened this issue Oct 17, 2019 · 9 comments

Comments

@jasongrout
Copy link
Contributor

I think this article has some really good points about documentation structure, and the differences between tutorials, how-tos, reference, and explanations: https://www.divio.com/blog/documentation/

Here is an example of it in practice: https://brachiograph.readthedocs.io/en/latest/#contents

@trallard
Copy link
Contributor

trallard commented Sep 14, 2022

I was planning to do some work for #13049 - including adding documentation on how to use Gitpod for JupyterLab development.
Though, I struggled to find the right place to add this section within the current documentation structure. And eventually landed in this issue.

Observations

  • Some sections are now a mixture of user guides/how-to's and reference guides (the most notable one is the Contributing section)
  • Some subsections are pretty large and mix several (loosely related) content pieces, which can make it quite tricky for folks to find the information they need
  • I have looked at all the sections and subsections, and overall it is possible to restructure to a diataxis (-like, meaning it will not be perfectly aligned to the framework i.e. the docs do not have tutorials, well only one actually) structure
  • note: I am proposing only a restructuring here not a whole rewrite (the latter would be a bit of a nightmare and an absolute whole lot of work)
  • I spent a good amount of time looking at how other projects have adopted the diataxis framework to get inspiration and a sense of how to break sections and content (e.g. NumPy, Gastby. Django among others)
  • I tried my best to categorise and restructure the sections and sub-sections, this might not be perfect as is, but we can tweak stuff

So without further ado, here is my proposal

  1. Navbar (based on the latest version that uses the PyData Sphinx theme sections Get Started, User Guide, Contributing, Developing extensions maybe Need help??
  2. Bulk of the documentation structure:

I am only proposing two new sections here:

  1. The Gitpod docs (marked with 📝)
  2. A TLD;R contribution workflow (marked with 📝)

The rest of the content is all present in the current documentation.
Overall I think this proposed structure will make the docs easier to navigate and thus improve their usability.
Also, it would help contributors like me that end up all confused when trying to add new content and cannot find an evident place to do so.

And lastly, I can help with the restructuring if needed, as I do think it would be a massive improvement for users, developers, and contributors.

@krassowski
Copy link
Member

including adding documentation on how to use Gitpod for JupyterLab development

There is already is a section on Contributing from within the browser which mentions Gitpod. It also mentions jupyterlab-playground which may enable hot-swapping some jupyterlab plugins from browser once Lab 4 lands with Lumino 2 (thanks to jupyterlab/lumino#377) too.

I am not sure if we want to hide extensions development so deep as you are proposing (User guide → Reference guides → JupyterLab extensions development); currently they are a top-level item:
Screenshot from 2022-09-14 17-22-56

I would advocate for keeping them separate as it crucial for JupyterLab to have robust extension community and make it easy for everyone to find this section ;)

On a general note, I would agree that the current https://jupyterlab.readthedocs.io/en/latest/developer/contributing.html has grown substantially and I see why you propose to split a summary out of it; I am not against, but personally I like having the ability to use ctrl + f to find items on a single pager rather than look though multiple pages. I guess there is merit in not overwhelming potential contributor too.

I would say that the "extras" like changelog and troubleshooting would be better placed at least one level higher (because when users are angry that something broke or something changed in a new release they want to find these sections quick or will get angrier).

One thing that I love in numpy's (and pandas) docs is this welcome screen:

Screenshot from 2022-09-14 17-31-49

@trallard
Copy link
Contributor

trallard commented Sep 14, 2022

There is already is a section on Contributing from within the browser which mentions Gitpod. It also mentions jupyterlab-playground which may enable hot-swapping some jupyterlab plugins from browser once Lab 4 lands with Lumino 2 (thanks to jupyterlab/lumino#377) too.

yes, I did not count that as a complete sub-section since it is a bullet points list - and I am not sure folks can get up to speed with the content there. But could we turn that into a more extensive section on "alternative/lower friction" setups?

I am not sure if we want to hide extensions development so deep as you are proposing (User guide → Reference guides → JupyterLab extensions development); currently, they are a top-level item:

This is something I was not sure of - it feels a bit o, dd in either place, tbh. I agree that it is not 💯 Lab, but it is crucial for the ecosystem. As I said - this proposal might not be perfect, and some of you have more context on why some things are the way they are.

Another option is to keep the structure as is (Extensions dev into References) and keep the link in the navbar to ensure visibility/findability. WDYT?

I would say that the "extras" like changelog and troubleshooting would be better placed at least one level higher (because when users are angry that something broke or something changed in a new release they want to find these sections quick or will get angrier).

Do you mean at the same level as User guides? It could work - we could add a "Need help?" or similarly aimed section in the navbar.

One thing that I love in numpy's (and pandas) docs is this welcome screen:

I do like this too, and the Gastby one - we should add something like that. I left this out of the original suggestion as it is a significant "new" item and would depend on the outcome of this issue to get right.

@afshin
Copy link
Member

afshin commented Sep 23, 2022

@krassowski:

I like having the ability to use ctrl + f to find items on a single pager rather than look though multiple pages

One convention I've seen to address this while maintaining the structure is to add a link for a single-page version e.g., for downloading, CTRL-F, etc.

@krassowski
Copy link
Member

Another option is to keep the structure as is (Extensions dev into References) and keep the link in the navbar to ensure visibility/findability. WDYT?

I think it would work ok.

I would say that the "extras" like changelog and troubleshooting would be better placed at least one level higher (because when users are angry that something broke or something changed in a new release they want to find these sections quick or will get angrier).

Do you mean at the same level as User guides? It could work - we could add a "Need help?" or similarly aimed section in the navbar.

Yes, that what I was suggesting. I would not personally search for changelog in "Need help?" but maybe it's a me thing. Looking at other projects, almost all I checked have "Release notes" section in the top level (pandas, numpy, matplotlib, scipy); sklearn does not (they have it under "more" which does not fully count).

@trallard
Copy link
Contributor

Adding the changelog to the navbar helps.

@afshin @jasongrout I'd really like to help with this reorg. Would it make sense to pop by a JupyterLab community meeting and share/discuss this to move forward?

@jasongrout
Copy link
Contributor Author

Would it make sense to pop by a JupyterLab community meeting and share/discuss this to move forward?

Yes, that would get a lot of eyes on it. Thanks!

@jtpio
Copy link
Member

jtpio commented Oct 10, 2022

Would it make sense to pop by a JupyterLab community meeting and share/discuss this to move forward?

Even a draft PR to get this started would be great, thanks!

@jtpio jtpio added this to the 4.0.0 milestone Oct 10, 2022
@trallard
Copy link
Contributor

Sounds good - I have had scheduling conflicts the past couple of weeks so have been unable to make it to the JLab calls

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

No branches or pull requests

6 participants