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-109408: Add the docs whitespace check from patchcheck to pre-commit #109854

Merged
merged 12 commits into from
Oct 10, 2023

Conversation

hugovk
Copy link
Member

@hugovk hugovk commented Sep 25, 2023

Moves one of the patchcheck checks to pre-commit.

1.

patchcheck's normalize_docs_whitespace runs on files where fn.startswith('Doc') and fn.endswith(('.rst', '.inc')

pre-commit's trailing-whitespace is already running on c, python and rst in the whole codebase.

So this widens the check to cover inc files in the whole codebase, not just in Doc. I think this is a good thing.

2.

patchcheck substitutes matches of re.compile(br'\s+(\r?\n)$') with br'\1. That is, it strips multiple trailing \r and \n characters.

pre-commit's trailing-whitespace trims all trailing whitespace by default (docs). This also widens the check, I think this is a good thing.

3.

Remove docs_modified(doc_files) from patchcheck, it merely printed out whether any docs files were modified. I don't think it's useful now patcheck does no docs checking, and I'd like to eventually remove patchcheck.

4.

Some people might be still running make patchcheck? If so, to maintain some kind of parity, I've added steps to install and run pre-commit as part of the Makefile command.

We're doing a similar thing in the PEPs repo:

https://github.com/python/peps/blob/a159a9ac58ca73dc1da0b626b6df77807af455d0/Makefile#L62-L77

(And Pillow: https://github.com/python-pillow/Pillow/blob/main/Makefile)

Does this seem useful, or better to leave it out?

5.

Finally, some cleanup of patchcheck.py: whitespace, f-strings, consistent pluralised outputs, fix typo.

Co-authored-by: Alex Waygood <[email protected]>
Copy link
Member

@AlexWaygood AlexWaygood left a comment

Choose a reason for hiding this comment

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

LGTM (though I can't review the Makefile changes :)

Makefile.pre.in Outdated
Comment on lines 2775 to 2776
@$(RUNSHARED) ./$(BUILDPYTHON) -m pre_commit --version >/dev/null 2>&1 || $(RUNSHARED) ./$(BUILDPYTHON) -m pip install pre-commit >/dev/null 2>&1
$(RUNSHARED) ./$(BUILDPYTHON) -m pre_commit run --all-files
Copy link
Member

Choose a reason for hiding this comment

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

I don't think make patchcheck should run pre commit, especially if the goal is to remove it. Hence I'd say this is a docs point to communicate.

Suggested change
@$(RUNSHARED) ./$(BUILDPYTHON) -m pre_commit --version >/dev/null 2>&1 || $(RUNSHARED) ./$(BUILDPYTHON) -m pip install pre-commit >/dev/null 2>&1
$(RUNSHARED) ./$(BUILDPYTHON) -m pre_commit run --all-files

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm thinking it would be a good idea to add a make lint target like we have for the PEPs repo (and Pillow), which seems to work there.

Perhaps we should add make lint now and have it run pre-commit; and maybe also patchcheck?

Copy link
Member

Choose a reason for hiding this comment

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

I'd agree. We should also update the devguide (currently only patchcheck is mentioned)

Copy link
Member Author

Choose a reason for hiding this comment

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

I've removed the Makefile changes from this PR, let's decide what to later after discussion:

https://discuss.python.org/t/do-you-use-make-patchcheck/34743?u=hugovk

Tools/patchcheck/patchcheck.py Outdated Show resolved Hide resolved
Tools/patchcheck/patchcheck.py Show resolved Hide resolved
Tools/patchcheck/patchcheck.py Outdated Show resolved Hide resolved
Copy link
Member

@sobolevn sobolevn left a comment

Choose a reason for hiding this comment

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

Right now Makefile does not have pip mentions at all, I think that adding a new target with external deps needs a bit of discussion.
Since Makefile has a biiig range of different use-cases.

In my opinion having pre-commit CLI and in CI on its own is good enough.

@AA-Turner
Copy link
Member

Perhaps we should add make lint
In my opinion having pre-commit CLI and in CI on its own is good enough.

To clarify my opinion: I don't mind which of either of these are used, as I use Windows so the choice is personally irrelevant! I'll be happy with whatever Hugo goes for.

A

@AlexWaygood
Copy link
Member

We could perhaps create a poll on Discourse in the core development category asking how many people actually run make patchcheck. If the answer is zero (or very few), then that simplifies the decisions that need to be here — we can just get rid of it from the Makefile

@AA-Turner
Copy link
Member

Written up some questions at https://discuss.python.org/t/do-you-use-make-patchcheck/34743

A

@hugovk hugovk changed the title gh-109408: Docs: move trailing-whitespace from patchcheck to pre-commit gh-109408: Move the docs whitespace check from patchcheck to pre-commit Sep 27, 2023
@hugovk hugovk changed the title gh-109408: Move the docs whitespace check from patchcheck to pre-commit gh-109408: Add the docs whitespace check from patchcheck to pre-commit Oct 10, 2023
@hugovk hugovk enabled auto-merge (squash) October 10, 2023 07:45
@hugovk hugovk added needs backport to 3.11 only security fixes needs backport to 3.12 bug and security fixes labels Oct 10, 2023
@hugovk hugovk merged commit 7426ed0 into python:main Oct 10, 2023
27 checks passed
@hugovk hugovk deleted the patchcheck-docs-whitespace branch October 10, 2023 08:11
@miss-islington
Copy link
Contributor

Thanks @hugovk for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11, 3.12.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Oct 10, 2023
…-commit (pythonGH-109854)

(cherry picked from commit 7426ed0)

Co-authored-by: Hugo van Kemenade <[email protected]>
Co-authored-by: Alex Waygood <[email protected]>
Co-authored-by: Adam Turner <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Oct 10, 2023
…-commit (pythonGH-109854)

(cherry picked from commit 7426ed0)

Co-authored-by: Hugo van Kemenade <[email protected]>
Co-authored-by: Alex Waygood <[email protected]>
Co-authored-by: Adam Turner <[email protected]>
@bedevere-app
Copy link

bedevere-app bot commented Oct 10, 2023

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

@bedevere-app bedevere-app bot removed the needs backport to 3.12 bug and security fixes label Oct 10, 2023
@bedevere-app
Copy link

bedevere-app bot commented Oct 10, 2023

GH-110595 is a backport of this pull request to the 3.11 branch.

@bedevere-app bedevere-app bot removed the needs backport to 3.11 only security fixes label Oct 10, 2023
AlexWaygood added a commit that referenced this pull request Oct 10, 2023
…e-commit (GH-109854) (#110595)

gh-109408: Add the docs whitespace check from patchcheck to pre-commit (GH-109854)
(cherry picked from commit 7426ed0)

Co-authored-by: Hugo van Kemenade <[email protected]>
Co-authored-by: Alex Waygood <[email protected]>
Co-authored-by: Adam Turner <[email protected]>
AlexWaygood added a commit that referenced this pull request Oct 10, 2023
…e-commit (GH-109854) (#110594)

gh-109408: Add the docs whitespace check from patchcheck to pre-commit (GH-109854)
(cherry picked from commit 7426ed0)

Co-authored-by: Hugo van Kemenade <[email protected]>
Co-authored-by: Alex Waygood <[email protected]>
Co-authored-by: Adam Turner <[email protected]>
Glyphack pushed a commit to Glyphack/cpython that referenced this pull request Sep 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants