Skip to content

Documentation is too personalized #62480

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

Open
serhiy-storchaka opened this issue Jun 22, 2013 · 15 comments
Open

Documentation is too personalized #62480

serhiy-storchaka opened this issue Jun 22, 2013 · 15 comments
Assignees
Labels
3.10 only security fixes 3.11 only security fixes 3.12 only security fixes docs Documentation in the Doc dir easy

Comments

@serhiy-storchaka
Copy link
Member

serhiy-storchaka commented Jun 22, 2013

BPO 18280
Nosy @gvanrossum, @freddrake, @terryjreedy, @pitrou, @ezio-melotti, @merwok, @JimJJewett, @serhiy-storchaka, @aixtools, @csabella
PRs
  • bpo-18280: Make documentation less personal. #21639
  • Files
  • Imemy.grep
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = 'https://github.com/freddrake'
    closed_at = None
    created_at = <Date 2013-06-22.08:28:34.438>
    labels = ['easy', '3.7', 'docs']
    title = 'Documentation is too personalized'
    updated_at = <Date 2020-09-19.19:02:04.510>
    user = 'https://github.com/serhiy-storchaka'

    bugs.python.org fields:

    activity = <Date 2020-09-19.19:02:04.510>
    actor = 'georg.brandl'
    assignee = 'fdrake'
    closed = False
    closed_date = None
    closer = None
    components = ['Documentation']
    creation = <Date 2013-06-22.08:28:34.438>
    creator = 'serhiy.storchaka'
    dependencies = []
    files = ['30665']
    hgrepos = []
    issue_num = 18280
    keywords = ['patch', 'easy']
    message_count = 13.0
    messages = ['191636', '191637', '191685', '192008', '192036', '295141', '295164', '315557', '374279', '374326', '374330', '374363', '374443']
    nosy_count = 11.0
    nosy_names = ['gvanrossum', 'fdrake', 'terry.reedy', 'pitrou', 'ezio.melotti', 'eric.araujo', 'docs@python', 'Jim.Jewett', 'serhiy.storchaka', 'Michael.Felt', 'cheryl.sabella']
    pr_nums = ['21639']
    priority = 'normal'
    resolution = None
    stage = 'patch review'
    status = 'open'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue18280'
    versions = ['Python 3.7']

    Linked PRs

    @serhiy-storchaka
    Copy link
    Member Author

    Some documentation files contain a number of I/my/me. Looks like they grew from personal modules and personal articles. Perhaps the official documentation needs more depersonalized style. Here is full list of such files:

    Doc/c-api/exceptions.rst
    Doc/c-api/long.rst
    Doc/distutils/builtdist.rst
    Doc/extending/extending.rst
    Doc/extending/windows.rst
    Doc/howto/argparse.rst
    Doc/howto/curses.rst
    Doc/howto/functional.rst
    Doc/howto/regex.rst
    Doc/howto/sockets.rst
    Doc/howto/urllib2.rst
    Doc/install/index.rst
    Doc/library/audioop.rst
    Doc/library/ctypes.rst
    Doc/library/doctest.rst
    Doc/library/heapq.rst
    Doc/library/numbers.rst
    Doc/library/ossaudiodev.rst
    Doc/library/tk.rst
    Doc/library/unittest.mock-examples.rst
    Doc/library/unittest.mock.rst
    Doc/reference/introduction.rst
    Doc/tutorial/classes.rst

    The list doesn't include FAQs where it may be appropriate and whatsnew files.

    Andrew Kuchling recently has fixed Doc/howto/unicode.rst for this issue (as part of bpo-4153).

    @serhiy-storchaka serhiy-storchaka added the docs Documentation in the Doc dir label Jun 22, 2013
    @serhiy-storchaka
    Copy link
    Member Author

    Here is a filtered results of

    find * -name '*.rst' -exec egrep -n -w -B1 -A1 'I|me|my' '{}' +

    @akuchling
    Copy link
    Contributor

    I've looked through the matches. "I/O" and the -I command-line switch are false positives. Many references in the FAQ ("How do I do X?"), but those don't need to be fixed.

    I think personalized references are most problematic when they're expressing uncertainty ("I don't know if we implement all of the spec") or opinions. Sentences like "When I run this command under Linux, I see..." could be rewritten as "When *you* run this command...", but they don't seem worth fixing to me.

    Files with personalized text are:

    c-api/exceptions.rst
    c-api/long.rst
    distutils/builtdist.rst
    extending/extending.rst
    install/index.rst
    library/audioop.rst
    library/ctypes.rst
    library/doctest.rst
    library/heapq.rst
    library/imaplib.rst
    library/numbers.rst
    library/ossaudiodev.rst
    library/unittest.mock-examples.rst
    library/unittest.mock.rst
    reference/introduction.rst
    tutorial/classes.rst

    @terryjreedy
    Copy link
    Member

    I find some anonymous I references (Guido? 20 years ago?) off-putting when reading the doc as formal reference.

    @pitrou
    Copy link
    Member

    pitrou commented Jun 29, 2013

    The sockets tutorial deserves a good overhaul :-)

    @csabella
    Copy link
    Contributor

    csabella commented Jun 4, 2017

    Would it be OK for me to tackle this?

    @rhettinger
    Copy link
    Contributor

    Fred, do you want to opine on this?

    In some cases, like heapq.py, the personal touch is an essential and beautiful part of the presentation and is a cherished part of Python. In other cases, it seems unnecessary or a little off-putting, so perhaps a few changes are warranted.

    Personally, I've grown to really dislike the incessant stream of proposals to make broad sweeping trivial changes across the code or documentation to fix made-up problems (ones not reported or cared about by actual users). In particular, I worry about sending some new dev on a mission to rewrite documentation that was written by domain experts (Alex Martelli reported that copy-editors "wreaked havoc" on one of his books just prior to publication by subtly changing the meaning or correctness of his prose while applying grammar rules and minor style edits -- I wish to avoid the same for us).

    Also, I place high value on text written by Guido and think we lose something every time someone wants to rewrite it to fit their personal tastes and views of the language. The tastes and views of module authors are more important are easily lost in style edits (especially those that change point of view, mood, or theme of presentation).

    Another thought is that there should be different general rules for different sections. The standard library docs tend to be more formal. The language reference tends to be even more formal ("for language lawyers"). The tutorial tends to be personable. The how-to guides are often have a personal touch and are the only places where we attribute authorship back individuals (actual by-lines at the top of the file).

    [Cheryl Sabella]

    Would it be OK for me to tackle this?
    You could, but I would really like to get you involved in more substantive work that involves thinking about real issues and real code. IMO, this project isn't worthy of you time and is not on the critical path to your stated goals. That said, feel free to volunteer for anything that interests you.

    @rhettinger rhettinger added the 3.7 (EOL) end of life label Jun 5, 2017
    @rhettinger rhettinger assigned freddrake and unassigned docspython Jun 5, 2017
    @mcepl
    Copy link
    Mannequin

    mcepl mannequin commented Apr 21, 2018

    What about WONTFIX here? I completely agree with rhettinger: this is a waste of time with potential for causing damage.

    @gvanrossum
    Copy link
    Member

    Marking this as "easy". People are welcome to submit PRs that fix the wording in one or a small number of modules called out in Serhiy's list.

    @aixtools
    Copy link
    Contributor

    I am taking a look at these, and I am sure there is a PEP I am unaware of - atm - so, a quick question.

    Is the double space at the end of a sentence 'required' by the rst processing, or is this also a 'personal' writing style in some of the documents (i.e., is replacing them with a single ' ', or otherwise, a new line ('\n') an error.

    iirc - new paragraphs are indicated by two new-lines.

    @serhiy-storchaka
    Copy link
    Member Author

    I think they are not required, but recommended.

    From https://www.python.org/dev/peps/pep-0008/#comments:

    You should use two spaces after a sentence-ending period in multi- sentence comments, except after the final sentence.

    From https://www.python.org/dev/peps/pep-0012/#general:

    You must adhere to the Emacs convention of adding two spaces at the end of every sentence.

    AFAIK in English typography the space after a sentence-ending period is longer than spaces between words. In other European typographies they have the same width.

    @aixtools
    Copy link
    Contributor

    Thanks. afaik, double spacing is a 'feature' a programmer added to a
    text processing language - of the WYSIWUG kind, because program's such
    as troff/nroff
    didn't need them. They, rather it, understood that a period followed by
    a space indicated the end of a sentence.

    On 26/07/2020 18:39, Serhiy Storchaka wrote:

    Serhiy Storchaka <storchaka+cpython@gmail.com> added the comment:

    I think they are not required, but recommended.

    >From https://www.python.org/dev/peps/pep-0008/#comments:

    You should use two spaces after a sentence-ending period in multi- sentence comments, except after the final sentence.

    >From https://www.python.org/dev/peps/pep-0012/#general:

    You must adhere to the Emacs convention of adding two spaces at the end of every sentence.

    AFAIK in English typography the space after a sentence-ending period is longer than spaces between words. In other European typographies they have the same width.

    I thought it was where type setters, classically, used the break between
    the endings of a sentence - additional 'kerning' could be applied there.

    Anyway - final question: does .rst reformat line-lingths, or does it
    present everything literally - only adding embellishments. I have
    been thinking
    it does both - and, yet another convention for sentence endings is to
    always start a sentence on a new line (and two new-lines indicate
    start of a paragraph.

    However, for now - double-spaces will remain - and I hope to remember to
    add my own :)

    ----------


    Python tracker <report@bugs.python.org>
    <https://bugs.python.org/issue18280\>


    @jimjjewett
    Copy link
    Mannequin

    jimjjewett mannequin commented Jul 27, 2020

    I won't speak of nroff or troff in particular, but many programs had trouble distinguishing the end of a sentence from an honorific abbreviation, such as Mr. Spock or Dr. Seuss.

    @erlend-aasland
    Copy link
    Contributor

    @serhiy-storchaka, is this something you want to pursue, or should we close this as outdated?

    @serhiy-storchaka
    Copy link
    Member Author

    I think there are some things left:

    Doc/extending/extending.rst-887-(Sometimes, reference counting is also referred to as a garbage collection
    Doc/extending/extending.rst:888:strategy, hence my use of "automatic" to distinguish the two.)  The big
    Doc/extending/extending.rst-889-advantage of automatic garbage collection is that the user doesn't need to call
    --
    Doc/library/doctest.rst-1810-will pay back the time it takes to collect them many times over as the years go
    Doc/library/doctest.rst:1811:by and things change.  I'm still amazed at how often one of my :mod:`doctest`
    Doc/library/doctest.rst-1812-examples stops working after a "harmless" change.
    --
    Doc/library/imaplib.rst-352-
    Doc/library/imaplib.rst:353:   Show my ACLs for a mailbox (i.e. the rights that I have on mailbox).
    Doc/library/imaplib.rst-354-
    --
    Doc/library/heapq.rst-281-heap.  So, a heap is a good structure for implementing schedulers (this is what
    Doc/library/heapq.rst:282:I used for my MIDI sequencer :-).
    Doc/library/heapq.rst-283-
    --
    Doc/library/heapq.rst-318-   participate at "progressing" the merge).  Some tapes were even able to read
    Doc/library/heapq.rst:319:   backwards, and this was also used to avoid the rewinding time. Believe me, real
    Doc/library/heapq.rst-320-   good tape sorts were quite spectacular to watch! From all times, sorting has
    --
    Doc/library/unittest.mock-examples.rst-843-mock methods for doing the assertion. Again a helper function sets this up for
    Doc/library/unittest.mock-examples.rst:844:me. ::
    Doc/library/unittest.mock-examples.rst-845-
    

    It does not include examples with "I", because they have many false positives, but you can search them yourself using command:

    find * -name '*.rst' -exec egrep --color -n -w -B1 -A1 'I|me|my' '{}' +

    @erlend-aasland erlend-aasland added 3.11 only security fixes 3.10 only security fixes 3.12 only security fixes and removed 3.7 (EOL) end of life labels Feb 1, 2023
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    3.10 only security fixes 3.11 only security fixes 3.12 only security fixes docs Documentation in the Doc dir easy
    Projects
    None yet
    Development

    No branches or pull requests

    10 participants