5 - Add `Shell::path_exists`.
9 - `Shell::remove_path` returns `Ok` if the path does not exist (ie the function
14 A major release with significant changes to the API:
16 - All global state is removed in favor of explicitly passing a `Shell` instance.
17 - Some methods are renamed to better match Rust naming conventions.
18 - New APIs for controlling working directory and environment.
19 - MSRV is raised to 1.59.0.
20 - Improved reliability across the board: the crate aims to become a dependable
21 1.0 tool in the future (no ETA).
22 - This is expected to be the last *large* API reshuffle.
26 - Allow panics to transparently pass through xshell calls.
27 This removes some internal lock poisoned errors.
31 - Add `xshell::hard_link`.
35 - Correctly handle multiple internal read guards.
39 - Correctly handle commands name starting with quote.
43 - Add `ignore_stdout`, `ignore_stderr` functions.
47 - Add `env`, `env_revome`, `env_clear` functions.
51 - `write_file` now creates the intervening directory path if it doesn't exit.
55 - `echo_cmd` output goes to stderr, not stdout.
59 - `mktemp_d` creates an (insecure, world readable) temporary directory.
64 - Add option to not echo command at all.
65 - Add option to censor command contents when echoing.
70 - `cp(foo, bar)` copies `foo` _into_ `bar`, if `bar` is an existing directory.
75 - `.read()` chomps `\r\n` on Windows.
76 - Prevent cwd/env races when using `.read()` or `.run()`.
77 - Better spans in error messages.
81 - Improve proc-macro error messages.
85 - No changelog until this point :(