Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sh fully echoes commands which error exit #147

Merged
merged 2 commits into from Aug 12, 2022
Merged

Sh fully echoes commands which error exit #147

merged 2 commits into from Aug 12, 2022

Conversation

MarkDBlackwell
Copy link
Contributor

@MarkDBlackwell MarkDBlackwell commented Jul 22, 2016

CASE

FileUtils#sh truncates (to 42 characters) the echoing of failed shelled-out commands (as determined by their exit status). (BTW, even when the output is redirected to a file, it still truncates, in the same way.)

This isn't about shelled-out commands that succeed.

Why truncate the failed ones, anyhow? (And why to 42 characters?) What's the reason or rationale?

Every user wants to know (presumably) exactly which failed command their program was unable to handle, in order to obtain help to make their program work.

Passing a block to FileUtils#sh can avoid echoing any failed command, easily. So, any wish to provide some facility to avoid excessive echoing doesn't fully seem to justify this truncation.

This truncation of failed commands seems devoid of test coverage (because, if I comment this out, all tests still pass).

(BTW, the truncation seems related to ENV['RAKE_COLUMNS'], @terminal_columns, terminal_width(), and truncate_output?().)

If a program contains long shell commands (which incorporate fully-qualified paths), and if one of them fails, then 42 characters seems unhelpful.

I've been using a program which runs various program-generation recipes. Relatively unsophisticated people use it. It's (arguably) a good representative of a whole category of programs using Rake's FileUtils#sh.

Usually, when the program I'm using fails (because of external circumstances), the users don't rerun the program with --trace (despite Rake's recommendation—perhaps because the program is long-running) but instead simply submit the output as they first received it. And they themselves can't see the full, shelled-out command.

As a result, typically the (relatively newby) users aren't submitting the full details of the generated, failed shelled-out commands in their error reports—far from it. At that point, we typically ask them to rerun the program with --trace. Typically this delays our troubleshooting by one or more email cycles, or in some cases even blocks our users (they give up).

PLAN

Of course, I believe the program I'm using (and others like it—see above) should continue to use FileUtils#sh, yet (somehow) I'd like to influence this 42-character truncation.

I'd like to remove it.

Even if the truncation were to remain, then I'd like to be able to configure the 42 programmatically, perhaps with a Rake constant. Perhaps 0 (zero) could mean: don't truncate the command at all (for example).

For this purpose, a Rake command-line option would not be useful, because already the (relatively newby) users (of programs like the one mentioned above) don't use --trace.

Instead, because the relevant, shelled-out commands have failed, I believe they should be echoed in their entirety in any case. Does that make sense?

This pull request accomplishes this last goal. And it includes new tests to cover it.

HISTORY

2005-04-09 7:41:05 "updated changes" commit 5a3950d (toward Rake 0.5.3, and apparently referring to the later 7:41:07 change). File rake/CHANGES says "Fixed verbose flag bug in the testing task. Shortened some failure messages."

2005-04-09 7:41:07 "shortened error on task failure" commit f022aee. File rake/lib/rake.rb began truncating echoed failed commands to 42 characters.

2005-04-09 8:43 "updated documentation" commit cdd66db. File rake/doc/release_notes/rake-0.5.3.rdoc says "Fixed the verbose flag in the TestTask so that the test code is controlled by the flag. Also shortened up some failure messages. (Thanks to Tobias Luetke for the suggestion.)" (BTW, I believe this is @tobi.)

2006-08-12 "removed nested directory from CVS conversion" commit 8f9da2e (toward Rake 0.7.1.3). Renamed file rake/lib/rake.rb to lib/rake.rb.

2007-03-31 "added existing and existing! methods to FileList" commit 0c5500a (toward Rake 0.7.3). File lib/rake.rb began appending "..." always to echoed, failed commands (even to short ones). It also added a TODO, apparently for further investigation. The TODO includes the mysterious abbreviation "heref" (perhaps meaning "heretofore").

2009-03-06 "show all of the sh command if in trace mode" commit 14a4c32 (toward Rake 0.8.4.99). Initiated truncation unless in trace mode.

2009-03-28 "moved FileList to a separate file" commit 0d4416e (toward Rake 0.8.5). Created file lib/rake/file_utils.rb, and moved method sh to it (from lib/rake.rb).

2009-05-24 22:45 "fixed problem with :verbose=>false in sh and ruby commands" commit 6afd6fa (toward Rake 0.8.99.1). (This doesn't tell us much.)

2009-05-24 23:05 "refactoring the sh command a bit" commit 5f52524. File lib/rake/file_utils.rb removed the TODO; the relevant code was moved to a new private method create_shell_command, which still truncates failed command echoing to 42 characters.

2009-05-24 23:12 "changed nomenclature from shell_command to shell_runner" commit 2865311. Changed the method name to (the current) create_shell_runner.


def error_exit_status
@error_exit_status ||= begin
# TODO: over all Rubies and operating systems, determine whether
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Who is going to do this TODO?

If exit behavior isn't going to be checked before merge just delete this comment.

@drbrain
Copy link
Member

drbrain commented Jul 22, 2016

I like this idea.

I think a better implementation would be to print out the short command always as-is, then print out the full command again upon failure. If your terminal scroll back is limited the full command may have scrolled off the screen, so printing it again in the failure method would be the best way to ensure it shows up in your error reports.

PS: One other problem with rake printing out the command line is that it is not safe to cut and paste back into a shell line because it doesn't apply quoting.

@MarkDBlackwell
Copy link
Contributor Author

MarkDBlackwell commented Jul 23, 2016

I've addressed the review points.

I think a better implementation would be to print out the short command always as-is, then print out the full command again upon failure.

Currently, I'd suppose something in Rake already echoes commands given to sh before their execution when --trace is enabled. The particular program (on which I'm working) doesn't default to --trace.

One other problem with rake printing out the command line is that it is not safe to cut and paste back into a shell line because it doesn't apply quoting.

I noticed a distinction between single strings and multiple strings being passed to FileUtils#sh, like with Ruby's Kernel#system.

With both, in the case of multiple parameters, the first parameter is a program, and the shell isn't invoked. This causes the problem you mention (I think).

The program I'm working with always sends single strings to FileUtils#sh, thus the commands go to the shell. Of course, they're already shell-escaped, or they wouldn't work.

@drbrain
Copy link
Member

drbrain commented Jul 24, 2016

I've addressed the review points.

Thanks, I'll check them later

I think a better implementation would be to print out the short command always as-is, then print out the full command again upon failure.

Currently, I'd suppose something in Rake already echoes commands given to sh before their execution when --trace is enabled. The particular program (on which I'm working) doesn't default to --trace.

Yeah, I think it's down in the verbose option (I worked on it a bit ago to allow sh to take the same keyword arguments as Kernel#system and Process#spawn). The "always as-is" above should have been written "as rake behaves presently".

With both, in the case of multiple parameters, the first parameter is a program, and the shell isn't invoked. This causes the problem you mention (I think).

Yes.

The program I'm working with always sends single strings to FileUtils#sh, thus the commands go to the shell. Of course, they're already shell-escaped, or they wouldn't work.

Yes. I don't expect it to be fixed here, just wanted to note it in case you decide to use the other way some time in the future.

@MarkDBlackwell
Copy link
Contributor Author

MarkDBlackwell commented Jul 24, 2016

One other problem with rake printing out the command line is that it is not safe to cut and paste back into a shell line because it doesn't apply quoting.

I noticed a distinction between single strings and multiple strings being passed to FileUtils#sh, like with Ruby's Kernel#system.

With both, in the case of multiple parameters, the first parameter is a program, and the shell isn't invoked. This causes the problem you mention (I think).

Yes. I don't expect it to be fixed here, just wanted to note it in case you decide to use the other way some time in the future.

Apparently, a long list of Ruby methods work in this Perlish way.

(That list seems to comprise: IO::popen, Kernel#exec, Kernel#spawn, Kernel#system, Open3#capture2, Open3#capture2e, Open3#capture3, Open3#pipeline, Open3#pipeline_r, Open3#pipeline_rw, Open3#pipeline_start, Open3#pipeline_w, Open3#popen2, Open3#popen2e, Open3#popen3, PTY::spawn, Process::spawn, and Shell::CommandProcessor#system. This is based on @jstorimer's article Process spawning patterns, section "Starting somewhere".) Whew!

Of course, Rake is capable of echoing any shelled-out command, even when it succeeds—I think this happens with --verbose. This PR only addresses the case when a command fails.

Anyway, I wonder what the general Ruby convention is (beyond Rake) for echoing or logging such commands, when they are passed as multiple string arguments, to any of the above list of methods.

Perhaps, conceivably, people print some indication of the fact that there are multiple arguments, and then echo or log the arguments in separate lines.

More probably, I would guess, people generally shell-escape these multiple strings with Shellwords#shelljoin (or something similar) before combining them into a single string, and then echoing or logging them in a single line.

I notice the relevant method sh_show_command doesn't follow the Shellwords#shelljoin approach for printing multiple string arguments; perhaps it would work.

If handled in that way, then an erroneous command, as printed, would be pasteable into the user's shell (so problems potentially could be troubleshot by the user, by easily repeating the command).

@MarkDBlackwell
Copy link
Contributor Author

MarkDBlackwell commented Aug 26, 2016

One other problem with rake printing out the command line is that it is not safe to cut and paste back into a shell line

I don't expect it to be fixed here

When you say, "not safe," do you mean merely that it won't work? Or does some issue of security arise?

I suppose the proper solution includes assembling multiple sh arguments in such a way that if the result is printed, a user can paste that into a Bourne shell line, and it will work the same way.

Since Bash (and many other shells) are upwardly compatible with Bourne, then they should work, too (of course).

To summarize, this PR covers the single-string calls to sh.

It doesn't shell-escape multiple string arguments to sh before printing them. It prints them out, all in one big line.

Before this PR, multiple string arguments are printed the same way, but are cut to 42 characters, with '...' invariably added. That doesn't stop some short multiple string arguments from being printed out fully (in effect), of course.

BTW, if sh is passed a single string argument, this string already must be shell-escaped (in effect) in order to work. Therefore, if users paste such a printed string (which has been passed to sh), this should work well.

Again, does a potential security issue exist here?

If so, then solving it should be included in this PR.

To put it more fully, regarding the issue of properly merging (before printing) multiple string arguments passed to sh: can this safely be left for some other pull request to handle (including tests)?

@drbrain
Copy link
Member

drbrain commented Aug 26, 2016

With this rakefile:

task :default do
  sh 'echo', '; rm -rf .'
end

when run:

$ rake
echo ; rm -rf .
; rm -rf .

You see echo; rm -rf . as a log line. Copy-pasting it:

$ echo ; rm -rf .

rm: "." and ".." may not be removed

@drbrain
Copy link
Member

drbrain commented Aug 26, 2016

When you say, "not safe," do you mean merely that it won't work?

It will depend on the command, some won't work, some will do wrong things.

Or does some issue of security arise?

It is possible, but only when the user copy-pastes rake's log line. I think rake can do better, but I don't think this is CVE-worthy.

I suppose the proper solution includes assembling multiple sh arguments in such a way that if the result is printed, a user can paste that into a Bourne shell line, and it will work the same way.

Since Bash (and many other shells) are upwardly compatible with Bourne, then they should work, too (of course).

Yes. Or into a Windows shell if they're running on Windows.

To summarize, this PR covers the single-string calls to sh.

[…]

Again, does a potential security issue exist here?

For this PR, no, thus "I don't expect it to be fixed here" because it's a separate issue. I'm sorry it caused confusion.

To put it more fully, regarding the issue of properly merging (before printing) multiple string arguments passed to sh: can this safely be left for some other pull request to handle (including tests)?

Yes, and it should.

@MarkDBlackwell
Copy link
Contributor Author

left for some other pull request to handle (including tests)?

Yes, and it should.

Understood. :)

