Skip to content

chore(deps): bump TypedDevs/bashunit from 0.40.0 to 0.50.1 - #553

Merged
carlfriedrich merged 1 commit into
mainfrom
dependabot/github_actions/TypedDevs/bashunit-0.50.1
Sep 5, 2026
Merged

carlfriedrich merged 1 commit into
mainfrom
dependabot/github_actions/TypedDevs/bashunit-0.50.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 4, 2026

Copy link
Copy Markdown
Contributor

Bumps TypedDevs/bashunit from 0.40.0 to 0.50.1.

Release notes

Sourced from TypedDevs/bashunit's releases.

0.50.1

🐛 Bug Fixes

  • tear_down_after_script runs when set_up_before_script fails, so it can release file-scoped resources acquired before the failure (#1318)
  • Under --parallel, tear_down_after_script runs after the file's own tests instead of alongside them, so a fixture it releases stays alive for the tests that read it. The same file no longer passed sequentially and failed in parallel (#1320)
  • --stop-on-failure runs tear_down_after_script for the file it halts in, so a sequential run releases what set_up_before_script acquired before the halt (#1321)
  • bashunit bench runs tear_down_after_script before it aborts on a malformed annotation, so the file releases what set_up_before_script acquired (#1322)
  • Ctrl-C runs tear_down_after_script for the file it interrupts in a sequential run, so a file-scoped resource is released. A second Ctrl-C now ends the run even if that hook never returns (#1323)
  • A test killed by --test-timeout runs its tear_down, so a per-test resource is released. Best effort within the watchdog's grace before it sends SIGKILL, so a hook cannot outlive the timeout it cleans up after (#1324)
  • A test file that fails to source sweeps its script temp files, so a bashunit::temp_file it created at top level no longer survives the run. bashunit bench already did this (#1325)
  • A malformed @timeout or @retry runs tear_down_after_script before it aborts the run, so the file releases what set_up_before_script acquired. Sequential and --parallel both leaked it (#1329)
  • Ctrl-C releases what an interrupted --parallel run acquired: the file's tear_down_after_script and the tear_down of a test in flight. The worker that owns the file's hook now handles the signal and reaches its test bodies, which a kill from the parent could not (#1331)
  • A malformed @timeout or @retry fails a --parallel run alongside a passing file. The abort happened inside the file's worker and never reached the parent, so the run printed the error and still exited 0, which kept it out of CI (#1335)

👥 Contributors

Checksum

SHA256: 18d83d590c5304f1853dd4fe4fec4ec6effbd9fe5a21831fe9f66f70afe17d93

Full Changelog: 0.50.0...0.50.1

0.50.0

✨ Improvements

  • -u as the short form of --snapshot-update, the spelling jest and vitest both use (#1293)

🛠️ Changes

  • --seed <n> now implies --random-order. Replaying a failure with the seed the header printed used to select nothing, so the run came back in defined order and green. An order named explicitly still wins, as in RSpec (#1287)
  • Performance: cold start is about 9ms faster, roughly 15%. The colour palette cost one subshell fork per colour, and every invocation paid it — --version included (#1285)
  • Performance: a --parallel run writing a report is about 1.9x faster and uses 1.8x less CPU. Each result row cost fourteen base64 forks per test, so --log-junit cost several times more than running the tests (#1289)

🐛 Bug Fixes

  • --output json and --output junit are no longer corrupted by console text on stdout, which left the document unparseable. Four sources: an empty --parallel selection (#1295), the blank line after a tear_down_after_script (#1297), the duplicate-function abort, and a --parallel worker's stderr replay (#1299)
  • --parallel reports no longer count a file-level hook failure twice. JSON, JUnit, HTML and Markdown listed it as two failed tests while the console summary of the same run said one (#1301)
  • bashunit bench exits non-zero when a benchmark file fails to source or its set_up_before_script fails. It printed the error and exited 0, so the failure never reached CI, and a syntax error silently dropped every bench_ function after it (#1303)
  • --output tap escapes # in a test description, as --report-tap already did. A failing test titled ... # SKIP ... reached the consumer as a skip and left CI silently (#1309)
  • bashunit watch no longer takes an option's value as the path it polls: watch --tag slow tests/ polled a directory named slow. Options may now appear in any position (#1291)
  • The JUnit report escapes the file path; a name holding ", & or < closed the attribute early and the document stopped parsing (#1313)
  • The Cobertura report escapes XML metacharacters in a path, so GitLab, Azure and Jenkins render coverage instead of silently showing nothing (#1311)
  • GitHub Actions annotations encode : and , in their property values; a comma in a test title ended the title there and invented a property (#1307)
  • A ``` fence in a failure message no longer truncates the --report-md summary, which is appended to `$GITHUB_STEP_SUMMARY` (#1305)

🔒 Security

  • A test file's path is no longer evaluated as shell. The per-test EXIT trap interpolated the path into the trap string, and a trap body is re-evaluated when it fires, so a filename holding a command substitution executed it — reachable by any run over a tree whose filenames someone else controls, which is what CI does with a checked-out branch. The same mangling meant such a file's assertions never ran and it was reported risky instead of failing (#1315)

🗑️ Removed

  • bashunit learn, the interactive tutorial. Nobody used it, and it was broken for most of the nine months it shipped without anyone reporting it. Learning bashunit belongs in the docs at https://bashunit.com, not in a subsystem inside the runner — which is also 6% of the distributable. Calling it now says it was removed and points there (#1256, #1258)

... (truncated)

Changelog

Sourced from TypedDevs/bashunit's changelog.

0.50.1 - 2026-08-22

Fixed

  • tear_down_after_script runs when set_up_before_script fails, so it can release file-scoped resources acquired before the failure (#1318)
  • Under --parallel, tear_down_after_script runs after the file's own tests instead of alongside them, so a fixture it releases stays alive for the tests that read it. The same file no longer passed sequentially and failed in parallel (#1320)
  • --stop-on-failure runs tear_down_after_script for the file it halts in, so a sequential run releases what set_up_before_script acquired before the halt (#1321)
  • bashunit bench runs tear_down_after_script before it aborts on a malformed annotation, so the file releases what set_up_before_script acquired (#1322)
  • Ctrl-C runs tear_down_after_script for the file it interrupts in a sequential run, so a file-scoped resource is released. A second Ctrl-C now ends the run even if that hook never returns (#1323)
  • A test killed by --test-timeout runs its tear_down, so a per-test resource is released. Best effort within the watchdog's grace before it sends SIGKILL, so a hook cannot outlive the timeout it cleans up after (#1324)
  • A test file that fails to source sweeps its script temp files, so a bashunit::temp_file it created at top level no longer survives the run. bashunit bench already did this (#1325)
  • A malformed @timeout or @retry runs tear_down_after_script before it aborts the run, so the file releases what set_up_before_script acquired. Sequential and --parallel both leaked it (#1329)
  • Ctrl-C releases what an interrupted --parallel run acquired: the file's tear_down_after_script and the tear_down of a test in flight. The worker that owns the file's hook now handles the signal and reaches its test bodies, which a kill from the parent could not (#1331)
  • A malformed @timeout or @retry fails a --parallel run alongside a passing file. The abort happened inside the file's worker and never reached the parent, so the run printed the error and still exited 0, which kept it out of CI (#1335)

0.50.0 - 2026-08-18

Added

  • -u as the short form of --snapshot-update, the spelling jest and vitest both use (#1293)

Changed

  • --seed <n> now implies --random-order. Replaying a failure with the seed the header printed used to select nothing, so the run came back in defined order and green. An order named explicitly still wins, as in RSpec (#1287)
  • Performance: cold start is about 9ms faster, roughly 15%. The colour palette cost one subshell fork per colour, and every invocation paid it — --version included (#1285)
  • Performance: a --parallel run writing a report is about 1.9x faster and uses 1.8x less CPU. Each result row cost fourteen base64 forks per test, so --log-junit cost several times more than running the tests (#1289)

Fixed

  • --output json and --output junit are no longer corrupted by console text on stdout, which left the document unparseable. Four sources: an empty --parallel selection (#1295), the blank line after a tear_down_after_script (#1297), the duplicate-function abort, and a --parallel worker's stderr replay (#1299)
  • --parallel reports no longer count a file-level hook failure twice. JSON, JUnit, HTML and Markdown listed it as two failed tests while the console summary of the same run said one (#1301)
  • bashunit bench exits non-zero when a benchmark file fails to source or its set_up_before_script fails. It printed the error and exited 0, so the failure never reached CI, and a syntax error silently dropped every bench_ function after it (#1303)
  • --output tap escapes # in a test description, as --report-tap already did. A failing test titled ... # SKIP ... reached the consumer as a skip and left CI silently (#1309)
  • bashunit watch no longer takes an option's value as the path it polls: watch --tag slow tests/ polled a directory named slow. Options may now appear in any position (#1291)
  • The JUnit report escapes the file path; a name holding ", & or < closed the attribute early and the document stopped parsing (#1313)
  • The Cobertura report escapes XML metacharacters in a path, so GitLab, Azure and Jenkins render coverage instead of silently showing nothing (#1311)
  • GitHub Actions annotations encode : and , in their property values; a comma in a test title ended the title there and invented a property (#1307)
  • A ``` fence in a failure message no longer truncates the --report-md summary, which is appended to `$GITHUB_STEP_SUMMARY` (#1305)

Security

  • A test file's path is no longer evaluated as shell. The per-test EXIT trap interpolated the path into the trap string, and a trap body is re-evaluated when it fires, so a filename holding a command substitution executed it — reachable by any run over a tree whose filenames someone else controls, which is what CI does with a checked-out branch. The same mangling meant such a file's assertions never ran and it was reported risky instead of failing (#1315)

Removed

  • bashunit learn, the interactive tutorial. Nobody used it, and it was broken for most of the nine months it shipped without anyone reporting it. Learning bashunit belongs in the docs at https://bashunit.com, not in a subsystem inside the runner — which is also 6% of the distributable. Calling it now says it was removed and points there (#1256, #1258)

0.49.0 - 2026-08-16

Added

  • --pass-with-no-tests exits 0 when a run selects no tests, for the case where that is deliberate — a CI matrix whose shards are not all populated, or a changed-files run that touched no tests. The run still reports No tests found; only the verdict changes. It does not excuse a path that is not on disk. Same flag, same spelling, as jest, vitest, Playwright and Cypress (#1263)
  • --list-tags prints the tags of the selected files, one per line, sorted and deduplicated, and runs nothing. Tags live only in # @tag comments, so a mistyped --tag had no list to check against (#1265)

Changed

  • A test or bench path that does not exist is now named and refused before the run starts, instead of the No tests found / No benchmarks found an empty selection gives. Every genuinely-empty case keeps that message: a directory holding no tests, a --filter or --tag matching nothing, an empty --shard, --changed with no changes, and a glob the shell left unexpanded (#1263)
  • A path argument that selects nothing no longer falls back to BASHUNIT_DEFAULT_PATH. bashunit empty_dir/ ran the default suite and exited 0, reporting a pass for tests the caller never named (#1263)

... (truncated)

Commits
  • 28ea63c release: 0.50.1
  • 6a80fa4 fix(runner): fail a parallel run aborted by a malformed annotation (#1337)
  • 4c5c99f fix(runner): release both teardowns when Ctrl-C stops a parallel run (#1336)
  • 40560c2 fix(runner): run the file teardown before a bad annotation aborts (#1334)
  • 3ad0704 fix: clean up script temp files on source failure (#1325) (#1326)
  • 003538a fix(runner): run tear_down for a test killed by the timeout (#1333)
  • 9ae5fba fix(runner): release the file teardown when Ctrl-C stops the run (#1332)
  • e1b9de0 fix(runner): run bench file teardown before aborting on a bad annotation (#1330)
  • 1abb624 fix(runner): release the file teardown when stop-on-failure halts (#1328)
  • f30ff74 fix(runner): run file teardown after the file's tests in parallel (#1327)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [TypedDevs/bashunit](https://github.com/typeddevs/bashunit) from 0.40.0 to 0.50.1.
- [Release notes](https://github.com/typeddevs/bashunit/releases)
- [Changelog](https://github.com/TypedDevs/bashunit/blob/main/CHANGELOG.md)
- [Commits](TypedDevs/bashunit@0.40.0...0.50.1)

---
updated-dependencies:
- dependency-name: TypedDevs/bashunit
  dependency-version: 0.50.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from wfxr as a code owner September 4, 2026 12:22
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Sep 4, 2026
@dependabot
dependabot Bot requested a review from cjappl as a code owner September 4, 2026 12:22
@dependabot dependabot Bot added the github_actions Pull requests that update GitHub Actions code label Sep 4, 2026
@carlfriedrich
carlfriedrich merged commit d7d5328 into main Sep 5, 2026
13 checks passed
@carlfriedrich
carlfriedrich deleted the dependabot/github_actions/TypedDevs/bashunit-0.50.1 branch September 5, 2026 11:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant