From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id zbX9OboPWmphbw4AWB0awg (envelope-from ) for ; Fri, 17 Jul 2026 07:19:22 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=lqucOFCL; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=S/yqF2Fd; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=lqucOFCL; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=S/yqF2Fd; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id D9F181E099; Fri, 17 Jul 2026 07:19:22 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 15C311E099 for ; Fri, 17 Jul 2026 07:19:22 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6A7CB4BA2E2F for ; Fri, 17 Jul 2026 11:19:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6A7CB4BA2E2F Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=lqucOFCL; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=S/yqF2Fd; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=lqucOFCL; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=S/yqF2Fd Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by sourceware.org (Postfix) with ESMTPS id 2EF7A4BA5436 for ; Fri, 17 Jul 2026 11:18:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2EF7A4BA5436 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2EF7A4BA5436 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784287137; cv=none; b=wlS+F3CRct/BJ6okR8aZfSXxOegNeta2i3prXfBCJR3bL8gvtfLU5oxwM0lhWsAhkzENVG2llT4UN8Y1NUhtgt9tEtSVUnos0pOt2PAGix9XlV920bIuyyFoUFNV2RZZ2pE4PV5253UlVXOwL5UPr0sJxc0jnPX4EOrsqS+jiFo= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784287137; c=relaxed/simple; bh=opOi1TD+c19FRMp3D+uF02FGwpJGpEu7RGBrrRTATwM=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=gvFghK3CTa/jYipNQqNL04uLMfLoaqf9s1HEu5mqeG2FhK16sS4bG7VliicC6FFfjEZBlpgVwgQkV7IT7vOEjY6i5QtlVjg9V04fzUEz8y4F+Jdh4mzz/ZhNuLDeyzSr6GbVLCgid6+s3nvm3FtxkML8WINga2jNYRTlVmdDWJA= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=lqucOFCL; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=S/yqF2Fd; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=lqucOFCL; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=S/yqF2Fd DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2EF7A4BA5436 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 172753E46 for ; Fri, 17 Jul 2026 11:18:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1784287135; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=NyKEGrPRwLnQp2Vv/+KdWTVDQLu+kXwL+9i7jn6fnms=; b=lqucOFCLXxIp5t8hELN9kvdRpvAG35n1Jak+0Vh6YxXswuMW0+VkhxUPN8lpXW9EhZlSlI fPalVNxcPe8EVjUCOfvoFeXA+twfK2vfQE69wm8hzzL0MomQ/rykN6XZGCoJvdkyBzoLna RuOHAAgDH63arNgPLY4SolqQJgiQ4xc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1784287135; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=NyKEGrPRwLnQp2Vv/+KdWTVDQLu+kXwL+9i7jn6fnms=; b=S/yqF2FdyM62PS8RJEncOKsbWDzbbUmVgQ8bz2NPWiQXV4B8aHN8HdwJSnOV8p0kyuG7xs R2O2cB7H9ub8l9Cw== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=lqucOFCL; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="S/yqF2Fd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1784287135; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=NyKEGrPRwLnQp2Vv/+KdWTVDQLu+kXwL+9i7jn6fnms=; b=lqucOFCLXxIp5t8hELN9kvdRpvAG35n1Jak+0Vh6YxXswuMW0+VkhxUPN8lpXW9EhZlSlI fPalVNxcPe8EVjUCOfvoFeXA+twfK2vfQE69wm8hzzL0MomQ/rykN6XZGCoJvdkyBzoLna RuOHAAgDH63arNgPLY4SolqQJgiQ4xc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1784287135; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=NyKEGrPRwLnQp2Vv/+KdWTVDQLu+kXwL+9i7jn6fnms=; b=S/yqF2FdyM62PS8RJEncOKsbWDzbbUmVgQ8bz2NPWiQXV4B8aHN8HdwJSnOV8p0kyuG7xs R2O2cB7H9ub8l9Cw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 027FC779AA for ; Fri, 17 Jul 2026 11:18:54 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id vC/gOp4PWmrHZgAAD6G6ig (envelope-from ) for ; Fri, 17 Jul 2026 11:18:54 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [pushed v2] [pre-commit] Fix codespell-log hook Date: Fri, 17 Jul 2026 13:18:54 +0200 Message-ID: <20260717111854.30881-1-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Action: no action X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DKIM_TRACE(0.00)[suse.de:+]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_TLS_ALL(0.00)[]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received,2a07:de40:b281:104:10:150:64:97:from]; RCVD_VIA_SMTP_AUTH(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo, imap1.dmz-prg2.suse.org:rdns, suse.de:mid, suse.de:dkim] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Queue-Id: 172753E46 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org A recent commit added this top-level setting to .pre-commit-config.yaml: ... files: '^(gdb|gdbserver|gdbsupport)/' ... This broke the codespell-log hook, which is a commit-msg hook, which is called with the commit message as first argument, typically .git/COMMIT_EDITMSG. However, the top-level files setting filters out .git/COMMIT_EDITMSG, with the consequence that the commit-msg hook is no longer called. It seems obvious to me that this is a pre-commit bug: the files field is there to filter files in the repository, which .git/COMMIT_EDITMSG is not one of. But upstream disagrees [1]. The fix suggested upstream is to include .git/COMMIT_EDITMSG in the default files setting. That indeed works for a regular commit, but not for something like this: ... $ tmp=$(mktemp) $ echo 'msg' > $tmp $ pre-commit run --hook-stage commit-msg --commit-msg-filename $tmp ... which is roughly what we're using in the regression test. We can't use .git/COMMIT_EDITMSG in the regression test, because the user may be editing it, or using it in some other way. We also cannot use say gdb/testsuite/gdb.src/commit-msg.txt, because using that filename doesn't detect the regression. [1] https://github.com/pre-commit/pre-commit/issues/3720 --- .pre-commit-config.yaml | 7 ++++++- gdb/testsuite/gdb.src/pre-commit.exp | 24 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2f86a333ab5..141f14ba72c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -40,7 +40,9 @@ minimum_pre_commit_version: 4.5.1 default_install_hook_types: [pre-commit, commit-msg] default_stages: [pre-commit] -files: '^(gdb|gdbserver|gdbsupport)/' +# A default files setting like "files: '^(gdb|gdbserver|gdbsupport)/" would be +# nice, but that disables commit-msg hooks. See this pre-commit issue ( +# https://github.com/pre-commit/pre-commit/issues/3720 ). repos: # Python hooks. Run these for (in glob notation): @@ -79,6 +81,7 @@ repos: hooks: - id: codespell args: &codespell_args [--toml, gdb/pyproject.toml] + files: &gdb_files '^(gdb|gdbserver|gdbsupport)/' - id: codespell name: codespell-log entry: gdb/contrib/codespell-log.sh @@ -117,6 +120,7 @@ repos: language: unsupported_script entry: gdb/contrib/check-whitespace-pre-commit.py types: ['text'] + files: *gdb_files - id: &id3 pre-commit-setup name: *id3 language: python @@ -128,3 +132,4 @@ repos: name: *id4 language: unsupported_script entry: gdb/contrib/check-file-mode.sh + files: *gdb_files diff --git a/gdb/testsuite/gdb.src/pre-commit.exp b/gdb/testsuite/gdb.src/pre-commit.exp index b84353d3e33..82225f3d652 100644 --- a/gdb/testsuite/gdb.src/pre-commit.exp +++ b/gdb/testsuite/gdb.src/pre-commit.exp @@ -39,4 +39,28 @@ with_cwd $repodir { set status [lindex $result 0] gdb_assert {$status == 0} "pre-commit checks" + with_test_prefix commit-msg { + set commit_msg [build_standard_output_file "commit-msg.txt"] + + # codespell:ignore-begin. + gdb_produce_source $commit_msg { + This should aways produce a codespell warning. + } + # codespell:ignore-end. + + set result \ + [remote_exec build \ + "pre-commit run --hook-stage commit-msg --commit-msg-filename $commit_msg -v"] + set status [lindex $result 0] + set output [lindex $result 1] + gdb_assert {$status == 0} "run" + + with_test_prefix codespell-log { + # codespell:ignore-begin. + set re [string_to_regexp "aways ==> "] + # codespell:ignore-end. + + gdb_assert {[regexp $re $output]} "output" + } + } } base-commit: 59d681f3a8278d29a74dfd7de8ef276d08b717cf -- 2.51.0