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

Deprecate suspicious.py? #86404

Open
JulienPalard opened this issue Nov 1, 2020 · 56 comments
Open

Deprecate suspicious.py? #86404

JulienPalard opened this issue Nov 1, 2020 · 56 comments
Assignees
Labels
docs

Comments

@JulienPalard
Copy link
Member

@JulienPalard JulienPalard commented Nov 1, 2020

BPO 42238
Nosy @birkenfeld, @rhettinger, @ned-deily, @ambv, @willingc, @JulienPalard, @pablogsal, @erlend-aasland, @AlexWaygood
PRs
  • #23313
  • #23802
  • #26575
  • #26966
  • #27238
  • #27945
  • #28137
  • #28827
  • #29636
  • #29652
  • #30879
  • #30981
  • #31097
  • #31977
  • #32070
  • #32292
  • #32329
  • 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/JulienPalard'
    closed_at = None
    created_at = <Date 2020-11-01.23:49:23.937>
    labels = ['docs']
    title = 'Deprecate suspicious.py?'
    updated_at = <Date 2022-04-06.11:53:50.624>
    user = 'https://github.com/JulienPalard'

    bugs.python.org fields:

    activity = <Date 2022-04-06.11:53:50.624>
    actor = 'mdk'
    assignee = 'mdk'
    closed = False
    closed_date = None
    closer = None
    components = ['Documentation']
    creation = <Date 2020-11-01.23:49:23.937>
    creator = 'mdk'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 42238
    keywords = ['patch']
    message_count = 56.0
    messages = ['380167', '380169', '380171', '381075', '381802', '382219', '383149', '383171', '383292', '390898', '390904', '391163', '391164', '391177', '391182', '391185', '391209', '391212', '392165', '392177', '395311', '396567', '396568', '396774', '396891', '397792', '397802', '400259', '400324', '401123', '403523', '404067', '406575', '406604', '406654', '406810', '406978', '408724', '411565', '411571', '411636', '411642', '411983', '412135', '412136', '412355', '412377', '412382', '412403', '412980', '414984', '415860', '416639', '416643', '416759', '416861']
    nosy_count = 9.0
    nosy_names = ['georg.brandl', 'rhettinger', 'ned.deily', 'lukasz.langa', 'willingc', 'mdk', 'pablogsal', 'erlendaasland', 'AlexWaygood']
    pr_nums = ['23313', '23802', '26575', '26966', '27238', '27945', '28137', '28827', '29636', '29652', '30879', '30981', '31097', '31977', '32070', '32292', '32329']
    priority = 'normal'
    resolution = None
    stage = 'patch review'
    status = 'open'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue42238'
    versions = []

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Nov 1, 2020

    I was not here 21 years ago when it was introduced [1], but according to the commit message it was introduced to find leftover Latex mardown.

    It tries to find 4 patterns in Sphinx node text (not in raw rst files):

    ::(?=[^=])| # two :: (but NOT ::=)

    This one has ~100 false positive in susp-ignored.csv (pypi classifiers, slices, ipv6, ...)

    :[a-zA-Z][a-zA-Z0-9]+| # :foo

    This one has ~300 false positive in susp-ignored.csv (slices, C:\, ipv6, ...)

    | # (seldom used by itself)

    This one has ~20 false positive in susp-ignored.csv (mostly reStructuredText in code-blocks)

    (?<!\.)\.\.[ \t]*\w+: # .. foo: (but NOT ... else:)

    This one does not have false positives.

    The script, on my laptop (with a core i9), is slow (4mn20s), and it's probably way slower on the CI.

    I tried to search for suspicious is:pr in:comments on github to see if it's usefull:

    Case where it actually helped:

    • Finding an error: (gh-12562 .. literalinclude: instead of .. literalinclude::)
    • Finding refs in code block (gh-7413)
    • Writing plaintext in Misc/NEWS (gh-1339)

    I'd go for enhancing rstlint.py (which is fast, ~1s on my laptop) a bit to try to handle the `.. literalinclude:` missing a `:` errors, and dropping suspicious.

    So I'd appreciate feedback on this script, did it helped you recently?

    1: 700cf28

    @JulienPalard JulienPalard self-assigned this Nov 1, 2020
    @JulienPalard JulienPalard added the docs label Nov 1, 2020
    @rhettinger
    Copy link
    Contributor

    @rhettinger rhettinger commented Nov 2, 2020

    I would love to see this disappear. For me, it has been a recurring time waster.

    @ned-deily
    Copy link
    Member

    @ned-deily ned-deily commented Nov 2, 2020

    If it still does useful checks, we could just limit it to running by release managers during the release manufacturing process; it is already run then. It would still allow for problems to be caught and fixed by the RM prior to release tagging. But I don't have a strong opinion about its overall usefulness. I recall it catching at least one problem in a release I was involved with and that was probably before we had the CI checks.

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Nov 16, 2020

    Good idea Ned!

    So proposed plan:

    • Drop it from docs build and the CI to avoid time loss.
    • Add it as a step of PEP-101, for a few release, for good measures
    • I'll check it from time to time between releases, just to ensure it does not accumulate tons of things to do on the the release day.

    If during a few release, we notice this tool is no loger usefull we'll be able to drop it.

    If we spot some errors that can be migrated to the rstlint.py we'll do.

    If this tool is in fact usefull, we'll have to think about it again.

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Nov 25, 2020

    New changeset c9c6e9f by Julien Palard in branch 'master':
    bpo-42238: Doc: Remove make suspicious from the CI and docs builds. (GH-23313)
    c9c6e9f

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Dec 1, 2020

    I'll try to track this closely, the drop of make suspicious has been merged in master, but not backported yet, one week ago.

    Up to today, no commit has introduced suspicious warnings (0 false positive, 0 false negative).

    I think I'll soon backport the PR, if no one objects, because the current situation is a bit risky: some PR could get merged to master but fail the tests during the backport.

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Dec 16, 2020

    Today I spotted one error that suspicious could have spotted:

    -both ``Callable``s no longer validate their ``argtypes``, in 
    +both ``Callable``\ s no longer validate their ``argtypes``, in 
    

    I'm fixing it in #23800

    make suspicious found it as:

    [whatsnew/changelog:23] "`" found in "Callable``s no longer validate their ``argtypes"
    

    So I'll doodle around this to see if tools/rstlint.py or Sphinx itself can see the error.

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Dec 16, 2020

    I created #23802 with a port of the "wrong backtick detector" (at least, one aspect from it) from suspicious to rstlint.

    I dropped the suspicious check three weeks ago, and found a single committed issue since then, which was fixable (and is fixed) in rstlint, so I'll continue this experience and see where it goes.

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Dec 18, 2020

    New changeset b973542 by Julien Palard in branch 'master':
    bpo-42238: Check Misc/NEWS.d/next/ for reStructuredText issues. (GH-23802)
    b973542

    @vstinner
    Copy link
    Member

    @vstinner vstinner commented Apr 12, 2021

    Pablo reenabled the check:

    commit 20ac347 (upstream/master, master)
    Author: Pablo Galindo <Pablogsal@gmail.com>
    Date: Mon Apr 12 20:53:15 2021 +0100

    Fix Sphinx errors in the documentation and re-activate the suspicious check (GH-25368)
    
    The suspicious check is still executed as part of the release process and release managers have been
    lately fixing some actual errors that the suspicious target can find. For this reason, reactivate the suspicious
    until we decide what to do in a coordinated fashion.
    

    @pablogsal
    Copy link
    Member

    @pablogsal pablogsal commented Apr 12, 2021

    Background on why I reactivated it:

    I every single alpha release I had to fix actual documentation errors (no false positives) like the one fixed here:

    20ac347

    I don't like the check, but the release management team don't like to have to restart the release process just fo fix a bunch of docs issues that should have been detected by the CI.

    If we remove the fix, we need to coordinate all together because currently the status quo is that the RM team now is responsable of fixing the documentation errors as there are several release tools (and other ones) that depend on this target passing.

    @rhettinger
    Copy link
    Contributor

    @rhettinger rhettinger commented Apr 16, 2021

    If reactivated, the tool needs to be substantially improved. It is NOT smart. The false positives for slicing and logging examples are unnecessarily annoying. It creates a barrier for people submitting documentation patches. Each of the 367 entries in the susp-ignored file represents wasted time for contributors.

    Also the CSV format is arcane, hard-to-read, and hard-to-edit. It looks like it was quickly thrown together by someone who didn't care about usability. Perhaps there should be a simpler tools that says, "take this current failure and mark it as a false positive" without trying to be over specific.

    Mandatory checks with a high false positive rate are an anti-pattern for CI systems. Already we've had one case of a contributor (me) who abandoned a doc patch rather than fight this tooling.

    @pablogsal
    Copy link
    Member

    @pablogsal pablogsal commented Apr 16, 2021

    I agree with all you said, but I am against forcing the release management team to absorb the responsibility of fixing all the errors that the CI didn't catch, real or not. Releasing is already a multi-hour process and having many docs errors and formating mistakes to fix is a toll that should be paid at release time.

    @vstinner
    Copy link
    Member

    @vstinner vstinner commented Apr 16, 2021

    Pablo: "I every single alpha release I had to fix actual documentation errors (no false positives)"

    I don't get it. Do you mean that the Python release process is blocked by typos in the documentation? Why did you catch them in the release process, and not in the regular Python development workflow?

    Can't we get the same errors in the regular workflow?

    I understand that the release process requires no warning from "make suspicious", but as explained in other comments, this tool is not reliable. While it catchs some real bugs, the cost of false positives is too high.

    Doc/tools/susp-ignored.csv contains 368 lines, IMO it's a sign that this tool either requires a serious reworking, or must be disabled/removed.

    Doc/tools/extensions/suspicious.py is a CPython specific extension, it's not part of Sphinx. Maybe someone should open a feature request on Sphinx to get a similar feature without false positives (or at least less false positives).

    @pablogsal
    Copy link
    Member

    @pablogsal pablogsal commented Apr 16, 2021

    Why did you catch them in the release process, and not in the regular Python development workflow?

    Because our release tools run suspicious.py and it fails and then we need to manually inspect every single failure and fix it as almost all times there are real positives among them

    Can't we get the same errors in the regular workflow?

    That's what I did reactivating suspicious.py

    I understand that the release process requires no warning from "make suspicious", but as explained in other comments, this tool is not reliable. While it catchs some real bugs, the cost of false positives is too high

    Sure, we all agree here. Where it seems that we don't agree is how to proceed. I would be super happy to remove the tool if is agreed everywhere, including with the rest of release managers.

    @vstinner
    Copy link
    Member

    @vstinner vstinner commented Apr 16, 2021

    Julien Palard is working actively on the Python documentation. He is the one who removed suspicious "from the CI and docs builds". I trust his judgment here. I suggest to remove it again from there *and* from the release scripts.

    @vstinner
    Copy link
    Member

    @vstinner vstinner commented Apr 16, 2021

    I wrote a PR to enhance -W option documentation. The suspicious job complains whereas my Sphinx format is valid:

    The full form of argument is::

       action:message:category:module:lineno
    

    Example of suspicious error:

    [using/cmdline:438] ":message" found in "action:message:category:module:lineno"

    I see that Doc/tools/suspicious.csv already contains an ignore rule for Doc/using/cmdline.rst.

    @vstinner
    Copy link
    Member

    @vstinner vstinner commented Apr 16, 2021

    Doc/tools/extensions/suspicious.py is a CPython specific extension, it's not part of Sphinx. Maybe someone should open a feature request on Sphinx to get a similar feature without false positives (or at least less false positives).

    This extension was written by Gabriel Genellina in 2009 when he discovered that:

    Several documents contain invalid reST markup that "leaks"
    into the html output (missing ``, incorrect indentation, etc.)

    Extension added in bpo-4811 with:

    commit 700cf28
    Author: Georg Brandl <georg@python.org>
    Date: Sun Jan 4 10:23:49 2009 +0000

    Add "suspicious" builder which finds leftover markup in the HTML files.
    
    Patch by Gabriel Genellina.
    

    The code didn't evolved much since it was added in 2009. Main changes.

    commit 144c269
    Author: Ezio Melotti <ezio.melotti@gmail.com>
    Date: Thu Mar 28 18:01:11 2013 +0200

    Update the suspicious builder to detect unused rules, and remove currently unusued rules.
    

    bpo-22537:

    commit 14b5a4d
    Author: Georg Brandl <georg@python.org>
    Date: Thu Oct 2 08:26:26 2014 +0200

    Closes bpo-22537: Make sphinx extensions compatible with Python 2 or 3, like in the 3.x branches
    

    Filename renamed:

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Apr 28, 2021

    I should have monitored this more closely, I started monitoring it weekly, then life got over until today when I'm even surprised to see activity on the issue, sry!

    (Surprise leading me to investigate why I had not received notifications from bpo, leading me to a bug in my sieve filter...)

    I counted, during your releases make suspicious spotted:

    if I missed none, the success ratio is not good (which is already known).

    What I'm aiming to do in this issue is to list the true positives over time, by passing the tool manually from time to time, to try to see what kind of rule is usefull in such a tool, and ultimately try to spot those errors in a reliable way.

    I'd go for removing it from both release process and the CI, this would lower pressure on RMs and contributors, while easing the study of the tool in this issue.

    I even consider removing it from the Makefile / tools hierarchy to ensure nobody runs it, because if someone run it locally during its contribution process it may hide true positives from me (leading me to think there's no true positives and the tool is useless).

    @vstinner
    Copy link
    Member

    @vstinner vstinner commented Apr 28, 2021

    At least, I would suggest to remove it from the release process.

    If some people working on the documentation want to keep the tool, maybe it can be an optional CI job? IMO the problem is that currently, it's part of a single "Documentation" job. I don't recall if it's mandatory or not. Also, we need maybe more explanation in the CI job result how to mark false positives.

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Jun 8, 2021

    New changeset 227a093 by Julien Palard in branch 'main':
    bpo-42238: Doc CI: Disable suspicious checks. (GH-26575)
    227a093

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Jun 27, 2021

    Spotted a true positive in b19f455:

    :const:``None``
    

    (I'm trying to build a true positive list, to have usefull cases where suspicious is usefull, so in the long term I can maybe implement those cases in rslint instead.)

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Jun 27, 2021

    The previous one could probably be implemented in rstlint using (an equivalent of):

    git grep ':[a-z]\+:``[^:` ]+``' Doc/
    

    Maybe specialized to known roles, like the script specializes to known directives.

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Jun 30, 2021

    Another true positive:

    ... versionchanged:: 3.11
    

    from : 6cb145d / #26820

    I also think it can be implemented in rstlint.

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Jul 3, 2021

    New changeset 01331f1 by Julien Palard in branch 'main':
    bpo-42238: rstlint: Add two new checks. (GH-26966)
    01331f1

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Jul 19, 2021

    Another one \o/

    Fix in: #27238

    It is:

    :func:pdb.main
    

    Detected by make suspicious as:

    WARNING: [whatsnew/changelog:320] ":func" found in ": Refactor argument processing in :func:pdb.main to simplify"
    WARNING: [whatsnew/changelog:320] ":pdb" found in ": Refactor argument processing in :func:pdb.main to simplify"
    

    I added a test in the same PR to spot this one in rstlint.

    @ambv
    Copy link
    Contributor

    @ambv ambv commented Jul 19, 2021

    New changeset fbf1008 by Julien Palard in branch 'main':
    bpo-42238: Fix small rst issue in NEWS.d/. (bpo-27238)
    fbf1008

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Aug 25, 2021

    10 false positives today, see: https://github.com/python/cpython/pull/27945/files

    I think I now need to put a deadline on this issue, let's say: one year without true positives and I drop it, so 2021-07-19 for now.

    (In the meantime, I continue to convert each true positives to rstlint, I converted 3 of them so far.)

    @willingc
    Copy link
    Sponsor Contributor

    @willingc willingc commented Nov 22, 2021

    New changeset 0242094 by Julien Palard in branch 'main':
    bpo-42238: [doc] Announce the future removal of make suspicous. (GH-29652)
    0242094

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Nov 25, 2021

    A new false positive in b48ac6f:

    +++ b/Misc/NEWS.d/next/Tests/2021-11-23-12-36-21.bpo-45878.eOs_Mp.rst
    @@ -0,0 +1,2 @@
    +Test ``[Lib/ctypes/test/test_functions.py](https://github.com/python/cpython/blob/main/Lib/ctypes/test/test_functions.py)::test_mro`` now uses
    +``self.assertRaises`` instead of ``try/except``.
    

    It's been only one month since the last true positive, so I'll still watching this closely...

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Dec 16, 2021

    Another true positive for make suspicious:

    WARNING: [c-api/apiabiversion:70] ":macro" found in "the same format as the c:macro:"
    

    I'm working on implementing it on rstlint, in the meantime I opened:

    => #30149

    to fix this occurrence. This show that the current version of rstlint catches two mores \o/

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Jan 25, 2022

    I slowly started to work on rstlint in its own tree because working in a single file felt inconfortable.

    The more I advanced in this direction the more it made sense to me:

    • I first added tests, I may have been able to do so in the cpython tree though.
    • It would ease the publication of it to pypi.org so it can be used by other projects.
    • It may ease contributions (some non-core-devs could be given rights to the repo, which make sense as it's not really Python related but more Sphinx related).

    It currently looks like this: https://github.com/JulienPalard/sphinxlint but should obviously be moved to github.com/python/ if we adopt this direction.

    So what do you think? (cc Georg as the main author of the script)

    If so I'd also like to rename the thing, it's currently named rstlint, but it's more a sphinxlint as Sphinx has adds a lot to rst and existing rst linters does not handle Sphinx well.

    @birkenfeld
    Copy link
    Member

    @birkenfeld birkenfeld commented Jan 25, 2022

    I was not here 21 years ago when it was introduced

    You gave me a small shock, but I checked and it was only 11/12 years ago :D

    I'm fine with moving this out of tree; please coordinate with the Sphinx maintainers whether it should be an "official" extension or completely separate.

    @vstinner
    Copy link
    Member

    @vstinner vstinner commented Jan 25, 2022

    IMO moving this small script into the separated project https://github.com/JulienPalard/sphinxlint will help people who are not core developers to contribute and it makes the tool usable by projects outside CPython. So yeah, it's a good thing!

    Also, it's more convenient to add tests, put it on PyPI, etc.

    @vstinner
    Copy link
    Member

    @vstinner vstinner commented Jan 25, 2022

    It currently looks like this: https://github.com/JulienPalard/sphinxlint but should obviously be moved to github.com/python/ if we adopt this direction.

    If you want to move the project under the https://github.com/psf/ organization, the PSF has some rules to move a project in the Python organization. For example, contributors must respect the PSF Code of Conduct and the GitHub project must have at least 3 administrators. I forgot when I read these rule exactly. See for example https://github.com/psf/pyperf/

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Jan 28, 2022

    New changeset 44afdbd by Julien Palard in branch 'main':
    bpo-42238: [doc] Avoid hardcoding fast-moving lines in susp-ignored.csv. (GH-30981)
    44afdbd

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Jan 30, 2022

    You gave me a small shock, but I checked and it was only 11/12 years ago :D

    HAha! Either I misstyped 12 as 21, either I'm bad at math, sorry for the shock ;)

    I'm fine with moving this out of tree; please coordinate with the Sphinx maintainers whether it should be an "official" extension or completely separate.

    They propose [1] to have it in sphinx-contrib ("A collection of Sphinx extensions maintained by their respective authors. It is not an official part of Sphinx."), what do you think?

    [1] sphinx-doc/sphinx#10143 (comment)

    @birkenfeld
    Copy link
    Member

    @birkenfeld birkenfeld commented Jan 30, 2022

    Sure!

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Feb 2, 2022

    OK, we have: https://github.com/sphinx-contrib/sphinx-lint

    Ping me if you want rights :)

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Feb 2, 2022

    Georg, I was able to move forward:

    Does everything looks good to you?

    Next step would be to remove rstlint.py from Docs/tools and add a dependency to rstlint from the Makefile (for make check), so the CI uses sphinx-lint.

    @birkenfeld
    Copy link
    Member

    @birkenfeld birkenfeld commented Feb 2, 2022

    Looks good. I should have rights automatically for everything in that org.

    @vstinner
    Copy link
    Member

    @vstinner vstinner commented Feb 2, 2022

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Feb 10, 2022

    New changeset b878b3a by Julien Palard in branch 'main':
    bpo-42238: [doc] moving from rstlint.py to sphinx-lint. (GH-31097)
    b878b3a

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Mar 12, 2022

    News:

    Hitting 3 months without a true positive from make suspicious, looks like sphinxlint starting to take over properly, I hope to close this issue soon (like in a few months maybe).

    Also sphinxlint attracted some contributors [1] \o/

    [1] https://github.com/sphinx-contrib/sphinx-lint

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Mar 23, 2022

    New changeset ec8906f by Julien Palard in branch 'main':
    bpo-42238: [doc] Some lines moved in rst, but had hardcoded lineno in susp-ignored.csv. (GH-32070)
    ec8906f

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Apr 3, 2022

    One true positive and one false positive this week, see:

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Apr 3, 2022

    New changeset bdc4974 by Julien Palard in branch 'main':
    bpo-42238: [doc]: make suspicious: false positive. (GH-32292)
    bdc4974

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Apr 5, 2022

    New changeset d0e696e by Julien Palard in branch 'main':
    bpo-42238: [doc]: A make sucpicious false positive. (GH-32329)
    d0e696e

    @JulienPalard
    Copy link
    Member Author

    @JulienPalard JulienPalard commented Apr 6, 2022

    One true positive today: #32355

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    JulienPalard added a commit to JulienPalard/cpython that referenced this issue Jun 11, 2022
    miss-islington pushed a commit to miss-islington/cpython that referenced this issue Jun 11, 2022
    (cherry picked from commit bc3b31e)
    
    Co-authored-by: Julien Palard <julien@palard.fr>
    miss-islington pushed a commit to miss-islington/cpython that referenced this issue Jun 11, 2022
    (cherry picked from commit bc3b31ea776ecb7088c8c2acd121499be8e8638b)
    
    Co-authored-by: Julien Palard <julien@palard.fr>
    miss-islington added a commit that referenced this issue Jun 11, 2022
    (cherry picked from commit bc3b31e)
    
    Co-authored-by: Julien Palard <julien@palard.fr>
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    docs
    Projects
    None yet
    Development

    No branches or pull requests

    8 participants