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

Add meeting note from Feb 2024 #106

Merged
merged 11 commits into from
Feb 19, 2024
143 changes: 143 additions & 0 deletions docs/monthly-meeting/2024-02.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# Documentation Community Team Meeting (February 2024)

- **Date:** 2024-02-06
- **Time:** [20:00 UTC](https://arewemeetingyet.com/UTC/2024-02-06/20:00/Docs%20Meeting)
- **This HackMD:** https://hackmd.io/@encukou/pydocswg1
- [**Discourse thread**](https://discuss.python.org/t/44663) (for February)
- [**Meeting reports**](https://docs-community.readthedocs.io/en/latest/monthly-meeting/) (the latest one might be an [**unmerged PR**](https://github.com/python/docs-community/pulls))
- **Calendar event:** (send your e-mail to Mariatta for an invitation)
- **How to participate:**
- Go to [Google Meet](https://meet.google.com/dii-qrzf-wkw) and ask to be let in.
- To edit notes, click the “pencil” or “split view” button on the [HackMD document](https://hackmd.io/@encukou/pydocswg1). You need to log in (e.g. with a GitHub account).

By participating in this meeting, you are agreeing to abide by and uphold the [PSF Code of Conduct](https://www.python.org/psf/codeofconduct/).
Please take a second to read through it!


## Roll call

(Name / `@GitHubUsername` *[/ Discord, if different]*)
- Hugo van Kemenade / `@hugovk`
- Carol Willing / `@willingc`
- Ezio Melotti / `@ezio-melotti`
- Daniele Procida / `@danieleprocida`
- Ned Batchelder / `@nedbat`
- Marcus Sherman / `@betteridiot`
- Petr Viktorin / `@encukou`
- CAM Gerlach / `@CAM-Gerlach`
- Usman Akinyemi / `@Unique-Usman`

## Reports and celebrations

- [Hugo] 🎉 Since we started fixing the 8,212 Sphinx reference warnings, with 136 PRs + 220 backports we've fixed 56% of them in total (now at 3,574) and 61% of them in `Doc/`. The `.nitignore` initially listed 299 files with warnings; 67% have been fixed, with 100 remaining. 🧹📚 https://discuss.python.org/t/broken-references-in-sphinx-docs/19463/7

- [Hugo] Accessibility improvement. Underlining links in recent docs.

## Discussion

- [Ezio] Adding examples to the docs, and in particular:
1. **Should we add more examples in general?** Are they preferable to prose?
2. Quoting from [this comment](https://github.com/python/cpython/pull/111743#issuecomment-1908471823), especially the last part:
> [...] **Should we have some convention on where to put examples?**
>
> We don't want to end up in a situation where a page uses collapsible sections, another has [examples at the top](https://docs.python.org/3/library/json.html), another [at the bottom](https://docs.python.org/3/library/re.html#regular-expression-examples), another [in the middle](https://docs.python.org/3/library/string.html#format-examples), another [in a separate page](https://docs.python.org/3/howto/logging-cookbook.html), etc. If we agree on some conventions, it will also be easier for users to set their expectations and know where to look.

See also [the Discord thread](https://discord.com/channels/935215565872693329/1199481017464008734) and a [related issue](https://github.com/python/cpython/issues/106318#issuecomment-1906642662)

[Daniele] Examples work best as relief from dense abstract docs. They should be boring, and simple. You don't need to be exhaustive; the example is only a handhold.
[Ezio] Maybe we should have simple examples inline, and a section with longer examples at the bottom, with links pointing to it.
[Daniele] An example section sounds like the beginnings of how-to page.
[Ned] I like examples for clarifying the text in the reference sections. Interspersing examples into the reference would help, at least insome places.
Unique-Usman marked this conversation as resolved.
Show resolved Hide resolved
[CAM] Tutorials vs. how-tos - that depends on the purpose of the examples
[Ned] How do we turn this thinking into actionable items people can help with?
[Ezio] We should start adding examples.

[Ezio] We should also figure out what to do about collapsible sections.
[Ned] What problem are collapsible sections solving? Do we have too many examples that users will want to ignore? (In my docs I use tabs, but not colapsible sections)
Unique-Usman marked this conversation as resolved.
Show resolved Hide resolved
[Ezio] If we agree to add basic examples inline, but bigger examples on the bottom, we won't need collapsible sections.
[Carol] So: yes examples, yes inline. We can pause discussions about collapsible sections; if the examples get too long we should think about spinning them out into their own howto pages. **Consensus Recap**

Unique-Usman marked this conversation as resolved.
Show resolved Hide resolved
[Ezio] Would it make sense to do different things based on the builder, e.g. collapsible sections for HTML and something else for PDF?
[CAM] Yes. Some current directives for collapsible sections do that.

[Ned] re. pages being too long, we might switch to having a page for each function
[Carol] we could run a cron job to count lines
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This part seems a bit jumbled together (not sure if the conversation was, or if the discussion was transcribed out of order).

First of all it's missing some context, such as the problems that collapsible sections, such as that they don't work with different builders. I would put this near the top, since the whole discussion becomes moot if we don't use them.

Regarding page length (and specifically examples length, if counted with something smarter than a wc -l), the script could be used both for pages with not enough examples (so we should add more), and pages that have too many (they might be better moved to the "Examples" section or a separate page).

I would close with Carol's summary.

P.S. I'm not sure if @nedbat suggested having a page for each function, I think it was @hugovk to bring this up while talking about PHP docs, but I might be misremembering.


- [Hugo] Hosting docs on Read the Docs [python/docs-community#5 (comment)](https://github.com/python/docs-community/issues/5#issuecomment-1900698294) (Manuel Kaufmann, Ee, Julien were supportive)

[Hugo] To begin with we could only put HTML there. The only thing we'd need is to redo the version switcher. On RTD they have the fly-out switcher menu, maybe that could be re-styled; Manuel seemed keen to work on that.

- [Carol] Improving clarity around HOWTO docs: https://github.com/python/cpython/issues/114976

[CAM] Could you explain what the older-style howtos were?
[Carol] It goes back to Linux in the early days, when docs were scarce. Howtos were architecture discussions of how sonething was implemented, more like background on a topic -- explanations in Diátaxis terms
[Ned] Maybe the section could be called "longer writings"
[Daniele] I always call them *howto guides*: `HOWTO` sounds like an old-school passcode
[Carol] Could we use local ToC trees to split up the section?
[Hugo] We could fix that quickly if someone wants to make a PR
[Ezio] I think there was a discussion, will try to find it later. I was looking at the Unicode guide, which starts out as explanation but then turns into a howto guide, and sometimes it feels like a tutorial. There's an [issue about rewriting it](https://github.com/python/cpython/issues/107583), but I'm not sure how to do that
Unique-Usman marked this conversation as resolved.
Show resolved Hide resolved
[Carol] The Linux project created both alphabetical and chronological lists of “HOWTO”s. Eventually, we can orphan the current format of the landing page.
[Carol] One of the urgent tasks is to set the reader's expectations. We don't want them to expect a modern howto and then not get it.

- [Hugo] The detailed changelog is very long -- longer than Moby Dick. ([python/docs-community#98](https://github.com/python/docs-community/issues/98))
Unique-Usman marked this conversation as resolved.
Show resolved Hide resolved


## Follow-ups from previous meeting(s)

### January


- [Petr] Inclusive language

The `tkinter`, `pty`/`termios`, `sqlite3` (maybe more?) use `master/slave` terminology in API and docs. What's the best way to come up with, and switch to, better terms?

Is there an expert* I should talk to?

- [willingc] Thursday Bram has authored a Responsible Communications book which may have helpful guidelines. Other communities have used `leader/follower`. [Linux PR on the subject](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb)
- [Hugo] Some suggestions: https://www.ietf.org/archive/id/draft-knodel-terminology-14.html#name-master-slave (willingc: I like the suggestions in this document for different usages.)
- [CAM] Earlier BPO issue: [python/cpython#78786](https://github.com/python/cpython/issues/78786)

- To do
- Check and update the dev guide for new docs not to use terms and suggest alternatives
- Determine process for future changes of existing terminology
- Consider adding a statement to the documentation about existing code
- Petr will bounce ideas off Daniele :)


- Ryan tried introducing argument lists (like in [sqlite3](https://docs.python.org/3/library/sqlite3.html#sqlite3.connect)) to the collections module, didn't work too well as the functions take one or two args and they're pretty obvious. Petr recommended looking at `subprocess.Popen`.
- [willingc] Ryan, feel free to ping me when you have an example since I'm very familiar with the scientific python docs.
- Guido doesn't like forcing people to stick to a template
- Daniele mentions there are two kinds of users, one of which -- a forensic analyst -- could need very strictly formatted documentation
- [Guido] The bulleted list makes it less likely to fit everything on a screen. Vertical space is a precious resource.
- [Carol] Doc usage has changed thanks to intellisense, nowadays you get lists of arguments on hovering.
- [Carol] Areas where users ask for help most should get most attention
- [Ezio] There is some value in a consistent format for return values and exceptions; sometimes it's hard to find them currently. Arguments are usually explained well in the description.
- [Daniele] It doesn't need to be machine-readable. It should always be maximally human-comfortable.
- [Jim] It sounds like the framing of this discussion is, source text targetting a big module documentation page with docs for all that module's methods. There are other possible targets: docstrings, tooltips text. Are there other targets for doc source which we should consider in this discussion?
- [Ned] We write docs twice -- once for the docstrings and once in `rst`. That's more work, but it means we can have different strategies for each use case. [Guido] Changing that would involve several PEPs.
- [CAM] Sphinx has ways to generate docs for a whole module, or just a single function, from docstrings. But yes, starting to use that would need a PEP.
- [CAM] The strategy we took for `sqlite3` was to focus on the functions with most arguments, where the bulleted lists have most benefit, and leave the smaller functions for later, when we have more experience with the approach.
- [Carol] And we should keep in mind that our perspectives are not necessarily the users' perspective. If we do make major changes we should think about users and we should vet the changes.
- Ryan started contributing by trying to get the contract of [`collections.Counter.most_common`](https://docs.python.org/3/library/collections.html#collections.Counter.most_common), and not finding it in the docstring nor in the documentation.
- Carol: If you're coming from the scientific world, where the `?` in IPython gives you the docstring, that is often the first thing you look at.
- Ryan will take a look at only documenting return type and "raises" in a structured way, leaving parameters in the prose.
- Guido warns that `collections.Counter` is not that typical.

- If we have time, would like to hear from Daniele on the [thread he started on the structure of the Python docs](https://discuss.python.org/t/diataxis-and-python-documentation/41836) as to the takeways from that so far and next steps there.

- Discussion between Daniele and Ezio on the Python tutorial

- [Ezio] The docs for builtin functions doesn't have any examples. Idea: Add a separate page with 1-3 examples for each function.
- Carol always goes back to the users and what their pathways and needs are. The tutorial can't fit all users -- absolute beginners, people for whom Python is the first language, people coming from other languages. The current tutorial doesn't work for completely new users.
- [CAM] The current tutorial targets people who are already familiar with programming languages. Perhaps we should have separate tutorials for complete beginners and people coming from specific languages.
- [Daniele] One drawback of the current tutorial is lots of preamble saying why you want to learn Python. But the user is already here, wanting to learn Python. We should start directly with the examples. Also, we don't need to cover the edge cases right after people do something for the first time. Long explanations detract from the tutorial.
- [Ezio] It seems that for the tutorial, examples work better than prose, for both new and experienced users. Also, we could have cheatsheets for people coming from other languages.
- [Carol] There's a bigger pressing need for onboarding people from different groups, like people who don't know how to use the command line.
Unique-Usman marked this conversation as resolved.
Show resolved Hide resolved


## Next meeting

The docs team generally meets on the first Tuesday of every month around 20:00-ish UTC.

We have a recurring Google Calendar event for the meeting.
Let Mariatta know your email address and she can invite you.
1 change: 1 addition & 0 deletions docs/monthly-meeting/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@ Monthly reports in chronological order.
Nov 2023 <2023-11.md>
Dec 2023 <2023-12.md>
Jan 2024 <2024-01.md>
Feb 2024 <2024-02.md>
Loading