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

gh-101100: Only show GitHub check annotations on changed doc paragraphs #108065

Merged

Conversation

CAM-Gerlach
Copy link
Member

@CAM-Gerlach CAM-Gerlach commented Aug 16, 2023

PR #102513 implemented support for displaying Sphinx warnings on changed files inline in the GitHub UI, which can be a useful aid to authors that they've fixed any defects on the lines they've touched and not introduced new ones.

However, annotations are shown on an entire file, regardless of whether the line the warning was issued on was within or even near those actually modified by the PR. While this has helped motivate large-scale cleanup of many of these warnings, as I commented when this was first deployed it has naturally led to a serious amount of noise, annoyance and confusion for PR authors seeing warnings on lines they had nothing to do with, which in turn leads to the understandable temptation for authors to ignore valid warnings or just silencing them, hiding rather than fixing the underlying defect.

The solution is, naturally, to only show warnings on modified lines, which is somewhat complicated by the fact that warning lines are only necessarily accurate at the paragraph level, requiring some additional processing. After much delay and burnout, I've finally gotten around to implementing it myself with this PR.

As a bonus, the script now works equally as well locally as remotely; just pass the commits/branches/tags to compare with --check-and-annotate-changes <base> <branch>, or use the default (comparing the changes on the current HEAD with the merge base in the local main). Handy!


📚 Documentation preview 📚: https://cpython-previews--108065.org.readthedocs.build/

@CAM-Gerlach CAM-Gerlach added docs Documentation in the Doc dir skip news labels Aug 16, 2023
@CAM-Gerlach CAM-Gerlach self-assigned this Aug 16, 2023
@CAM-Gerlach CAM-Gerlach force-pushed the only-nitpicky-warn-on-changed-paras branch 4 times, most recently from 7bf133e to d4f66b9 Compare August 16, 2023 23:39
Copy link
Member

@AA-Turner AA-Turner left a comment

Choose a reason for hiding this comment

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

Thank you for this work! Some initial comments:

.github/workflows/reusable-docs.yml Outdated Show resolved Hide resolved
Doc/library/datetime.rst Outdated Show resolved Hide resolved
Doc/tools/check-warnings.py Show resolved Hide resolved
Doc/tools/check-warnings.py Show resolved Hide resolved
Doc/tools/check-warnings.py Show resolved Hide resolved
Doc/tools/check-warnings.py Show resolved Hide resolved
Doc/tools/check-warnings.py Show resolved Hide resolved
Doc/tools/check-warnings.py Outdated Show resolved Hide resolved
Doc/tools/check-warnings.py Outdated Show resolved Hide resolved
@CAM-Gerlach CAM-Gerlach force-pushed the only-nitpicky-warn-on-changed-paras branch from 37f8a2e to b6c794f Compare August 17, 2023 01:32
@CAM-Gerlach CAM-Gerlach force-pushed the only-nitpicky-warn-on-changed-paras branch from b6c794f to 67a6dce Compare August 17, 2023 02:37
@CAM-Gerlach CAM-Gerlach marked this pull request as ready for review August 17, 2023 03:20
@CAM-Gerlach CAM-Gerlach requested a review from AA-Turner August 17, 2023 03:20
Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

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

Thank you very much for this!

A few initial comments.

Doc/tools/check-warnings.py Outdated Show resolved Hide resolved
Doc/tools/check-warnings.py Outdated Show resolved Hide resolved
Doc/tools/check-warnings.py Outdated Show resolved Hide resolved
Doc/tools/check-warnings.py Outdated Show resolved Hide resolved
Doc/tools/check-warnings.py Outdated Show resolved Hide resolved
@CAM-Gerlach
Copy link
Member Author

(Just to note, I made another commit to continue to test that the annotations appear (and don't appear) as expected on added files, and on added, fixed and modified warnings in modified files. It deliberately fails the new-warnings check, and I also marked it DO-NOT-MERGE just to be safe; once this is approved and otherwise ready to merge, I'll drop that commit and then queue it for automerge.)

Copy link
Member

@AA-Turner AA-Turner left a comment

Choose a reason for hiding this comment

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

Some further comments:

Doc/tools/check-warnings.py Show resolved Hide resolved
Doc/tools/check-warnings.py Show resolved Hide resolved
Doc/tools/check-warnings.py Show resolved Hide resolved
Doc/tools/check-warnings.py Show resolved Hide resolved
@CAM-Gerlach CAM-Gerlach force-pushed the only-nitpicky-warn-on-changed-paras branch 2 times, most recently from cae535a to 7a6eef9 Compare August 18, 2023 03:52
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
@CAM-Gerlach CAM-Gerlach force-pushed the only-nitpicky-warn-on-changed-paras branch from 6c98380 to b006d01 Compare August 18, 2023 05:12
@CAM-Gerlach
Copy link
Member Author

Since the final changes were just to a comment and a __future__ import, I've dropped the various test commits to confirm various common and edge cases, so this should be ready to merge pending any final comments/suggestions (which hopefully aren't substantial or I'll have to temporarily add them back, heh).

Copy link
Member

@AA-Turner AA-Turner left a comment

Choose a reason for hiding this comment

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

Thanks again for all the work on this!

A

Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

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

Thanks! Do we need to backport this?

@CAM-Gerlach
Copy link
Member Author

Do we need to backport this?

I was actually just about to comment on this now as I remembered that I'd forgotten to do so yesterday. The same problems this fixes (warning spam, as well as line numbers being off, etc) will be present in the Files Changed views on the 3.12 branch, where the script is present (its not on 3.11).

We will need to backport PR #106460 first though as it makes comprehensive changes to these same files; its backport was deferred to after the reusable docs changes were merged, which they now are, so it seems we should be able to just go ahead with that backport first, and then this should backport cleanly.

(In case you didn't see it, I posted this reply after the relevant comment chain had already been resolved, which you might find interesting)

@CAM-Gerlach
Copy link
Member Author

I had to manually backport #106460 due to some merge conflicts in the .nitignore, but it should be good to merge as soon as Thomas gets the chance to review it, and then we can merge and backport this (hopefully cleanly).

@CAM-Gerlach
Copy link
Member Author

Alrighty, looks like that backport got in, so I guess we're gogo on this one at last!

@CAM-Gerlach CAM-Gerlach merged commit eb953d6 into python:main Aug 19, 2023
@miss-islington
Copy link
Contributor

Thanks @CAM-Gerlach for the PR 🌮🎉.. I'm working now to backport this PR to: 3.12.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Aug 19, 2023
…ragraphs (pythonGH-108065)

* Only show GitHub check annotations on changed doc paragraphs
* Improve check-warnings script arg parsing following Hugo's suggestions
* Factor filtering warnings by modified diffs into helper function
* Build docs on unmerged branch so warning lines match & avoid deep clone

---------

(cherry picked from commit eb953d6)

Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
@bedevere-bot
Copy link

GH-108127 is a backport of this pull request to the 3.12 branch.

@bedevere-bot bedevere-bot removed the needs backport to 3.12 bug and security fixes label Aug 19, 2023
Yhg1s pushed a commit that referenced this pull request Aug 19, 2023
…aragraphs (GH-108065) (#108127)

gh-101100: Only show GitHub check annotations on changed doc paragraphs (GH-108065)

* Only show GitHub check annotations on changed doc paragraphs
* Improve check-warnings script arg parsing following Hugo's suggestions
* Factor filtering warnings by modified diffs into helper function
* Build docs on unmerged branch so warning lines match & avoid deep clone

---------

(cherry picked from commit eb953d6)

Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Documentation in the Doc dir skip news
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants