From unknown Sat Aug 09 04:54:37 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#61970 <61970@debbugs.gnu.org> To: bug#61970 <61970@debbugs.gnu.org> Subject: Status: [PATCH] lint: Return exit code 1 if there are warnings. Reply-To: bug#61970 <61970@debbugs.gnu.org> Date: Sat, 09 Aug 2025 11:54:37 +0000 retitle 61970 [PATCH] lint: Return exit code 1 if there are warnings. reassign 61970 guix-patches submitter 61970 Antero Mejr severity 61970 normal tag 61970 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 04 18:17:12 2023 Received: (at submit) by debbugs.gnu.org; 4 Mar 2023 23:17:12 +0000 Received: from localhost ([127.0.0.1]:38043 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pYb7o-0000Db-5e for submit@debbugs.gnu.org; Sat, 04 Mar 2023 18:17:12 -0500 Received: from lists.gnu.org ([209.51.188.17]:45176) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pYb7m-0000DS-2G for submit@debbugs.gnu.org; Sat, 04 Mar 2023 18:17:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pYb7g-0004Zg-8j for guix-patches@gnu.org; Sat, 04 Mar 2023 18:17:09 -0500 Received: from mout-p-102.mailbox.org ([80.241.56.152]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from ) id 1pYb7B-0003Zu-2A for guix-patches@gnu.org; Sat, 04 Mar 2023 18:17:02 -0500 Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4PTgh25khzz9sW7 for ; Sun, 5 Mar 2023 00:16:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1677971778; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=6eDjGwIdi718QT6KN2Edn84b83slSfGtCj4M7AKTelg=; b=T7bKV7u7+A2BsMCL9KeFQoq4FFm832gcU/zptFmlCuMz5kGVPhRrn3hm0f3tLMEvNeRDD8 XC6BYFixzzWNnNeDhNWGUE9hH38hF4C8Lb1BRd5vrHGPST0GmFdNkXy//hozNjHYuAfFcn nUDeEFEcD7KtVevfoKr+LW/l7UQH861NgnZYs+rJvQG+SXd/vJ5mi1HSApyK1/zuBrlxf3 AMCbdgwFmP4J1P5zTNMb+MtyoWBGq4TnXbNdnMeE9Zjm/966lqD/8f9PZbRuo8+djhhD2Y QQR2MFIQo1hcv0cG8xK61UQnGFcCptKpiBfG1gMXe3NUIA4j3l88CLofII0WHQ== From: Antero Mejr DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1677971776; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=6eDjGwIdi718QT6KN2Edn84b83slSfGtCj4M7AKTelg=; b=ykHwYvxAwB5/nie1T8/FLUkYeJdDcHPjhO4YwgKhhC/rZ9J8hTp+OKqfPzRtlBxCcXt2Mz ZesuiDQaloQGCRYOmtSVkWaH27YoXJtEEQEIHEqZmgsLhZPhHaW7EDwq1BLv4luQ2fFjwr hm0Gk/Gfhpy84jxWkDdGcUKFaIR8mPCYJthSXM38zXOtroxFnmc9fbOXOW52kUrxaCKtkp 4txWJwVXllpjsbrB3HKapr3wGTYk7X44BPWEIbr69nXofRx+kmFJFSJcrSYDp9K5G/Wuol tGUTVWO1CR11RqXFzQIhG8euUZLk1qc1FlnPei7j6XOnxqHMkfp4SCC6KepQXw== To: guix-patches@gnu.org Subject: [PATCH] lint: Return exit code 1 if there are warnings. Date: Sat, 4 Mar 2023 23:16:01 +0000 Message-Id: <20230304231601.13352-1-antero@mailbox.org> MIME-Version: 1.0 X-Debbugs-Cc: zimon.toutoune@gmail.com X-Debbugs-Cc: dev@jpoiret.xyz X-Debbugs-Cc: mail@cbaines.net X-Debbugs-Cc: rekado@elephly.net X-Debbugs-Cc: othacehe@gnu.org X-Debbugs-Cc: me@tobias.gr X-Debbugs-Cc: ludo@gnu.org Content-Transfer-Encoding: 8bit X-MBO-RS-META: z8f1do8kxmn81d8hathq7kbew7i4p89y X-MBO-RS-ID: 6fa18e03f22b1c7db2d Received-SPF: pass client-ip=80.241.56.152; envelope-from=antero@mailbox.org; helo=mout-p-102.mailbox.org X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit Cc: Antero Mejr X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) * guix/scripts/lint.scm (guix-lint, run-checkers): Modify procedure. --- Exiting 1 makes it a lot easier to include a "guix lint" step in external CI pipelines. guix/scripts/lint.scm | 60 ++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 9920c3ee62..a4bec357c7 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -61,21 +61,25 @@ (define (emit-warnings warnings) (define* (run-checkers package checkers #:key store) "Run the given CHECKERS on PACKAGE." - (let ((tty? (isatty? (current-error-port)))) - (for-each (lambda (checker) - (when tty? - (format (current-error-port) "checking ~a@~a [~a]...\x1b[K\r" - (package-name package) (package-version package) - (lint-checker-name checker)) - (force-output (current-error-port))) - (emit-warnings - (if (lint-checker-requires-store? checker) - ((lint-checker-check checker) package #:store store) - ((lint-checker-check checker) package)))) - checkers) + (let* ((tty? (isatty? (current-error-port))) + (results + (map (lambda (checker) + (when tty? + (format (current-error-port) "checking ~a@~a [~a]...\x1b[K\r" + (package-name package) (package-version package) + (lint-checker-name checker)) + (force-output (current-error-port))) + (let ((results (if (lint-checker-requires-store? checker) + ((lint-checker-check checker) package + #:store store) + ((lint-checker-check checker) package)))) + (emit-warnings results) + results)) + checkers))) (when tty? (format (current-error-port) "\x1b[K") - (force-output (current-error-port))))) + (force-output (current-error-port))) + results)) (define (list-checkers-and-exit checkers) ;; Print information about all available checkers and exit. @@ -218,14 +222,22 @@ (define (call-maybe-with-store proc) (proc store)) (proc #f))) - (call-maybe-with-store - (lambda (store) - (cond - ((null? args) - (fold-packages (lambda (p r) (run-checkers p checkers - #:store store)) '())) - (else - (for-each (lambda (package) - (run-checkers package checkers - #:store store)) - args))))))))) + (define (null?-rec lst) + (if (list? lst) + (not (member #f (map null?-rec lst))) + #f)) + + (if (null?-rec + (call-maybe-with-store + (lambda (store) + (cond + ((null? args) + (fold-packages (lambda (p r) + (cons (run-checkers p checkers + #:store store) r)) '())) + (else + (map (lambda (package) + (run-checkers package checkers #:store store)) + args)))))) + (exit 0) + (exit 1)))))) -- 2.38.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 06 10:59:32 2023 Received: (at 61970) by debbugs.gnu.org; 6 Mar 2023 15:59:32 +0000 Received: from localhost ([127.0.0.1]:43411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pZDFL-0004PA-Qm for submit@debbugs.gnu.org; Mon, 06 Mar 2023 10:59:32 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43292) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pZDFJ-0004Ot-PC for 61970@debbugs.gnu.org; Mon, 06 Mar 2023 10:59:30 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pZDFD-0006p3-39; Mon, 06 Mar 2023 10:59:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=eb+HayWyhJOaH7MsDXHHg/lHnj7xhkUxpz4qlhHXQ4c=; b=IZ5Y7/pTrxYcswC/0sdm Uv5SpGFyvUnheUxTv55rLQbVfGuM9gOQ9OweAvh7YmCHIvd3sNsn9uUKooMlIm3O4QZwViUK4JKzI 4H/2q/HRxcZn0rS7y1VUGWlgMWOPv+aSlEF+CyV0fjAw/ydSHGJu9hUDfhKm/dLULrCjfJAV22K1X VykUF2FtDX7hUL+kTqaF9miLeK+WOin/TEjMZj075i/kOpZC3VpEaU9Y/jCXfs/li830JQigk52jA C1OUg+z0FhQwHEk8UkP2sHdbZ5xYArJEa+7Tgdl4hI7teIeaAm8mHRyyRyZ8fb9wvv+E4ZEbvSyTe SaK0e1k7F3eBwQ==; Received: from [193.50.110.138] (helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pZDFC-0007tn-MU; Mon, 06 Mar 2023 10:59:22 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Antero Mejr Subject: Re: [bug#61970] [PATCH] lint: Return exit code 1 if there are warnings. References: <20230304231601.13352-1-antero@mailbox.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Sextidi 16 =?utf-8?Q?Vent=C3=B4se?= an 231 de la =?utf-8?Q?R=C3=A9volution=2C?= jour de =?utf-8?Q?l'=C3=89pinard?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 06 Mar 2023 16:59:20 +0100 In-Reply-To: <20230304231601.13352-1-antero@mailbox.org> (Antero Mejr's message of "Sat, 4 Mar 2023 23:16:01 +0000") Message-ID: <87cz5lan1j.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 61970 Cc: 61970@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, Antero Mejr skribis: > * guix/scripts/lint.scm (guix-lint, run-checkers): Modify procedure. Please expound a little bit. :-) Could you also add a sentence under =E2=80=9CInvoking guix lint=E2=80=9D in= the manual? > Exiting 1 makes it a lot easier to include a "guix lint" step in external > CI pipelines. Yeah, though some lint warnings are more critical than others, and often they=E2=80=99re just warnings, which is why =E2=80=98guix lint=E2=80=99 alw= ays returned zero so far. > (define* (run-checkers package checkers #:key store) > "Run the given CHECKERS on PACKAGE." > - (let ((tty? (isatty? (current-error-port)))) > - (for-each (lambda (checker) > - (when tty? > - (format (current-error-port) "checking ~a@~a [~a]...\x= 1b[K\r" > - (package-name package) (package-version packag= e) > - (lint-checker-name checker)) > - (force-output (current-error-port))) > - (emit-warnings > - (if (lint-checker-requires-store? checker) > - ((lint-checker-check checker) package #:store store) > - ((lint-checker-check checker) package)))) > - checkers) > + (let* ((tty? (isatty? (current-error-port))) > + (results > + (map (lambda (checker) > + (when tty? > + (format (current-error-port) "checking ~a@~a [~a]...\= x1b[K\r" > + (package-name package) (package-version packa= ge) > + (lint-checker-name checker)) > + (force-output (current-error-port))) > + (let ((results (if (lint-checker-requires-store? checke= r) > + ((lint-checker-check checker) package > + #:store store) > + ((lint-checker-check checker) packag= e)))) > + (emit-warnings results) > + results)) > + checkers))) For clarity I would separate warning collection from warning printing. So: (let ((tty? =E2=80=A6) (warnings (append-map (lambda (checker) =E2=80=A6) checkers))) (for-each (lambda (warning) =E2=80=A6) warnings) (null? warnings)) ;return #t when WARNINGS is empty > + (define (null?-rec lst) > + (if (list? lst) > + (not (member #f (map null?-rec lst))) > + #f)) > + > + (if (null?-rec > + (call-maybe-with-store > + (lambda (store) > + (cond > + ((null? args) > + (fold-packages (lambda (p r) > + (cons (run-checkers p checkers > + #:store store) r)= ) '())) > + (else > + (map (lambda (package) > + (run-checkers package checkers #:store store)) > + args)))))) > + (exit 0) > + (exit 1)))))) I=E2=80=99d suggest something similar here. Could you send an updated patch? Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 24 09:26:37 2024 Received: (at 61970) by debbugs.gnu.org; 24 Jul 2024 13:26:37 +0000 Received: from localhost ([127.0.0.1]:33361 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sWc0r-00058O-AE for submit@debbugs.gnu.org; Wed, 24 Jul 2024 09:26:37 -0400 Received: from mail-wm1-f45.google.com ([209.85.128.45]:40236) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sWc0o-00058F-8t for 61970@debbugs.gnu.org; Wed, 24 Jul 2024 09:26:35 -0400 Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-427beea4ebaso8277275e9.1 for <61970@debbugs.gnu.org>; Wed, 24 Jul 2024 06:26:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721827527; x=1722432327; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=TgGYFstiwYnlOddlJHHTxrh7kks7Xk0ps+U9nsCwCXw=; b=YCOsJf0mRxr96lxBo685Q71Q9rzmHptWatOp1b+CDRWCKMKZh1Yr+pob4UUuRl+4KH KeWMRmSjSnS/MwVfpJjBsRJgdnEWn7D7w3OvnR7pdU2CLNcdUjIkAmvT4zg08PZJxBA7 rr8V7zpoUDdQk2rRJwUb+aQEpvgyNK3qEXIcu8a3UXrN2sEaDvXIw63qWh6tir33zB32 aRbNsIHW8PE7R1x34sNIDItC5dmiZ3TCmvBQXrI0tc2HZGQOjzajRRDEweF+MoBkn9f+ iX790ykLxNhRSaA3zZVKL0J5GaNvA1nVlJZswdIz4ntEAVuD1ZROQInc4ElXzu8yoOzF +FdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721827527; x=1722432327; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TgGYFstiwYnlOddlJHHTxrh7kks7Xk0ps+U9nsCwCXw=; b=RLc77kCrbepGVXOX17vSiibAquVy1/fEUHh9CQznVHbI5uHKSNdJRof+9POcFpbuhl DrLEHDK6pmGJcviIQF7hdSLeHlFE/SqOl0GmA8DYERcDWFNRfE3kBOz+D0g38RsDyzoD mhCIZnzv0KzTcpbP1nXykX3VFfdOaLUWVLhLkxHfSewUF+7JAJjwJeQ6rySCev3U42QW e3SWOw8Q4tRyC6qqTZ4TcMCqBg1MHZJZn11hA67k6DO7m73Jo7t0djAt3QEhGm+BnG2Y Argr+I7ealx6ac03tnXfBfy0psQ5vHYjh9BbFtVg4p2U04iutP0DK2bLkR/M5JaNij61 GzSw== X-Gm-Message-State: AOJu0YxbdU6BzguqGw53o/bjFXNtqWzIlGPkSjTy43NEsF3X5Bb+Aa0K E5CrdL64R3Lr/RqZmy23bsrwfz4znIrJaSssGSI4kwaV829JXEWXZlsmSw== X-Google-Smtp-Source: AGHT+IEtrnARTHUWLVKs/BvAE4aRrXWPJp9IiwR7BV5yq9YFmmigmxK6Uj/Tsgpj0XuqR/w2TIqtSQ== X-Received: by 2002:a05:600c:4f4b:b0:427:9f71:16ba with SMTP id 5b1f17b1804b1-427daa927f5mr62085435e9.5.1721827527484; Wed, 24 Jul 2024 06:25:27 -0700 (PDT) Received: from lili (2a02-8429-6820-f501-b81e-d5ec-ab76-bdf6.rev.sfr.net. [2a02:8429:6820:f501:b81e:d5ec:ab76:bdf6]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-427f937353dsm30198625e9.17.2024.07.24.06.25.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jul 2024 06:25:27 -0700 (PDT) From: Simon Tournier To: Ludovic =?utf-8?Q?Court=C3=A8s?= , Antero Mejr Subject: Re: [bug#61970] [PATCH] lint: Return exit code 1 if there are warnings. In-Reply-To: <87cz5lan1j.fsf@gnu.org> References: <20230304231601.13352-1-antero@mailbox.org> <87cz5lan1j.fsf@gnu.org> Date: Wed, 24 Jul 2024 14:49:10 +0200 Message-ID: <87ikwvdkft.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 61970 Cc: 61970@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Antero, On Mon, 06 Mar 2023 at 16:59, Ludovic Court=C3=A8s wrote: > Could you send an updated patch? Have you had the opportunity to look at Ludo=E2=80=99s comments? Cheers, simon