Just as a side comment: IMO good human-engineered log output from sh 'echo', '; rm -rf .' (to discourage people from pasting) perhaps might be:

NOT SHELL: "echo"  "; rm -rf ."

@hsbt
Copy link
Member

hsbt commented Jan 6, 2017

I'm no opinion for this proposal.

@drbrain Can you handle this?

@deivid-rodriguez
Copy link
Contributor

Hi, I just got bit by this and I believe it good be a good change 👍. It seems like the PR was ready to go at the time?

@deivid-rodriguez
Copy link
Contributor

I tried to clone hoe and run its test suite. This is what I got:

$ rake
Run options: --seed 1581

# Running:

............................rake aborted!
Command failed with status (1): [/home/deivid/.rbenv/versions/2.7.2/bin/rub...]
/home/deivid/Code/hoe/lib/minitest/test_task.rb:164:in `block in define'
Tasks: TOP => default => test
(See full trace by running task with --trace)

Then I installed the rake version from this PR, and this is what I got:

$ rake
Run options: --seed 61814

# Running:

S.rake aborted!
Command failed with status (1): [/home/deivid/.rbenv/versions/2.7.2/bin/ruby -Ilib:test:. -w -e "require 'minitest/autorun'; require 'test/test_hoe_test.rb'; require 'test/test_hoe_gemcutter.rb'; require 'test/test_hoe_test.rb'; require 'test/test_hoe_publish.rb'; require 'test/test_hoe_debug.rb'; require 'test/test_hoe_package.rb'; require 'test/test_hoe.rb'" -- ]
/home/deivid/Code/hoe/lib/minitest/test_task.rb:164:in `block in define'
Tasks: TOP => default => test
(See full trace by running task with --trace)

