Skip to content

Commit 1227650

Browse files
authored
docs: update readme (#218)
1 parent 97ba71c commit 1227650

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

README.md

+10-11
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@ implemented in Rust. It's built and tested on Linux and macOS, with experimental
1414
![screenshot](./docs/extras/brush-screenshot.png)
1515

1616
`brush` is functional for interactive use as a daily driver! It can execute most `sh` and `bash` scripts we've
17-
encountered, but has known limitations we're iteratively working to address. Out of an abundance of caution,
18-
we do not yet recommend using it in production scenarios due to the risk that it may not behave identically
17+
encountered. Known limitations are tracked with filed issues. Out of an abundance of caution,
18+
we wouldn't recommend using it yet in _production_ scenarios in case it doesn't behave identically
1919
to your existing stable shell. (If you do find any behavioral differences, though, please report them with an
2020
issue!)
2121

2222
Contributions and feedback of all kinds are welcome! For more guidance, please consult our
2323
[contribution guidelines](CONTRIBUTING.md). For more technical details, please consult the
2424
[documentation](docs/README.md) in this repo.
2525

26-
This project was originally borne out of curiosity and a desire to learn. If it proves over time to be useful, then
27-
that's a bonus :).
26+
This project was originally borne out of curiosity and a desire to learn. We're doing our best to keep that
27+
attitude :).
2828

2929
### License
3030

@@ -43,26 +43,25 @@ greatest bits, you can clone this repo and execute `cargo run`.
4343

4444
If you don't have `rust` installed, we recommend installing it via [`rustup`](https://rustup.rs/).
4545

46+
(If you *are* interested in having a binary release, then please let us know in the 'Discussions' area of this
47+
project or by filing a feature request in 'Issues'.)
48+
4649
When you run `brush`, it should look exactly as `bash` would on your system since it processes `.bashrc` and
4750
other usual configuration. If you'd like to customize the look of `brush` to distinguish it from the other shells
4851
installed on your system, then you can also author a `~/.brushrc` file.
4952

50-
### <strike>Known limitations</strike> Where you can help!
53+
### Known limitations
5154

5255
There are some known gaps in compatibility. Most notably:
5356

5457
* **Honoring `set` and `shopt` options (e.g., `set -e`).**
5558
The `set` builtin is implemented, as is `set -x` and a few other options, but most of the options aren't fully implemented. `set -e`, for example, will execute but its semantics aren't applied across execution.
5659
* **Curly brace expansion.**
5760
Almost all forms of expansion are implemented; for some reason, we never got around to implementing an expansion that turns `{a,b}` into `a b`. There's even a test for this, but it's marked as a known failing test.
58-
* **Tokenizer and parser edge cases.**
59-
For simplicity, the tokenizer for `brush` was hand-implemented and the parsers were implemented using [`rust-peg`](https://github.com/kevinmehall/rust-peg). (Huge shout out to that project!) There are some edge cases that got tricky and may not be implemented with 100% fidelity (e.g., complex nested parenthetical expressions in arithmetic expressions, further nested inside command substitutions). All of our tests are passing in these areas, but coverage is limited. Augmenting test coverage would be a great starting point for contributing in this area.
6061
* **Anything tagged with a `TODO` comment or where `error::unimp()` is used to return a "not implemented" error**.
61-
These aren't all tracked with GitHub issues right now, but there's a number of these scattered throughout the code base. Some are indicative of missing functionality that may be straightforward to implement; others may be more complicated. These include some shell built-ins. Some are completely and fully implemented (e.g. echo), a number of them support only their most commonly used options, and a decreasingly small minority of them aren't implemented at all.
62-
63-
There's certainly more gaps; with time we'll find a way to represent the gaps in some understandable way. Ideally, we'd like to evolve the test suites to add tests for all known missing pieces. That will let us focus on just "fixing the tests".
62+
These aren't all tracked with GitHub issues right now, but there's a number of these scattered throughout the code base. Some are indicative of missing functionality that may be straightforward to implement; others may be more complicated.
6463

65-
We'd absolutely love your help with any of the above, with broadening test coverage, deeper compatibility evaluation, or really any other opportunities you can find to help make this project better.
64+
If you feel so inclined, we'd love contributions toward any of the above, with broadening test coverage, deeper compatibility evaluation, or really any other opportunities you can find to help make this project better.
6665

6766
## Testing strategy
6867

0 commit comments

Comments
 (0)