-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
[DOC]: usage docs content guidelines #26389
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
base: main
Are you sure you want to change the base?
Conversation
367f8bd
to
08c78ba
Compare
can I do this task |
@pukarlamichhane |
08c78ba
to
00cd0c2
Compare
Thanks for the review @timhoffm! One of the things I've been considering is pulling all the content guidelines into their own document. Not sure if it makes sense here or in a follow up, but for starters:
And also I know we've gotta have a discussion on all this b/c I don't think there's consensus on whether we should even have guidelines. I honestly feel like organizing the docs is a complete waste of time without content guidelines because guidelines are how we enforce organization, but also that it's even worse if we have content guidelines that we don't enforce. |
00cd0c2
to
da3c610
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With regards to audience, on the whole I largely agree. However, I disagree that beginners should be able to random access the user guide and necessarily understand any given subsection without having understood some basic concepts first. Similarly, within a section, it should definitely begin straight forwardly and with strong motivation, but in further subsections we should be able to assume the reader has read the introductory material. If every section is written assuming nothing else has been read, then the user guide will be infinitely long and unbearable to read for people who have actually read some of the intro material.
doc/devel/document.rst
Outdated
The material is introduced in small, usually one change or task at a time, chunks to | ||
keep focus on the specific line of code enabling the given task. The aim is that by | ||
reducing cognitive load, it will be easier for users to learn what each specific object | ||
does and how it behaves. The goal is that gaining a conceptual understanding of | ||
Matplotlib's API will make it easier for a user to navigate the rest of the | ||
documentation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is largely impractical if you are using galleries. You can introduce some info in comments, but if you actually want a plot with an orange line to show up, you need it all to be in one block.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but if you actually want a plot with an orange line to show up, you need it all to be in one block.
So I don't think you always need the plot with an orange line to show up, and also sphinx gallery has ways to hide some code. I agree that it's a balancing act -> one approach that I didn't do here but works well is break out the code and then show it all put together at the bottom.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again, not a fan. I think it's better to show the code, and its resultant plot, see the orange line, and then scan the code for the obvious place where the line was made orange. People learn by repetition, and seeing the same code over and over and picking out the differences is better in my opinion than disambiguated code snippets in the middle of text.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
People learn by repetition, and seeing the same code over and over and picking out the differences is better in my opinion than disambiguated code snippets in the middle of text.
I'm not proposing disambiguated code snippets, I'm proposing that we explain a concept, show the specific code that achieves that goal, then give them the big example where they can find the code that we've just told them about because we just primed them.
I'm not saying teach by example is bad, just that we have that everywhere else in the docs and we could serve the users who don't learn that way in this one part of the docs. Frankly while you think learn by example is better, the only way I learn by example is by shredding the examples and basically reconstructing them as if I was teaching it to someone else - which, not to beat a dead horse, is what many of our users are doing in blog posts and other material that they generate.
What have I written here that implies that this is what I'm advocating for? |
These two phrases in particular could have more nuance:
What knowledge we assume, or what we need to chunk varies by where we are in the docs. |
da3c610
to
3093437
Compare
Can you elaborate on this? |
f472399
to
631ed11
Compare
A lot of chunking or explanation for the initial parts of topics makes some sense. However as we get deeper into a topic, the need for explanation and chunking should drop away as we assume more knowledge. As a trivial example, we shouldn't have to explain what |
Yeah, I went back in and added a bit about scaffolding, b/c that's what scaffolding is.
Yeah, agree...what gave you the impression I was proposing this? |
I think this page may be a good summation of what I'm trying to get at https://cambridge-community.org.uk/professional-development/gswkey/index.html where in Matplotlib the key concept is the |
631ed11
to
a69b4ae
Compare
e36416f
to
27b9bfb
Compare
Reworked and pulled out into standalone page. Also following changes:
|
55dd7cf
to
ec95f75
Compare
@story645 I have read the majority of this now (but not all details of the User guide section). Here's my feedback:
To move forward, I propose to split this up and in a first step cut off after the summary (probably simplest to 1:1 copy that part to a new PR and start discussing there). The detailed descriptions of the individual sections can be handled later. |
So this PR started as just the user guide section, and what I found was I had to fold back the other information to contextualize the proposal for the user guide - basically I don't see how to propose a holistic approach to the docs w/o being holistic. Also don't see how to do a summary w/o the what is it summarizing. ETA: also I have been consistently revising/updating the user guide proposal based on the feedback to this PR. The current proposal accommodates the existing documentation with relatively little reframing of a few documents (which would be necessary of any restructuring proposal) while also proposing a structure that communicates to the reader both audience and purpose. But, I do hear you on the overwhelming so I propose spinning out each section into its own page and turning the summary page into the landing page for this section. And I'll see what I can slim down in each subpage. Also pulled the tutorials changes out to #27769
Frankly, I don't see this happening if it doesn't go in w/ this PR and w/o details this guide isn't very actionable or useable to new contributors. |
ec95f75
to
65fc7e2
Compare
65fc7e2
to
53b13f3
Compare
c8a70e3
to
30afe22
Compare
Co-authored-by: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> Co-authored-by: Eva Sibinga <46283995+esibinga@users.noreply.github.com> Co-authored-by: melissawm <melissawm@gmail.com> Co-authored-by: Eric Firing <efiring@hawaii.edu> Co-authored-by: Thomas A Caswell <tcaswell@gmail.com> Co-authored-by: Jody Klymak <jklymak@gmail.com>
30afe22
to
ed86a39
Compare
Ok, this ended up being slightly absurd and likely to encourage scope creep on each individual page (demo) so instead wrote tldr summary for user guide and linked out to the detailed page. (and streamlined tutorial) |
581d66c
to
cac4133
Compare
Per #26366, I am wary about a lot more work being put into revising the content of the user guide before we settle on what we think that content should read like. I'm drafting some ideas here because I'd like us to adopt some sorta guidelines and also b/c I'd like discussion before I or anyone else puts the investment into getting our guide into this kinda form. The approach I describe here is inline with the approach we use in some tutorials, like colormap tutorial and annotation tutorial.
The reasons why I think we need content guidelines:
tldr proposal: #26389 (comment)
ETA: Pulling in from arguments elsewhere, style is not a matter of taste in this context because the disagreement we're having is on codifying which teaching methodologies to use in our most explanatory/educational set of docs. Generally on the code side we ask that contributors follow best practice & that is considered a non-controversial review practice. In the case of instructional documentation, there is also best practice on how to present new material to a novice audience. This PR is advocating for the adoption of some of these best practices as part of our content guidelines. Most of the PLOS 10 quick tips for teaching programming are transferable to teaching how to use a library.
ETA2: The Software Carpentry instructor training on managing memory and cognitive load discusses why the approach more or less described here is best practice, and we have very very high overlap w/ their audience, especially for introductory material.