Seems better, no?

@deivid-rodriguez
Copy link
Contributor

It's been 4 years so I think it's safe to assume @drbrain won't handle this 😅. I think this trimming of commands at 42 characters is arbitrary and not helpful so I advocate for removing it.

@deivid-rodriguez
Copy link
Contributor

@hsbt Can you reevaluate this proposal? Don't want to put any pressure of course, just put it under your radar! Thank you ❤️

@hsbt hsbt merged commit 0157758 into ruby:master Aug 12, 2022
@hsbt
Copy link
Member

hsbt commented Aug 12, 2022

@deivid-rodriguez Thanks for your reminder. This change seems usefule to debug.

@deivid-rodriguez
Copy link
Contributor

Indeed, thank you @hsbt!

xjunior pushed a commit to powerhome/power-tools that referenced this pull request Oct 30, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
| [`6.8.0` ->
`6.9.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.8.0/6.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.8.0/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.8.0/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
| [`6.8.0` ->
`6.9.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.8.0/6.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.8.0/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.8.0/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [rake](https://togithub.com/ruby/rake)
([changelog](https://togithub.com/ruby/rake/blob/v13.0.6/History.rdoc))
| `13.0.6` -> `13.1.0` |
[![age](https://developer.mend.io/api/mc/badges/age/rubygems/rake/13.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/rubygems/rake/13.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/rubygems/rake/13.0.6/13.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/rubygems/rake/13.0.6/13.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.9.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#690-2023-10-23)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.8.0...v6.9.0)

##### Bug Fixes

- **eslint-plugin:** \[no-confusing-void-expression] handle unfixable
cases
([#&#8203;7674](https://togithub.com/typescript-eslint/typescript-eslint/issues/7674))
([7e52f27](https://togithub.com/typescript-eslint/typescript-eslint/commit/7e52f276ed5b8b2c0b76be02cb2e8a77892c10f2))
- **eslint-plugin:** \[no-unsafe-return] allow returning anything if
explicitly returning any
([#&#8203;7708](https://togithub.com/typescript-eslint/typescript-eslint/issues/7708))
([c6124b2](https://togithub.com/typescript-eslint/typescript-eslint/commit/c6124b2c93a53f11471cce8054388dec7a58f90b))

##### Features

- **eslint-plugin:** \[max-params] don't count `this: void` parameter
([#&#8203;7696](https://togithub.com/typescript-eslint/typescript-eslint/issues/7696))
([6398d3f](https://togithub.com/typescript-eslint/typescript-eslint/commit/6398d3fd0a576d8cdc957ec1b57929acacc60ba0)),
closes
[#&#8203;7538](https://togithub.com/typescript-eslint/typescript-eslint/issues/7538)
- **eslint-plugin:** \[naming-convention] add support for default and
namespace imports
([#&#8203;7269](https://togithub.com/typescript-eslint/typescript-eslint/issues/7269))
([bb15aae](https://togithub.com/typescript-eslint/typescript-eslint/commit/bb15aae877ae260f59aa5e6cfc338b1eefc6d85c))
- **eslint-plugin:** \[no-restricted-imports] support import = require
([#&#8203;7709](https://togithub.com/typescript-eslint/typescript-eslint/issues/7709))
([4c8edcf](https://togithub.com/typescript-eslint/typescript-eslint/commit/4c8edcfb7d3cc02d07d2329c87da4377c1cbf969))
- **eslint-plugin:** \[no-unsafe-enum-comparison] add switch suggestion
([#&#8203;7691](https://togithub.com/typescript-eslint/typescript-eslint/issues/7691))
([53d5263](https://togithub.com/typescript-eslint/typescript-eslint/commit/53d5263cee8e0b5ddc5de3321d27559c196e5b58)),
closes
[#&#8203;7643](https://togithub.com/typescript-eslint/typescript-eslint/issues/7643)
- **eslint-plugin:** \[prefer-readonly] private fields support
([#&#8203;7686](https://togithub.com/typescript-eslint/typescript-eslint/issues/7686))
([0e875bf](https://togithub.com/typescript-eslint/typescript-eslint/commit/0e875bf77a9d94dc74924245fabc36c0ae780977))

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.9.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#690-2023-10-23)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.8.0...v6.9.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>ruby/rake (rake)</summary>

### [`v13.1.0`](https://togithub.com/ruby/rake/releases/tag/v13.1.0)

[Compare
Source](https://togithub.com/ruby/rake/compare/v13.0.6...v13.1.0)

#### What's Changed

- Added dependabot.yml for actions by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#416
- Add Ruby 3.1 to the CI matrix by
[@&#8203;petergoldstein](https://togithub.com/petergoldstein) in
[ruby/rake#415
- (Performance) Remove unnecessary I/O syscalls for FileTasks by
[@&#8203;da2x](https://togithub.com/da2x) in
[ruby/rake#393
- Skip test failure with JRuby by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#418
- Bump actions/checkout from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#417
- Remove bin/rdoc by [@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#421
- Remove bin/rake by [@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#422
- Remove bin/bundle by [@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#425
- Apply RuboCop linting for Ruby 2.3 by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#423
- Update rubocop to work with Ruby 2.4 compatible by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#424
- chore: fix typo in comments by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#429
- Use 'test' as workflow name on Actions by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#427
- docs: update CONTRIBUTING.rdoc by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#428
- Add RuboCop job to Actions by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#426
- Lock minitest-5.15.0 for Ruby 2.2 by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#442
- Eagerly require set in thread_pool.rb by
[@&#8203;jeremyevans](https://togithub.com/jeremyevans) in
[ruby/rake#440
- Avoid creating an unnecessary thread pool by
[@&#8203;jeremyevans](https://togithub.com/jeremyevans) in
[ruby/rake#441
- Add credit for maintenance in Rake 12/13 by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#443
- Sh fully echoes commands which error exit by
[@&#8203;MarkDBlackwell](https://togithub.com/MarkDBlackwell) in
[ruby/rake#147
- Correct RuboCop offenses by
[@&#8203;deivid-rodriguez](https://togithub.com/deivid-rodriguez) in
[ruby/rake#444
- \[StepSecurity] ci: Harden GitHub Actions by
[@&#8203;step-security-bot](https://togithub.com/step-security-bot) in
[ruby/rake#450
- Bump ruby/setup-ruby from 1.126.0 to 1.127.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#453
- Bump actions/checkout from 3.1.0 to 3.2.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#454
- Bump ruby/setup-ruby from 1.127.0 to 1.131.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#457
- Add ruby 3.2 to test matrix by
[@&#8203;hanneskaeufler](https://togithub.com/hanneskaeufler) in
[ruby/rake#458
- Bump ruby/setup-ruby from 1.131.0 to 1.133.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#459
- Bump actions/checkout from 3.2.0 to 3.3.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#463
- Bump ruby/setup-ruby from 1.133.0 to 1.133.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#462
- Bump ruby/setup-ruby from 1.133.1 to 1.133.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#464
- Bump ruby/setup-ruby from 1.133.2 to 1.134.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#466
- Missing 'do' on example by [@&#8203;zzak](https://togithub.com/zzak)
in
[ruby/rake#467
- Try to use dependabot automerge by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#470
- Rewrite auto-merge feature for dependabot by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#471
- Bump ruby/setup-ruby from 1.134.0 to 1.137.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#469
- Update bundler in Dependabot by
[@&#8203;ono-max](https://togithub.com/ono-max) in
[ruby/rake#472
- Bump ruby/setup-ruby from 1.137.2 to 1.138.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#473
- Update minitest requirement from 5.15.0 to 5.17.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#474
- Fix grammar in help text by
[@&#8203;mebezac](https://togithub.com/mebezac) in
[ruby/rake#381
- Try to use ruby/ruby/.github/workflows/ruby_versions.yml@master by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#475
- Bump lewagon/wait-on-check-action from 1.2.0 to 1.3.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#476
- Use GitHub Pages Action for generating rdoc page by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#477
- Bump ruby/setup-ruby from 1.138.0 to 1.143.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#478
- Update minitest requirement from 5.17.0 to 5.18.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#479
- Bump ruby/setup-ruby from 1.143.0 to 1.144.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#480
- Bump ruby/setup-ruby from 1.144.0 to 1.144.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#482
- Bump actions/deploy-pages from 1 to 2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#481
- Bump ruby/setup-ruby from 1.144.1 to 1.144.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#484
- Update rubocop requirement from ~> 1.12.1 to ~> 1.48.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#485
- Bump ruby/setup-ruby from 1.144.2 to 1.145.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#487
- Update rubocop requirement from ~> 1.48.1 to ~> 1.49.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#488
- Support `#detailed_message` when task failed by
[@&#8203;ksss](https://togithub.com/ksss) in
[ruby/rake#486
- Debug at stop when task fail by
[@&#8203;ksss](https://togithub.com/ksss) in
[ruby/rake#489
- Drop to support Ruby 2.2 by [@&#8203;hsbt](https://togithub.com/hsbt)
in
[ruby/rake#492
- Bump ruby/setup-ruby from 1.145.0 to 1.146.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#491
- Update rubocop requirement from ~> 1.49.0 to ~> 1.50.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#493
- Bump up setup-ruby by [@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#497
- Bump ruby/setup-ruby from 1.148.0 to 1.149.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#498
- Update rubocop requirement from ~> 1.50.1 to ~> 1.51.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#499
- Bump ruby/setup-ruby from 1.149.0 to 1.150.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#500
- Update rubocop requirement from ~> 1.51.0 to ~> 1.52.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#502
- Bump ruby/setup-ruby from 1.150.0 to 1.151.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#503
- Update development dependencies by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#505
- Bump ruby/setup-ruby from 1.151.0 to 1.152.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#506
- Bump actions/upload-pages-artifact from 1 to 2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#508
- Bump actions/checkout from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#513
- Bump ruby/setup-ruby from 1.152.0 to 1.153.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#514
- Bump actions/checkout from 4.0.0 to 4.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#516
- Bump ruby/setup-ruby from 1.153.0 to 1.154.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#517
- Bump ruby/setup-ruby from 1.154.0 to 1.155.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#518
- Bump ruby/setup-ruby from 1.155.0 to 1.156.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#519
- Bump actions/checkout from 4.1.0 to 4.1.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#520
- Bump ruby/setup-ruby from 1.156.0 to 1.157.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#521

#### New Contributors

- [@&#8203;petergoldstein](https://togithub.com/petergoldstein) made
their first contribution in
[ruby/rake#415
- [@&#8203;da2x](https://togithub.com/da2x) made their first
contribution in
[ruby/rake#393
- [@&#8203;dependabot](https://togithub.com/dependabot) made their first
contribution in
[ruby/rake#417
- [@&#8203;tnir](https://togithub.com/tnir) made their first
contribution in
[ruby/rake#421
- [@&#8203;step-security-bot](https://togithub.com/step-security-bot)
made their first contribution in
[ruby/rake#450
- [@&#8203;hanneskaeufler](https://togithub.com/hanneskaeufler) made
their first contribution in
[ruby/rake#458
- [@&#8203;ono-max](https://togithub.com/ono-max) made their first
contribution in
[ruby/rake#472
- [@&#8203;mebezac](https://togithub.com/mebezac) made their first
contribution in
[ruby/rake#381
- [@&#8203;ksss](https://togithub.com/ksss) made their first
contribution in
[ruby/rake#486

**Full Changelog**:
ruby/rake@v13.0.6...v13.1.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/powerhome/power-tools).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
xjunior pushed a commit to powerhome/audiences that referenced this pull request Oct 30, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rake](https://togithub.com/ruby/rake)
([changelog](https://togithub.com/ruby/rake/blob/v13.0.6/History.rdoc))
| `13.0.6` -> `13.1.0` |
[![age](https://developer.mend.io/api/mc/badges/age/rubygems/rake/13.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/rubygems/rake/13.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/rubygems/rake/13.0.6/13.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/rubygems/rake/13.0.6/13.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>ruby/rake (rake)</summary>

### [`v13.1.0`](https://togithub.com/ruby/rake/releases/tag/v13.1.0)

[Compare
Source](https://togithub.com/ruby/rake/compare/v13.0.6...v13.1.0)

#### What's Changed

- Added dependabot.yml for actions by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#416
- Add Ruby 3.1 to the CI matrix by
[@&#8203;petergoldstein](https://togithub.com/petergoldstein) in
[ruby/rake#415
- (Performance) Remove unnecessary I/O syscalls for FileTasks by
[@&#8203;da2x](https://togithub.com/da2x) in
[ruby/rake#393
- Skip test failure with JRuby by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#418
- Bump actions/checkout from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#417
- Remove bin/rdoc by [@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#421
- Remove bin/rake by [@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#422
- Remove bin/bundle by [@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#425
- Apply RuboCop linting for Ruby 2.3 by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#423
- Update rubocop to work with Ruby 2.4 compatible by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#424
- chore: fix typo in comments by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#429
- Use 'test' as workflow name on Actions by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#427
- docs: update CONTRIBUTING.rdoc by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#428
- Add RuboCop job to Actions by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#426
- Lock minitest-5.15.0 for Ruby 2.2 by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#442
- Eagerly require set in thread_pool.rb by
[@&#8203;jeremyevans](https://togithub.com/jeremyevans) in
[ruby/rake#440
- Avoid creating an unnecessary thread pool by
[@&#8203;jeremyevans](https://togithub.com/jeremyevans) in
[ruby/rake#441
- Add credit for maintenance in Rake 12/13 by
[@&#8203;tnir](https://togithub.com/tnir) in
[ruby/rake#443
- Sh fully echoes commands which error exit by
[@&#8203;MarkDBlackwell](https://togithub.com/MarkDBlackwell) in
[ruby/rake#147
- Correct RuboCop offenses by
[@&#8203;deivid-rodriguez](https://togithub.com/deivid-rodriguez) in
[ruby/rake#444
- \[StepSecurity] ci: Harden GitHub Actions by
[@&#8203;step-security-bot](https://togithub.com/step-security-bot) in
[ruby/rake#450
- Bump ruby/setup-ruby from 1.126.0 to 1.127.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#453
- Bump actions/checkout from 3.1.0 to 3.2.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#454
- Bump ruby/setup-ruby from 1.127.0 to 1.131.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#457
- Add ruby 3.2 to test matrix by
[@&#8203;hanneskaeufler](https://togithub.com/hanneskaeufler) in
[ruby/rake#458
- Bump ruby/setup-ruby from 1.131.0 to 1.133.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#459
- Bump actions/checkout from 3.2.0 to 3.3.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#463
- Bump ruby/setup-ruby from 1.133.0 to 1.133.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#462
- Bump ruby/setup-ruby from 1.133.1 to 1.133.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#464
- Bump ruby/setup-ruby from 1.133.2 to 1.134.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#466
- Missing 'do' on example by [@&#8203;zzak](https://togithub.com/zzak)
in
[ruby/rake#467
- Try to use dependabot automerge by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#470
- Rewrite auto-merge feature for dependabot by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#471
- Bump ruby/setup-ruby from 1.134.0 to 1.137.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#469
- Update bundler in Dependabot by
[@&#8203;ono-max](https://togithub.com/ono-max) in
[ruby/rake#472
- Bump ruby/setup-ruby from 1.137.2 to 1.138.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#473
- Update minitest requirement from 5.15.0 to 5.17.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#474
- Fix grammar in help text by
[@&#8203;mebezac](https://togithub.com/mebezac) in
[ruby/rake#381
- Try to use ruby/ruby/.github/workflows/ruby_versions.yml@master by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#475
- Bump lewagon/wait-on-check-action from 1.2.0 to 1.3.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#476
- Use GitHub Pages Action for generating rdoc page by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#477
- Bump ruby/setup-ruby from 1.138.0 to 1.143.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#478
- Update minitest requirement from 5.17.0 to 5.18.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#479
- Bump ruby/setup-ruby from 1.143.0 to 1.144.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#480
- Bump ruby/setup-ruby from 1.144.0 to 1.144.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#482
- Bump actions/deploy-pages from 1 to 2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#481
- Bump ruby/setup-ruby from 1.144.1 to 1.144.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#484
- Update rubocop requirement from ~> 1.12.1 to ~> 1.48.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#485
- Bump ruby/setup-ruby from 1.144.2 to 1.145.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#487
- Update rubocop requirement from ~> 1.48.1 to ~> 1.49.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#488
- Support `#detailed_message` when task failed by
[@&#8203;ksss](https://togithub.com/ksss) in
[ruby/rake#486
- Debug at stop when task fail by
[@&#8203;ksss](https://togithub.com/ksss) in
[ruby/rake#489
- Drop to support Ruby 2.2 by [@&#8203;hsbt](https://togithub.com/hsbt)
in
[ruby/rake#492
- Bump ruby/setup-ruby from 1.145.0 to 1.146.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#491
- Update rubocop requirement from ~> 1.49.0 to ~> 1.50.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#493
- Bump up setup-ruby by [@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#497
- Bump ruby/setup-ruby from 1.148.0 to 1.149.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#498
- Update rubocop requirement from ~> 1.50.1 to ~> 1.51.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#499
- Bump ruby/setup-ruby from 1.149.0 to 1.150.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#500
- Update rubocop requirement from ~> 1.51.0 to ~> 1.52.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#502
- Bump ruby/setup-ruby from 1.150.0 to 1.151.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#503
- Update development dependencies by
[@&#8203;hsbt](https://togithub.com/hsbt) in
[ruby/rake#505
- Bump ruby/setup-ruby from 1.151.0 to 1.152.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#506
- Bump actions/upload-pages-artifact from 1 to 2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#508
- Bump actions/checkout from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#513
- Bump ruby/setup-ruby from 1.152.0 to 1.153.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#514
- Bump actions/checkout from 4.0.0 to 4.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#516
- Bump ruby/setup-ruby from 1.153.0 to 1.154.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#517
- Bump ruby/setup-ruby from 1.154.0 to 1.155.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#518
- Bump ruby/setup-ruby from 1.155.0 to 1.156.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#519
- Bump actions/checkout from 4.1.0 to 4.1.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#520
- Bump ruby/setup-ruby from 1.156.0 to 1.157.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[ruby/rake#521

#### New Contributors

- [@&#8203;petergoldstein](https://togithub.com/petergoldstein) made
their first contribution in
[ruby/rake#415
- [@&#8203;da2x](https://togithub.com/da2x) made their first
contribution in
[ruby/rake#393
- [@&#8203;dependabot](https://togithub.com/dependabot) made their first
contribution in
[ruby/rake#417
- [@&#8203;tnir](https://togithub.com/tnir) made their first
contribution in
[ruby/rake#421
- [@&#8203;step-security-bot](https://togithub.com/step-security-bot)
made their first contribution in
[ruby/rake#450
- [@&#8203;hanneskaeufler](https://togithub.com/hanneskaeufler) made
their first contribution in
[ruby/rake#458
- [@&#8203;ono-max](https://togithub.com/ono-max) made their first
contribution in
[ruby/rake#472
- [@&#8203;mebezac](https://togithub.com/mebezac) made their first
contribution in
[ruby/rake#381
- [@&#8203;ksss](https://togithub.com/ksss) made their first
contribution in
[ruby/rake#486

**Full Changelog**:
ruby/rake@v13.0.6...v13.1.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/powerhome/audiences).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants