From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from CAN01-YT3-obe.outbound.protection.outlook.com (mail-yt3can01on2101.outbound.protection.outlook.com [40.107.115.101]) by sourceware.org (Postfix) with ESMTPS id CB0013858D1E; Wed, 20 Mar 2024 15:57:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CB0013858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CB0013858D1E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.115.101 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1710950224; cv=pass; b=n4jH0kX15EIsg2r5Ol7GAr/wt+qWfVrkI26Y0+mcQC7Ftp4el4c37p2jsb1MI1SwD7MpfpTugxVtHZya3vjnV0aMOPr02zoRLUOYCUJpnZSvg7gFffPPwaz1a9u+4LzrEyVF8MGY3GauJFhPT8/CYUR0I8pAt7njjmi7EzEtftY= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1710950224; c=relaxed/simple; bh=WwvcEGDSVy8qvbxCIVWo6+nQDeKdK4HWp0n9Dbd5zWM=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=LhEjzZYZMF89XE//6cGJtReQYlTablJ5DoVQ/9USsx3jHAZXXXP/F6cOn91tbBlzTa0+WFwmVwXgOVKe0TmFUV3voOLXw/G7jInUWIO6fLT7suLvDt7Z68zeeWTYGlZ7ZZElPeWZnUAn09aDi+q8xFEJ5EuhPX97OSeQPkXjt/Y= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mgX4vp+wmotl/7+JKyXMn58Bh4Q9xLKmHkGRmjiU1C2AGm1I5+Q4OD+kw68v32/pUOdfsSa8IBjE1aKd6yA+zCB6dfU0OoR9AuX+7SyN8qfG8JhZSCNaDnEdbT6Wy7PLKV5F2Lij3+3yon5FM9xvQkPUoVk7avdWi58IX6T6ZCUaIpGKw0pVB5xHHxuCJLMRfqibhFg2pIxRfjEcGZkOvj4OjBSikeHRB/R+A9haiqGhcZqzeNlP8zp/Zng8Og8M4yuboOmdPkhIjlcDS/YQrU/uO1k7EFq1u4jI5hXVB9Nw/f9Km04oldPKvKspzj9xC+GAUvKdPgYSjctgHZ17ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6b9qo51otPhAnat6MR2x3Tzn63t47kwsGKsbPdYy5X4=; b=I+l5lkY8Y38gRagU78DhctSnRfVPl2qAeA7LB2Zaim3NAUa6tCMp4DPsdDyRylq0y4W8kJCpf0oD7k1qeXUKLk9BmR+by/W5TlqIOeeX0904CGjtEU3Avo8pPPVE0ufq9PW1OltaM6rq/GcnAyWflSjO5b2jwmBV8isPFFgAuXYKeF3mgO2lHG0Jvkh7bC5lsAeK1zq4IuCVdSD/rzbF9b5lLUupwCxuDzhAZpZVqYu6SQZRV+zTZQZSDNgxc2XojWK3hF71/j5v3mKNdtYEhaCXkrJZ4WzTDvlbdq2/Z3EY8HZ+2i/5G+R6o2caTnZS+ylb9sa6gF0U4p8U4pm7UA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=efficios.com; dmarc=pass action=none header.from=efficios.com; dkim=pass header.d=efficios.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6b9qo51otPhAnat6MR2x3Tzn63t47kwsGKsbPdYy5X4=; b=Qkjhwp6t16GSLpzkNQCCMugAcHTncI41U9lhYtSJ7o7JaQpANkmRe2N0r8hcGx+R7kE2qW/huqU08uZrXbYELvJCkoLptL1Dlm0iLVnjCuDZMD2TZNrizGNvvpPm8AXpJE04zbnvFpOJfMq2Im+Zuwvhr+MQkfP7P2ehzkQgtYbFjEx/A90G0ExoLbzeGp4/tFfqNzQyWmZnlFVORN5KD7to5ZY0KhGdaza2dhFh6IwqEBAek+yP6I4TbbBknYXtfsJZoeXFaQHXMH5q2sYgCoXA4oq+PR8P0oX3rZSTpSxk/uSv91lMd2NBvmP+gVIANkWzWOyPK5PbM6uJ1KxcDQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=efficios.com; Received: from YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2e::17) by YT2PR01MB9384.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:a7::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.12; Wed, 20 Mar 2024 15:56:58 +0000 Received: from YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM ([fe80::3f0e:8077:5724:81b1]) by YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM ([fe80::3f0e:8077:5724:81b1%5]) with mapi id 15.20.7409.009; Wed, 20 Mar 2024 15:56:58 +0000 Message-ID: <1581895c-7160-4ab4-a6c9-f970d59f797e@efficios.com> Date: Wed, 20 Mar 2024 11:56:57 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] gdb: add .pre-commit-config.yaml Content-Language: fr To: Andrew Burgess , gdb-patches@sourceware.org Cc: binutils@sourceware.org References: <20240311150947.71762-1-simon.marchi@efficios.com> <87jzlxt3ve.fsf@redhat.com> From: Simon Marchi In-Reply-To: <87jzlxt3ve.fsf@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: YQBPR0101CA0208.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:67::31) To YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YQXPR01MB5520:EE_|YT2PR01MB9384:EE_ X-MS-Office365-Filtering-Correlation-Id: 65813f41-65af-4b61-8351-08dc48f65fcb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: t5d9a6Sc6UpKRR6uPfEFWp4w3w+Ng2xuW2CFipxlnm8AdDTIb4cQxDz2MNCcpVKAw4SbKwIlVQ9HWWCbtmF+2Bnt/RuntciMVC/wj+dQRtLwLsBuL7TOH2VdQSa0f/e8FMz3w0nhySuNSe6PnU9GjoIlYWlosBJFRxY5BLPCQUeHNlQedWyn3wwtqwDHac73PxNSHTIMdKV8ZhyA2jwQq8rKGbTCYg0tm2p+4JjLInAis8M+Fab7Xmq52McUxVJtT04sn/jWZa8tUvkkKpjUUsuZURmE2iTI+yZS8fBw+ktyZeyC6rjiACvPVB7tiSQOjUr3RbR37auNSqvMbr9I7aKh2tA3NI36mqxc7lnht4tCnJgPUqUWQc4OcklaMiVdWb4p76jtDOHGheVZ4izuY8ISo33tmA3M7Eohu/62ETuMdn1E3t3kavksRC3zsvowagPk6qNA0OPv9O2IWfooz7UT2jpYNnP09nLFg97QIM3wkK5xmKn5iIinKXxKIZYVtTKga+XjArZRB4IgGibm9B665oC/28aItvjldFEX2R/VH0pn+3mC9prOb05HibCs3l/R5XMgjPeunuBFOznr7kHBhj40S5ypTAy6p0CimcYznHjPfCbm9aOZKsN2UIF54VLWNhcw9fHKoYDH5wjVWzU7OjWfvpC/UQXqk9RFOZg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bHl5eDJybzhxQisvZERXQk5JMlhxajhNS3B1ZDRwbTdFR1V2eTZCTUVQaWFG?= =?utf-8?B?bVl6R0x5ZE1yaUp6Z1ZPL3FzR0lsMFRiZW5acDZvaWtFcVM3Q3RUSEM1MVg5?= =?utf-8?B?WCtSeHJQU1RDL1IreXZLeURySWJ6WHhYSC96d2RYbHFWV3p0NWZpbEpvYmsr?= =?utf-8?B?bTJpbDVOeW5Kc25NaWZhcllxSzJzM1Q1M0c0WkJZSjZwTTA3TWEybTJKU1M3?= =?utf-8?B?T2pBV1EycHhuSWtKRTErdnhWZUZjL0lyZFZKM3hYQ0piZjF0ZCtaL1VQM0Iv?= =?utf-8?B?emxTUXFPMS9GTDZzaFMyUTlxUkdtS1dzM2tOQ0lzbkFIc0dwWWlaM1RnTjRJ?= =?utf-8?B?OGZCT3dkOVlOcjYyOFZOUjNFakdvM1JxcGZwbFRTc2dMV2VOSnl4UU5WUlYr?= =?utf-8?B?R0I1ZlI2T3JCRjVnUndSVXB5Y3lvVm50MCtMMmRiTml4djBTT2dsL093NFNo?= =?utf-8?B?NkJydXNxZTFQbG91cldROXA2d05wdEh1VWlGWVp3a1NTVXhIVDVEdmRDS0Rp?= =?utf-8?B?RmVMMjhtWmxxbTcxYTF5RXhuUnZ4RVZnMkRLRnRtSmV4R0VqcmNsUzVOVk5V?= =?utf-8?B?U2FZOUI4RGhaRGMrLzE2WkJvcEd1MXNPWTBlZVN3Q3dZZWZMTnVzRGtnUmxN?= =?utf-8?B?dEVyTFArdlpBQ2J3alpjK3F1M3Z6T0p0TTV1YVJiUEhMR2owQ0FJa3BkU1V0?= =?utf-8?B?elkrdnU3UXV1cE4yRFhPOUdOZTFsaDdQVGFaRjlhRHFhVGxTdkJuQzdnOXdH?= =?utf-8?B?NS9uYU51Um5JT09CZ3FobWRlRStZZ2UrUmZmRkgyeW9pSDdpN2lnenQzWmxT?= =?utf-8?B?bkxIQ1d6YUtYZmc4M1hnNHVuVFhlUTR5S2Y5Y0RsaUVMbyszYmRUR0xqNUtS?= =?utf-8?B?ZTJoUDA5dDBRNW85WGxvNVlsT1lUZ2RKM0NaMm5nTUlYbmVOeGZWbmhRVlNJ?= =?utf-8?B?aXR6bERMMG9Lb0l6bFp2aFMrZ3hxTVhyS01KNVlFZnNnVmlGaGEya3pyTmsy?= =?utf-8?B?Y1BVdjk0aVdEcllKV0tvQ3c5cCtNemZlYU5jU1pwekxSbmVIbmJ0SkF6Rk42?= =?utf-8?B?NitUdGxPTk5rNkxyUEVJMTdMTEV1cXZLRzRkWlNDWDAzd1JTYXJoanJERWdK?= =?utf-8?B?TXBpTXlOV2kwYmZCWkpXdjJDMjFYUVdkd0Nzd0hJVzlzS3hpdEpKdXFWLzk2?= =?utf-8?B?ZHNZSVh1eEpYMmI1L0k3MWV5Q0lpVzl6UmpGREl5K3ZKQ2NjN1lQRXVlamha?= =?utf-8?B?eVVBUWlGUzN2cUdneDV0bEFaN2ZRV1F6NytHMEIwM0NmcXY3dW9BWUhwaHpj?= =?utf-8?B?YlRBTnFqcXhyaUsrRDQzRElwLzZaeG9DM1ZXTy81MHpHdXdIc2w4QnV5OVdE?= =?utf-8?B?czhVY2tUQmlINHptbWc0M3o2VGhHRkpVRzZiRmIzcFZuWVdGekhTNWw0OEVr?= =?utf-8?B?UE9IN2kzYmRJdGlPUlpyTkJlcWVpYWlKWHdhaFdUdHdBZEovcnpZY3NWZlN5?= =?utf-8?B?KzhkTXY2TjFDd0YvZkNTSG9XWFhqTjR6ckV5L2h2RWQyZGdBVmVZVzNOYlNJ?= =?utf-8?B?bGlycGRWTEczKzZkTDRGUUlGWVBZVUpoMG9DVEtMRkxIRmZWS1Zvdk1ndVVK?= =?utf-8?B?clZnUGpLQmtrS1ZRb1ZWT2VodE5WcWVKSVZrNSt2MUU0UFNoczZnVWwvNXZN?= =?utf-8?B?MTRqQnkweE52V3c0TUpDR0k3QmVVOHE1UTFKbWwwNlJtanlmZVkrbDZheVVY?= =?utf-8?B?NFVBVVdhakRQanNoWlpuNnF5dmpmdmVGT3VXVTNsRkJ0QXpKQmlMZENLMmxO?= =?utf-8?B?cjJqUnpjTTNuRWYya25neUVKUW5qb3EwK3c5clAzeGRJZnRVV0pEKy9SNHpB?= =?utf-8?B?ZnBkWTZRaFZGdDkrKzlhM0dReDlKU1pNRVYxelRMWDNidFp5akwyNWxIMlh1?= =?utf-8?B?SW1kSFV1VWJlMHdYM1gyL3BHYkU1dFBVWmRDWElOSmlLMnhrdjNNTWNaVU1q?= =?utf-8?B?cVFZVFFsMHIvMXppUVlrNE9RT2c5aThDNUJ5SVg3QUVsVmpZblpibklvZFNt?= =?utf-8?B?VWlFWUJta3RjeUJCNkVabmJKUXZNcVQxRnN3NktSTTFqbHZBT1B5SVRwQlBN?= =?utf-8?Q?6DrQwc9ZHuBddnjNohrAbnS7K?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 65813f41-65af-4b61-8351-08dc48f65fcb X-MS-Exchange-CrossTenant-AuthSource: YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2024 15:56:58.7267 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4f278736-4ab6-415c-957e-1f55336bd31e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KZL/Hs36k+4wcBIO8d3+Hx6dhLzC7ZbH9gojGV1cBV0+legyrN46dTJDbBNoV/KdpyOHvcB3KPqaZoCl/4voPw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT2PR01MB9384 X-Spam-Status: No, score=-3032.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 3/20/24 09:44, Andrew Burgess wrote: > Simon Marchi writes: > >> [I'm CCing the binutils list because this patch adds a file at the >> top-level, but it only concerns gdb for now. But if you are want to use >> pre-commit for some things in binutils too, you are welcome to use that >> file for your needs.] >> >> Add a pre-commit [1] config file, with a single hook to run black >> whenever a Python file is modified. We can always add more hooks if we >> find some that are useful. >> >> Using pre-commit to run hooks is opt-in, as in it's not mandatory at all >> for development, but it can be useful to run some checks that are easy >> to forget (like running black). The hooks run locally on the >> developer's machine when doing `git commit` (although they can also be >> configured to run at other stages of the git workflow). >> >> Follow these instructions to install the hooks in your local development >> git repository: >> >> - Install pre-commit the way you prefer. It can be using your OS >> package manager if it has a recent enough version, or using `pip >> install pre-commit`. >> - Go to the binutils-gdb repository and run `pre-commit install`. >> >> This installs a git hook at `.git/hooks/pre-commit`. >> >> Now, whenever you modify and try to commit a Python file, pre-commit >> will run black on it. For instance, if I try to insert something >> misformatted, I get this when doing `git commit`: >> >> $ git commit >> black....................................................................Failed >> - hook id: black >> - files were modified by this hook >> >> reformatted gdb/python/lib/gdb/dap/breakpoint.py >> >> All done! ✨ 🍰 ✨ >> 1 file reformatted. >> >> At this point, black has already reformatted the files in place, so the >> changes that fix the formatting are ready to add and commit. black is >> only ran on files modified in the commit. >> >> The hook defines a black version, which is downloaded at `pre-commit >> install` time. pre-commit manages its own env at >> `$HOME/.cache/pre-commit/`, so it won't use the version of >> black you have installed already. This may help ensure that >> contributors use the right black version. > > This sounds great. I got a recent commit wrong because the version of > black was rolled forward and I'd not updated locally, so this would > really help. > > +1 from me for making this a thing. Thanks! Given that I only got positive feedback and this file won't hurt anybody who doesn't care about it, I went ahead and pushed the patch. I added Acked-Bys for all those who provided feedback. I'll now go ahead and updated the wiki. Simon