Docs: split builtins to their own page from library - #156682
Conversation
37b2ad3 to
10c84e6
Compare
|
Also: is this NEWS-worthy? |
I don't see a need for one here, I think the docs speak for themselves. |
Documentation build overview
74 files changed ·
|
hugovk
left a comment
There was a problem hiding this comment.
Shall we name the new Doc/library/builtin-index.rst as Doc/builtins/index.rst instead?
Then instead of:
We get a neater:
This PR can still reference the builtin stuff in their current location, and a followup could move the relevant files and deal with redirects:
- Doc/library/functions.rst -> Doc/builtins/functions.rst
- Doc/library/stdtypes.rst -> Doc/builtins/stdtypes.rst
- Doc/library/constants.rst -> Doc/builtins/constants.rst
- Doc/library/exceptions.rst -> Doc/builtins/exceptions.rst
- Doc/library/threadsafety.rst -> Doc/builtins/threadsafety.rst
- Doc/library/time-complexity.rst -> Doc/builtins/time-complexity.rst
StanFromIreland
left a comment
There was a problem hiding this comment.
Also, you need to update the What Now? page in the tutorial.
I concur with Hugo, splitting this into a separate directory would be nicer. We can do redirects at client side (using one of the various Sphinx extensions) or sever side (by configuring them in python/psf-salt).
|
I can do the renames and redirects.
What Sphinx extension have we used for redirects before? I see https://github.com/python/psf-salt/blob/main/salt/docs/config/nginx.docs-redirects.conf for the psf-salt approach. |
We use |
I knew rediraffe was somewhere! Is there a reason we don't want to introduce it for the main docs? |
I presume it's simply because there hasn't really been a need so far. We're less keen to move pages here than in the Devguide. IIRC rediraffe requires JS, but that ship has sailed anyway. |
|
Server-side psf-salt redirects would be better than client-side sphinxext-rediraffe: they work with JavaScript disabled (better for all the scrapers and bots), are faster on server-side (HTTP layer before any HTML fetched), and get cached in the CDN, and better for SEO. We don't have such server-side control for the devguide, which is hosted on GitHub Pages. (Also I'd say client-side JS redirects are fine for the less-important devguide.) |
|
That all makes sense. Do we have a way to coordinate the updates to psf-salt with updates to the docs, especially with backports involved? |
|
(There's no documented process I'm afraid) You can open a PR there and limit the redirect to specific Python versions. I can review and merge when we land this. |
c6de373 to
ea9966e
Compare
|
Moving pages causes the "removed HTML IDs" check to fail. The IDs aren't gone, they are in a different page. Do I still add them to removed-ids.txt? |
Yes, see the line with an asyncio file for the required format. |
65aaf8b to
016ce6b
Compare
|
I think this is done. |
|
sorry, a habit from other repos. |
| learning about random subjects, you choose a random page | ||
| and read a section or two. Regardless of the order in which you | ||
| read the sections of this manual, it helps to first read | ||
| :ref:`built-in-funcs` in :ref:`builtins-index`, as the remainder of this section |
There was a problem hiding this comment.
Is the second link required, if the first one already brings the reader to the right page?
(This reads to me like «Read Section A in Chapter 1», which is needed in books but not hypertext)
|
|
||
| .. seealso:: | ||
|
|
||
| Let the show begin! |
There was a problem hiding this comment.
Wasn’t this was harmless and a bit of flair?
There was a problem hiding this comment.
The idea of starting a show was lost once all of the Availability sections were added. It's not clear to me at all that a reader at this point will be feeling like a show is starting. The sentence was a bit of flair, but isn't in the same tone as the rest of the section.
| browse the table of contents (in front of the manual), or look for a specific | ||
| function, module or term in the index (in the back). And finally, if you enjoy | ||
| learning about random subjects, you choose a random page number (see module | ||
| :mod:`random`) and read a section or two. Regardless of the order in which you |
There was a problem hiding this comment.
Why not keep the random module link as an example of a random page? (and/or maybe a hint about a way to make random decision!)
Not fully sure what the original intent was here, but as we are in Library Reference and not Tutorial I don’t think the link was bad. Can you say why you removed it?
There was a problem hiding this comment.
For two reasons: first, there are no page numbers the way most people read the docs (on the web). Second, for someone just becoming familiar with the stdlib, dropping them into the random module won't help them select a random page number.
| in to the Python interpreter; others are written in Python and imported in | ||
| The Python standard library consists of a collection of modules. There are | ||
| many ways to dissect this collection. Some modules are written in C and compiled | ||
| into the Python interpreter; others are written in Python and imported in |
There was a problem hiding this comment.
Should we say that some modules are written in C and compiled to importable modules, or is it confusing at this point?
There was a problem hiding this comment.
I see what you mean, there are two dimensions of description here, but only two of the combinations are described. "Compiled into the interpreter" is the less interesting aspect. I've changed it to:
Most modules are written in Python,
but some are written in C. All can be imported into your program to add
functionality.
StanFromIreland
left a comment
There was a problem hiding this comment.
Overall looks good to me, although this will break quite a lot of translations, so please post an announcement in the Translations category of Discourse so that translators can recover them.
| - If parsing fails completely (no rule succeeds in parsing all the input text), the | ||
| PEG parser doesn't have a concept of "where the | ||
| [`SyntaxError`](https://docs.python.org/3/library/exceptions.html#SyntaxError) is". | ||
| [`SyntaxError`](https://docs.python.org/3/builtins/exceptions.html#SyntaxError) is". |
There was a problem hiding this comment.
Noting this (and similar */3/builtins/* links) will be 404 until the backports are done.
There was a problem hiding this comment.
Would it be better to leave the old URLs and let the redirects handle it?
There was a problem hiding this comment.
Since these are InternalDocs, I think that it's fine for them to be slightly broken for a day or two, and it saves us updating them in the future..
| semantics of the Python language, and :ref:`builtins-index` describes | ||
| the built-ins, this library reference manual |
There was a problem hiding this comment.
With this addition of built-ins, it makes sense to rewrite this paragraph. I think it would be preferable to order the paragraph more directly:
- State that "This library reference manual describes the standard library that is ...distributions."
- Simplify the "While..." clause to state directly that the reference index and builtins index.
| language. It is terse, but attempts to be exact and complete. The semantics of | ||
| non-essential built-in object types and of the built-in functions and modules | ||
| are described in :ref:`library-index`. For an informal introduction to the | ||
| built-in object types and of the built-in functions and modules |
There was a problem hiding this comment.
Maybe "standard library modules"
There was a problem hiding this comment.
I've rewritten and split these paragraphs, though tbh, we're repeating ourselves by having each section also mention what the other sections are.
We've talked about separating the built-ins from the stdlib modules, since "dict" (for example) isn't part of the stdlib.
I think I took care of all the places the pages are referenced, but the non-HTML builds are new to me, so I might have missed something.
I tried to make the intro paragraphs and pages useful, and avoided over-editing them.