git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Rubén Justo" <rjusto@gmail.com>
To: Eric Sunshine <ericsunshine@charter.net>, git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
	Phillip Wood <phillip.wood123@gmail.com>,
	Kyle Lippincott <spectral@google.com>,
	Eric Sunshine <sunshine@sunshineco.com>
Subject: Re: [PATCH v2 4/5] check-non-portable-shell: suggest alternative for `VAR=val shell-func`
Date: Fri, 26 Jul 2024 15:11:34 +0200	[thread overview]
Message-ID: <9d96b89f-f4e4-49f4-aa59-2c229d3988e4@gmail.com> (raw)
In-Reply-To: <20240726081522.28015-5-ericsunshine@charter.net>

On Fri, Jul 26, 2024 at 04:15:21AM -0400, Eric Sunshine wrote:
> From: Eric Sunshine <sunshine@sunshineco.com>
> 
> Most problems reported by check-non-portable-shell are accompanied by
> advice suggesting how the test author can repair the problem. For
> instance:
> 
>     error: egrep/fgrep obsolescent (use grep -E/-F)
> 
> However, when one-shot variable assignment is detected when calling a
> shell function (i.e. `VAR=val shell-func`), the problem is reported, but
> no advice is given. The lack of advice is particularly egregious since
> neither the problem nor the workaround are likely well-known by
> newcomers to the project writing tests for the first time. Address this
> shortcoming by recommending the use of `test_env` which is tailor made
> for this specific use-case.
> 
> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
> ---
>  t/check-non-portable-shell.pl | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/t/check-non-portable-shell.pl b/t/check-non-portable-shell.pl
> index 179efaa39d..903af14294 100755
> --- a/t/check-non-portable-shell.pl
> +++ b/t/check-non-portable-shell.pl
> @@ -50,7 +50,7 @@ sub err {
>  	/\blocal\s+[A-Za-z0-9_]*=\$([A-Za-z0-9_{]|[(][^(])/ and
>  		err q(quote "$val" in 'local var=$val');
>  	/^\s*([A-Z0-9_]+=(\w*|(["']).*?\3)\s+)+(\w+)/ and exists($func{$4}) and
> -		err '"FOO=bar shell_func" is not portable';
> +		err '"FOO=bar shell_func" is not portable (use test_env FOO=bar shell_func)';

When someone blames this line in the future, the message of this commit
will appear and be informative.  However, I think the message of the
previous patch [3/5], which also touches this line, would also be
relevant for this context.  And it won't be so obvious to get to that
message.  Therefore, it might be worth combining this commit with the
previous one.  But I'm not sure the change is worth it to have a new
iteration of this series.

Anyway, the change in the err() is a convenient improvement.

>  	$line = '';
>  	# this resets our $. for each file
>  	close ARGV if eof;
> -- 
> 2.45.2
> 

  reply	other threads:[~2024-07-26 13:11 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-22  6:59 [PATCH 0/4] improve one-shot variable detection with shell function Eric Sunshine
2024-07-22  6:59 ` [PATCH 1/4] t3430: modernize one-shot "VAR=val shell-func" invocation Eric Sunshine
2024-07-22 15:09   ` Phillip Wood
2024-07-23  9:26     ` Phillip Wood
2024-07-26  6:33       ` Eric Sunshine
2024-07-26  6:15     ` Eric Sunshine
2024-07-22 18:24   ` Junio C Hamano
2024-07-26  6:30     ` Eric Sunshine
2024-07-22  6:59 ` [PATCH 2/4] t4034: fix use of one-shot variable assignment with shell function Eric Sunshine
2024-07-22  6:59 ` [PATCH 3/4] check-non-portable-shell: improve `VAR=val shell-func` detection Eric Sunshine
2024-07-22 14:46   ` Rubén Justo
2024-07-26  6:45     ` Eric Sunshine
2024-07-26 13:15       ` Rubén Justo
2024-07-22 17:26   ` Kyle Lippincott
2024-07-22 18:10     ` Junio C Hamano
2024-07-22 21:35       ` Kyle Lippincott
2024-07-22 21:57         ` Junio C Hamano
2024-07-22  6:59 ` [PATCH 4/4] check-non-portable-shell: suggest alternative for `VAR=val shell-func` Eric Sunshine
2024-07-22 14:47   ` Rubén Justo
2024-07-22 14:50 ` [PATCH 0/4] improve one-shot variable detection with shell function Rubén Justo
2024-07-26  8:15 ` [PATCH v2 0/5] " Eric Sunshine
2024-07-26  8:15   ` [PATCH v2 1/5] t3430: drop unnecessary one-shot "VAR=val shell-func" invocation Eric Sunshine
2024-07-26 18:50     ` Junio C Hamano
2024-07-26 19:32       ` Eric Sunshine
2024-07-26  8:15   ` [PATCH v2 2/5] t4034: fix use of one-shot variable assignment with shell function Eric Sunshine
2024-07-26  8:15   ` [PATCH v2 3/5] check-non-portable-shell: loosen one-shot assignment error message Eric Sunshine
2024-07-26  8:15   ` [PATCH v2 4/5] check-non-portable-shell: suggest alternative for `VAR=val shell-func` Eric Sunshine
2024-07-26 13:11     ` Rubén Justo [this message]
2024-07-26 19:31       ` Eric Sunshine
2024-07-26  8:15   ` [PATCH v2 5/5] check-non-portable-shell: improve `VAR=val shell-func` detection Eric Sunshine
2024-07-26 18:38   ` [PATCH v2 0/5] improve one-shot variable detection with shell function Junio C Hamano
2024-07-27  5:35   ` [PATCH v3 " Eric Sunshine
2024-07-27  5:35     ` [PATCH v3 1/5] t3430: drop unnecessary one-shot "VAR=val shell-func" invocation Eric Sunshine
2024-07-27  5:35     ` [PATCH v3 2/5] t4034: fix use of one-shot variable assignment with shell function Eric Sunshine
2024-07-27  5:35     ` [PATCH v3 3/5] check-non-portable-shell: loosen one-shot assignment error message Eric Sunshine
2024-07-27  5:35     ` [PATCH v3 4/5] check-non-portable-shell: suggest alternative for `VAR=val shell-func` Eric Sunshine
2024-07-27  5:35     ` [PATCH v3 5/5] check-non-portable-shell: improve `VAR=val shell-func` detection Eric Sunshine

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9d96b89f-f4e4-49f4-aa59-2c229d3988e4@gmail.com \
    --to=rjusto@gmail.com \
    --cc=ericsunshine@charter.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=phillip.wood123@gmail.com \
    --cc=spectral@google.com \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).