radicle-heartwood-lfs/crates
Fintan Halpenny e1f16bee26 term: Catch EPIPE and swallow
Rust (since 1.62) ignores EPIPE by default (see [Rust #62569]),
causing writes to closed pipes to return `io::ErrorKind::BrokenPipe`
errors.  The `println!` macro panics on these errors, producing a
confusing backtrace instead of the silent exit expected of Unix CLI
tools.

To avoid the use of `print!` and `println!`, the `radicle-term`
helper functions use `write!` and `writeln!`. This lays the groundwork
for the `rad` CLI to transition to using only `radicle-term`
functions.

There was a first attempt made, which is documented here.  A
process-wide SIGPIPE reset (`SIG_DFL`) was ruled out because `rad`
manages child processes via libgit2 pipes and communicates with the
radicle node over Unix sockets. Resetting SIGPIPE globally caused
`rad` itself to be killed during internal pipe operations (e.g. during
`rad remote add --fetch`), producing flaky test failures.

[Rust #62569] https://github.com/rust-lang/rust/issues/62569
2026-04-29 10:57:24 +02:00
..
radicle treewide/test: Use `impl Arbitrary for Oid` 2026-04-28 14:35:38 +02:00
radicle-cli term: Catch EPIPE and swallow 2026-04-29 10:57:24 +02:00
radicle-cli-test clippy: Disallow lints `collapsible_*` 2026-04-15 10:06:05 +02:00
radicle-cob clippy: Deny `unwrap_used` 2026-04-15 10:06:05 +02:00
radicle-core treewide/test: Use `impl Arbitrary for Oid` 2026-04-28 14:35:38 +02:00
radicle-crypto cargo: Update `cyphernet` from 0.5.2 to 0.5.3 2026-04-15 11:59:15 +01:00
radicle-dag repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
radicle-fetch treewide: Avoid `git2::Oid::zero` 2026-04-28 14:35:38 +02:00
radicle-git-metadata rust/edition/fmt: 2021 → 2024 2026-03-30 16:57:51 +02:00
radicle-git-ref-format git-ref-format: New crate 2025-10-13 13:34:15 +02:00
radicle-localtime localtime: add description in Cargo.toml 2026-02-20 13:48:14 +00:00
radicle-node oid: `const ZERO_SHA1` instead of `fn sha1_zero` 2026-04-28 14:35:38 +02:00
radicle-oid oid: Fix `impl Arbitrary for Oid` 2026-04-28 14:35:38 +02:00
radicle-protocol treewide/test: Use `impl Arbitrary for Oid` 2026-04-28 14:35:38 +02:00
radicle-remote-helper Spell "Radicle" with a captial R 2026-04-17 17:15:31 +01:00
radicle-schemars schemars: Update to 0.7.0 2026-03-26 15:32:50 +00:00
radicle-signals rust/edition/fmt: 2021 → 2024 2026-03-30 16:57:51 +02:00
radicle-systemd rust/edition/fmt: 2021 → 2024 2026-03-30 16:57:51 +02:00
radicle-term term: Catch EPIPE and swallow 2026-04-29 10:57:24 +02:00
radicle-windows rust/edition/fmt: 2021 → 2024 2026-03-30 16:57:51 +02:00