Skip to content

Release Notes

brush v0.2.22

🚀 Release Notes

This release contains a few focused changes and dependency upgrades.

Notable changes:

  • Added initial (optional) miette integration for improved error messages. (Thanks to @lu-zero for making this happen!)
  • Resolved some warnings and errors with the experimental Windows build of brush. (Thanks to @twz123 for identifying issues with the homedir crate!)
  • Excluded from history commands executed by bind bindings.

🗒️ Details

  • fix: exclude bind-bound commands from history by @reubeno in #650
  • build(deps): bump the cargo group with 4 updates by @dependabot[bot] in #654
  • build(deps): bump the github-actions group with 5 updates by @dependabot[bot] in #655
  • Add minimal miette support by @lu-zero in #648
  • fix(cmdline): improve error handling for unknown cmdline options by @reubeno in #656
  • docs: update readme by @reubeno in #657
  • build(deps): bump the github-actions group with 7 updates by @dependabot[bot] in #658
  • build(deps): bump the cargo group with 4 updates by @dependabot[bot] in #659
  • chore: additional clippy fixes by @reubeno in #661
  • chore: downgrade homedir by @reubeno in #662
  • chore: address warnings on windows targets by @reubeno in #663
  • build(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 in the cargo group by @dependabot[bot] in #664
  • chore: prepare release by @reubeno in #665

Full Changelog: brush-shell-v0.2.21...brush-shell-v0.2.22

brush-parser-v0.2.20

chore: Release package brush-parser version 0.2.20

brush-interactive-v0.2.22

chore: Release package brush-interactive version 0.2.22

brush-core-v0.3.5

chore: Release package brush-core version 0.3.5

brush v0.2.21

🚀 Release Notes

This release contains several bug fixes to improve compatibility with bash, as well as some feature work focused on command history. We are now also publishing more complete license notices along with the binaries we release on GitHub.

Notable features and fixes:

  • Implemented history builtin! This has been in the works for a while, but we saw it reach stability during this release cycle.
  • Resolved a handful of issues discovered by users trying to run Arch's makepkg script under brush, including some missing functionality in brace expansion and arithmetic expression parsing. (Thanks to @theoparis for finding and reporting these!)
  • Resolved panics occurring with strings containing multi-byte characters. (Thanks to @colindean for catching and root-causing these!)
  • Adds support for (<"$file") special-case supported by bash.

Notable installation improvements:

  • brush is now installable via homebrew! (Thanks to @colindean for updating our readme with instructions.)
  • brush is installable (more officially) from Arch! (Thanks to @roland-5 for readme updates on that.)

🗒️ Details

  • fix(ci): correct CD workflow run name by @reubeno in #603
  • build(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #605
  • Arch Linux - update installation instruction by @roland-5 in #604
  • fix: prepare tests to run against bash-5.3 by @reubeno in #610
  • build(deps): bump the github-actions group across 1 directory with 4 updates by @dependabot[bot] in #611
  • build(deps): bump the cargo group across 1 directory with 5 updates by @dependabot[bot] in #609
  • build(deps): bump the cargo group with 3 updates by @dependabot[bot] in #612
  • build(deps): bump the cargo group with 2 updates by @dependabot[bot] in #613
  • build(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #617
  • build(deps): bump tokio from 1.46.1 to 1.47.0 in the cargo group by @dependabot[bot] in #616
  • build(deps): bump the cargo group with 2 updates by @dependabot[bot] in #619
  • build(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #620
  • build(deps): bump the cargo group with 2 updates by @dependabot[bot] in #621
  • feat(history): implement history builtin by @reubeno in #599
  • ci: publish license notices by @reubeno in #622
  • chore: update dependencies by @reubeno in #623
  • fix(parser): resolve issue with parser confusing subshell for arith expr by @reubeno in #624
  • fix(expansion): support broader set of nested brace expansions by @reubeno in #625
  • fix(unset): correct unset of associative array element by @reubeno in #626
  • build(deps): bump indenter from 0.3.3 to 0.3.4 in the cargo group by @dependabot[bot] in #627
  • build(deps): bump the github-actions group with 7 updates by @dependabot[bot] in #628
  • fix(declare): refine varname validation by @reubeno in #629
  • fix: hyphenated script args by @reubeno in #630
  • fix: special case for command subst by @reubeno in #632
  • chore: update lock file by @reubeno in #633
  • chore: remove unused import from python script by @reubeno in #634
  • ci: pin rust-toolchain tasks by @reubeno in #635
  • chore: remove unused global variable by @reubeno in #636
  • chore: remove unused global variable by @reubeno in #637
  • build(deps): bump slab from 0.4.10 to 0.4.11 in the cargo group by @dependabot[bot] in #640
  • Adds Homebrew nudge to installation section by @colindean in #638
  • fix: correct obvious string indexing errors by @reubeno in #641
  • fix: fixes for preexec-style bash extensions by @reubeno in #643
  • chore: cleanup allow attributes, switch to expect where possible by @reubeno in #642
  • chore: rename license notice document by @reubeno in #645
  • chore: prepare release by @reubeno in #644
  • fix: add back 2 suppressions by @reubeno in #647

New Contributors

Full Changelog: brush-shell-v0.2.20...brush-shell-v0.2.21

brush-parser-v0.2.19

chore: Release package brush-parser version 0.2.19

brush-interactive-v0.2.21

chore: Release package brush-interactive version 0.2.21

brush-core-v0.3.4

chore: Release package brush-core version 0.3.4

brush v0.2.20

🚀 Release Notes

This release includes a targeted change to the project's default compiler flags (see #600 for details). Prior to this change, release builds defaulted to optimizing for the build host's hardware platform; while useful for individuals, this is problematic for users who plan to use the built binaries on a different system.

Notable features and fixes:

  • Fixed "illegal instruction" issue sometimes seen when building brush on one system and running on another. (Thanks to @kachick for diagnosing and fixing this!)
  • Added support for +o/-o on the brush command line.
  • Corrected behavior of positional parameter shadowing with source/. builtin.

Notable API improvements:

  • Ergonomics improvements to Shell::invoke_function, ShellValue construction, and a few other places. (Thanks to @Elsie19 for contributions here!)

🗒️ Details

  • chore: suppress cognitive complexity errors (for now) by @reubeno in #583
  • fix(dot): only shadow args when provided to source by @reubeno in #582
  • docs: README.md installation updates by @reubeno in #580
  • ci: fix dry-run PR trigger on CD workflow by @reubeno in #584
  • chore: update dependencies + deny policy by @reubeno in #586
  • tests: tag test binary dependencies by @reubeno in #585
  • tests: add test cases for open issues by @reubeno in #587
  • docs: update README.md badges by @reubeno in #588
  • fix(input): multiline input with basic input backend by @reubeno in #589
  • feat: enable -o/+o on brush command line by @reubeno in #590
  • tests: add not-yet-passing history tests by @reubeno in #591
  • build(deps): bump the github-actions group with 5 updates by @dependabot in #592
  • build(deps): bump test-with from 0.15.1 to 0.15.2 in the cargo group by @dependabot in #593
  • chore: remove unneeded dev deps by @reubeno in #594
  • chore: add some tools to devcontainer by @reubeno in #595
  • ci: enable advanced codeql scanning by @reubeno in #597
  • feat(api): API usability improvements for Shell::invoke_function by @reubeno in #596
  • chan(ShellValue): take in an Into by @Elsie19 in #598
  • perf: avoid CPU-specific optimization by @kachick in #600
  • chore: update dependencies by @reubeno in #601
  • chore: prepare release by @reubeno in #602

Full Changelog: brush-shell-v0.2.19...brush-shell-v0.2.20