Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit cc6839a

Browse filesBrowse files
authored
GH-109408: Stop running patchcheck in CI (#109895)
1 parent d91ac52 commit cc6839a
Copy full SHA for cc6839a

File tree

3 files changed

+12
-131
lines changed
Filter options

3 files changed

+12
-131
lines changed

‎.azure-pipelines/posix-steps.yml

Copy file name to clipboardExpand all lines: .azure-pipelines/posix-steps.yml
-6Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,3 @@ steps:
1818

1919
- script: make pythoninfo
2020
displayName: 'Display build info'
21-
22-
- script: |
23-
git fetch origin
24-
./python Tools/patchcheck/patchcheck.py --ci true
25-
displayName: 'Run patchcheck.py'
26-
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))

‎.azure-pipelines/pr.yml

Copy file name to clipboardExpand all lines: .azure-pipelines/pr.yml
-17Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,3 @@ jobs:
99

1010
steps:
1111
- template: ./prebuild-checks.yml
12-
13-
14-
- job: Ubuntu_Patchcheck
15-
displayName: Ubuntu patchcheck
16-
dependsOn: Prebuild
17-
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))
18-
19-
pool:
20-
vmImage: ubuntu-22.04
21-
22-
variables:
23-
testRunTitle: '$(system.pullRequest.TargetBranch)-linux'
24-
testRunPlatform: linux
25-
openssl_version: 1.1.1u
26-
27-
steps:
28-
- template: ./posix-steps.yml

‎Tools/patchcheck/patchcheck.py

Copy file name to clipboardExpand all lines: Tools/patchcheck/patchcheck.py
+12-108Lines changed: 12 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
import subprocess
66
import sysconfig
77

8-
import reindent
9-
import untabify
10-
118

129
def get_python_source_dir():
1310
src_dir = sysconfig.get_config_var('abs_srcdir')
@@ -16,13 +13,6 @@ def get_python_source_dir():
1613
return os.path.abspath(src_dir)
1714

1815

19-
# Excluded directories which are copies of external libraries:
20-
# don't check their coding style
21-
EXCLUDE_DIRS = [
22-
os.path.join('Modules', '_decimal', 'libmpdec'),
23-
os.path.join('Modules', 'expat'),
24-
os.path.join('Modules', 'zlib'),
25-
]
2616
SRCDIR = get_python_source_dir()
2717

2818

@@ -153,62 +143,7 @@ def changed_files(base_branch=None):
153143
else:
154144
sys.exit('need a git checkout to get modified files')
155145

156-
filenames2 = []
157-
for filename in filenames:
158-
# Normalize the path to be able to match using .startswith()
159-
filename = os.path.normpath(filename)
160-
if any(filename.startswith(path) for path in EXCLUDE_DIRS):
161-
# Exclude the file
162-
continue
163-
filenames2.append(filename)
164-
165-
return filenames2
166-
167-
168-
def report_modified_files(file_paths):
169-
count = len(file_paths)
170-
if count == 0:
171-
return n_files_str(count)
172-
else:
173-
lines = [f"{n_files_str(count)}:"]
174-
for path in file_paths:
175-
lines.append(f" {path}")
176-
return "\n".join(lines)
177-
178-
179-
#: Python files that have tabs by design:
180-
_PYTHON_FILES_WITH_TABS = frozenset({
181-
'Tools/c-analyzer/cpython/_parser.py',
182-
})
183-
184-
185-
@status("Fixing Python file whitespace", info=report_modified_files)
186-
def normalize_whitespace(file_paths):
187-
"""Make sure that the whitespace for .py files have been normalized."""
188-
reindent.makebackup = False # No need to create backups.
189-
fixed = [
190-
path for path in file_paths
191-
if (
192-
path.endswith('.py')
193-
and path not in _PYTHON_FILES_WITH_TABS
194-
and reindent.check(os.path.join(SRCDIR, path))
195-
)
196-
]
197-
return fixed
198-
199-
200-
@status("Fixing C file whitespace", info=report_modified_files)
201-
def normalize_c_whitespace(file_paths):
202-
"""Report if any C files """
203-
fixed = []
204-
for path in file_paths:
205-
abspath = os.path.join(SRCDIR, path)
206-
with open(abspath, 'r') as f:
207-
if '\t' not in f.read():
208-
continue
209-
untabify.process(abspath, 8, verbose=False)
210-
fixed.append(path)
211-
return fixed
146+
return list(map(os.path.normpath, filenames))
212147

213148

214149
@status("Docs modified", modal=True)
@@ -248,40 +183,14 @@ def regenerated_pyconfig_h_in(file_paths):
248183
return "not needed"
249184

250185

251-
def ci(pull_request):
252-
if pull_request == 'false':
253-
print('Not a pull request; skipping')
254-
return
255-
base_branch = get_base_branch()
256-
file_paths = changed_files(base_branch)
257-
python_files = [fn for fn in file_paths if fn.endswith('.py')]
258-
c_files = [fn for fn in file_paths if fn.endswith(('.c', '.h'))]
259-
fixed = []
260-
fixed.extend(normalize_whitespace(python_files))
261-
fixed.extend(normalize_c_whitespace(c_files))
262-
if not fixed:
263-
print('No whitespace issues found')
264-
else:
265-
count = len(fixed)
266-
print(f'Please fix the {n_files_str(count)} with whitespace issues')
267-
print('(on Unix you can run `make patchcheck` to make the fixes)')
268-
sys.exit(1)
269-
270-
271186
def main():
272187
base_branch = get_base_branch()
273188
file_paths = changed_files(base_branch)
274-
python_files = [fn for fn in file_paths if fn.endswith('.py')]
275-
c_files = [fn for fn in file_paths if fn.endswith(('.c', '.h'))]
276-
doc_files = [fn for fn in file_paths if fn.startswith('Doc') and
277-
fn.endswith(('.rst', '.inc'))]
189+
has_doc_files = any(fn for fn in file_paths if fn.startswith('Doc') and
190+
fn.endswith(('.rst', '.inc')))
278191
misc_files = {p for p in file_paths if p.startswith('Misc')}
279-
# PEP 8 whitespace rules enforcement.
280-
normalize_whitespace(python_files)
281-
# C rules enforcement.
282-
normalize_c_whitespace(c_files)
283192
# Docs updated.
284-
docs_modified(doc_files)
193+
docs_modified(has_doc_files)
285194
# Misc/ACKS changed.
286195
credit_given(misc_files)
287196
# Misc/NEWS changed.
@@ -292,19 +201,14 @@ def main():
292201
regenerated_pyconfig_h_in(file_paths)
293202

294203
# Test suite run and passed.
295-
if python_files or c_files:
296-
end = " and check for refleaks?" if c_files else "?"
297-
print()
298-
print("Did you run the test suite" + end)
204+
has_c_files = any(fn for fn in file_paths if fn.endswith(('.c', '.h')))
205+
has_python_files = any(fn for fn in file_paths if fn.endswith('.py'))
206+
print()
207+
if has_c_files:
208+
print("Did you run the test suite and check for refleaks?")
209+
elif has_python_files:
210+
print("Did you run the test suite?")
299211

300212

301213
if __name__ == '__main__':
302-
import argparse
303-
parser = argparse.ArgumentParser(description=__doc__)
304-
parser.add_argument('--ci',
305-
help='Perform pass/fail checks')
306-
args = parser.parse_args()
307-
if args.ci:
308-
ci(args.ci)
309-
else:
310-
main()
214+
main()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.