brush v0.2.18
🚀 Release Notes
Since our last release we've seen an influx of interest, thanks in part to getting posted to Hacker News and elsewhere. Welcome all! We appreciate your interest, questions, filed issues, and support 😄
This release focuses on a wave of fixes to address some of the user feedback we've received, as well as some targeted features that had been on our backlog for quite some time.
Some select highlights:
- Ergonomic improvements to the
brush-core
exported API surface for applications embeddingbrush
. (Particular thanks to @Elsie19 and other contributors on this). - Support for logical/physical options (
-L
,-P
) tocd
,pwd
, et al. (This builds on the work that @39555 started several months back; thanks for your patience until we were able to get to it!) - Significant improvements to the
mapfile
/readarray
builtin. (Thanks to @Elsie19 on overhauling mapfile's core input loop.) - Initial implementation of the
ulimit
builtin. (Thanks to @lu-zero for getting it from unimplemented to something reasonable.) - Initial implementation of
bind -x
support, used by many shell extensions and users'.bashrc
files; there's more to do, but this covers a long asked-for feature request from the community.
There's plenty more bug fixes and changes -- as usual, the full details are below. And a big shout-out to our new contributors as well as contributors who dove in deeper this cycle! 🙏
🗒️ Details
- fix: correct release tag check in cd pipeline by @reubeno in #443
- feat(apply_unary_predicate_to_str): implement
-R
operand by @Elsie19 in #439 - feat(Shell): add methods to add environmental variables and builtins by @Elsie19 in #447
- ref(Shell): turn
&Path
parameters intoAsRef
by @Elsie19 in #448 - build(deps): bump taiki-e/upload-rust-binary-action from 1.24.0 to 1.25.0 in the github-actions group by @dependabot in #450
- fix(prompt): support PROMPT_COMMAND arrays by @reubeno in #451
- fix(trap): handle '-' unregistration syntax by @reubeno in #452
- test(extended-tests): explicitly set modified date on test files by @reubeno in #453
- chore: upgrade dependencies: reedline, nix, clap, thiserror, etc. by @reubeno in #456
- chore: enable (and fix) current checks across all workspace crates by @reubeno in #457
- feat: implement {cd,pwd} -{L,P} by @reubeno in #458
- build(deps): bump the cargo group with 3 updates by @dependabot in #461
- build(deps): bump the github-actions group with 2 updates by @dependabot in #460
- fix(complete): fixes + tests for "declare -r" by @reubeno in #462
- fix: enable unnameable_types lint and mitigate errors by @reubeno in #459
- fix(builtin): fix issues with 'builtin' invoking declaration builtins by @reubeno in #466
- fix(declare): turn down volume on non-existent functions by @reubeno in #467
- fix(expansion): allow negative subscripts with indexed arrays + slices by @reubeno in #468
- chore: better log + connect unimpl functionality with GH issues by @reubeno in #476
- chore: separate release and bench profiles by @reubeno in #477
- test: add compat test for $_ (not yet passing) by @reubeno in #480
- docs: update readme by @reubeno in #481
- test: add known failing tests for reported issues by @reubeno in #483
- feat(builtins): implement basic
bind -x
support by @reubeno in #478 - fix: allow "bind" usage in .bashrc by @reubeno in #485
- build(deps): bump the cargo group with 3 updates by @dependabot in #487
- feat(mapfile): Register also as readarray by @lu-zero in #486
- fix(expansion): fix issues parsing backquoted commands nested in single/double-quoted strings by @reubeno in #491
- feat(funcs): implement function exporting/importing by @reubeno in #492
- fix(break,continue): use
default_value_t
for flag values by @Elsie19 in #493 - docs: add discord invite to readme by @reubeno in #494
- chore(edit_mode): Fix clippy lints by @lu-zero in #495
- fix(help): better compact argument help by @reubeno in #499
- fix(input): map Ctrl+_ -> undo by @reubeno in #500
- fix: fix typos + add spell-checking PR check by @reubeno in #501
- feat(mapfile): implement
-n
,-d
,-s
by @Elsie19 in #490 - Implement ulimit by @lu-zero in #482
- docs(readme): a Fish as a shell implemented in Rust by @brettcannon in #505
- chore: prepare release by @reubeno in #504
- fix: add missing tokio feature to unblock release by @reubeno in #506
- fix: suppress warning when building with --no-default-features by @reubeno in #508
New Contributors
- @brettcannon made their first contribution in #505
Full Changelog: brush-shell-v0.2.17...brush-shell-v0.2.18