[binutils-gdb] [pre-commit] Reorganize .pre-commit-config.yaml

Tom de Vries via Gdb-cvs <[email protected]> Wed, 17 Jun 2026 19:40:36 +0000 (GMT)
Newsgroups gmane.comp.gdb.cvs
Message-ID <20260617194036.27E744BA2E32__10509.038569738$1781725244$gmane$org@sourceware.org>
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0c6ebc781ac79cd64d12d8acc1cb50fd4de2bb3a

commit 0c6ebc781ac79cd64d12d8acc1cb50fd4de2bb3a
Author: Tom de Vries <[email protected]>
Date:   Wed Jun 17 21:40:03 2026 +0200

    [pre-commit] Reorganize .pre-commit-config.yaml
    
    Reorganize .pre-commit-config.yaml:
    - unify indentation
    - move local hooks to last
    - add empty lines and header comments to make file more readable
    - move detailed file selection comment from flake8 settings to
      "Python hooks" since it's valid for all python hooks, and
      explain why the types_or setting is needed.
    - use anchors to avoid repetition
    
    Approved-By: Tom Tromey <[email protected]>

Diff:
---
 .pre-commit-config.yaml | 62 ++++++++++++++++++++++++++++---------------------
 1 file changed, 36 insertions(+), 26 deletions(-)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 1d766189ca3..141451501ed 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -40,25 +40,29 @@
 minimum_pre_commit_version: 4.5.1
 default_install_hook_types: [pre-commit, commit-msg]
 default_stages: [pre-commit]
+
 repos:
+  # Python hooks.  Run these for (in glob notation):
+  #
+  #  - gdb/gdb-gdb.py.in
+  #  - gdb/*.py
+  #  - gdb/python/**/*.py
+  #  - gdb/testsuite/*.py
+  #
+  # Because gdb/gdb-gdb.py.in is not classified as python, we use
+  # 'types_or: [file]' to override the default type for these hooks.
+  #
   - repo: https://github.com/psf/black-pre-commit-mirror
     rev: 26.5.1
     hooks:
-      - id: black
-        types_or: [file]
-        files: '^gdb/.*\.py(\.in)?$'
+    - id: black
+      types_or: [file]
+      files: '^gdb/.*\.py(\.in)?$'
   - repo:  https://github.com/pycqa/flake8
     rev: 7.3.0
     hooks:
     - id: flake8
       types_or: [file]
-      # Run this for (in glob notation):
-      #
-      #  - gdb/gdb-gdb.py.in
-      #  - gdb/*.py
-      #  - gdb/python/**/*.py
-      #  - gdb/testsuite/*.py
-      #
       files: '^gdb/.*\.py(\.in)?$'
       args: [--config, gdb/setup.cfg]
   - repo: https://github.com/pycqa/isort
@@ -67,6 +71,8 @@ repos:
     - id: isort
       types_or: [file]
       files: '^gdb/.*\.py(\.in)?$'
+
+  # Codespell hooks.
   - repo: https://github.com/codespell-project/codespell
     rev: v2.4.2
     hooks:
@@ -79,43 +85,47 @@ repos:
       args: [--toml, gdb/pyproject.toml]
       verbose: true
       stages: [commit-msg]
+
+  # Tclint hooks.
+  - repo: https://github.com/nmoroze/tclint
+    rev: v0.8.0
+    hooks:
+    - id: tclint
+      args: [--trust-plugins]
+      files: '^gdb/testsuite/.*\.(exp|tcl)$'
+
+  # Local hooks.
   - repo: local
     hooks:
-    - id: check-include-guards
-      name: check-include-guards
+    - id: &id0 check-include-guards
+      name: *id0
       language: unsupported_script
       entry: gdb/check-include-guards.py
       # All gdb header files, but not headers in the test suite.
       files: '^(gdb(support|server)?)/.*\.h$'
       exclude: '.*/testsuite/.*'
-    - id: check-gnu-style
-      name: check-gnu-style
+    - id: &id1 check-gnu-style
+      name: *id1
       language: python
       additional_dependencies: ['termcolor', 'unidiff']
       entry: gdb/contrib/check-gnu-style-pre-commit.sh
       files: '^(gdb(support|server)?)/.*\.(c|h|cc)$'
       exclude: '.*/testsuite/.*'
       verbose: true
-    - id: check-whitespace
-      name: check-whitespace
+    - id: &id2 check-whitespace
+      name: *id2
       language: unsupported_script
       entry: gdb/contrib/check-whitespace-pre-commit.py
       files: '^(gdb(support|server)?)/.*$'
-    - id: pre-commit-setup
-      name: pre-commit-setup
+    - id: &id3 pre-commit-setup
+      name: *id3
       language: python
       entry: gdb/contrib/pre-commit-setup.py
       additional_dependencies: ["pyyaml"]
       always_run: true
       pass_filenames: false
-    - id: check-file-mode
-      name: check-file-mode
+    - id: &id4 check-file-mode
+      name: *id4
       language: unsupported_script
       entry: gdb/contrib/check-file-mode.sh
       files: '^(gdb|gdbserver|gdbsupport)/.*$'
-  - repo: https://github.com/nmoroze/tclint
-    rev: v0.8.0
-    hooks:
-    - id: tclint
-      args: [--trust-plugins]
-      files: '^gdb/testsuite/.*\.(exp|tcl)$'