Skip to content

chore(deps): drop bssh-russh fork, use upstream russh 0.62.1#212

Open
Yaminyam wants to merge 1 commit into
lablup:mainfrom
Yaminyam:chore/drop-bssh-russh-fork
Open

chore(deps): drop bssh-russh fork, use upstream russh 0.62.1#212
Yaminyam wants to merge 1 commit into
lablup:mainfrom
Yaminyam:chore/drop-bssh-russh-fork

Conversation

@Yaminyam

@Yaminyam Yaminyam commented Jul 2, 2026

Copy link
Copy Markdown
Member

Summary

Both reasons the bssh-russh fork existed are now upstreamed, so the vendored fork (66 files) can be removed and we can depend on crates.io russh directly.

Fork patch Upstream Released in
High-frequency PTY output fix (Handle::data from spawned tasks) #731 (redo of our #729) russh 0.62.0
SHA-1 MAC exclusion from Preferred::DEFAULT #690 russh 0.60.2

Note: the SHA-1 exclusion was actually never a bssh-specific change — the fork simply vendored upstream 0.61.1, which already excluded SHA-1 MACs via #690. The only genuinely bssh-specific patch was the PTY fix, now in 0.62.0.

Changes

  • Cargo.toml: russh = "0.62.1" (was package = "bssh-russh", path fork); drop crates/bssh-russh from workspace members
  • ssh-key pin =0.7.0-rc.10=0.7.0-rc.11 to match russh 0.62.x (also avoids the transitive dsa build break that rc.10 hits)
  • src/server/handler.rs: adapt channel_open_session to the new russh 0.62 signature — it now takes a ChannelOpenHandle reply and returns Result<()> instead of Result<bool>; we accept the channel via reply.accept()
  • .cargo/audit.toml: reword the RUSTSEC-2023-0071 note (no more vendored fork)
  • remove crates/bssh-russh/ (66 files)

crates/bssh-russh-sftp is kept — its pipelined File I/O is not yet upstreamed.

Verification

  • cargo build / cargo clippy --all-targets / cargo fmt --check clean (rustc 1.93)
  • full test suite green: 1233 lib tests, PTY stress 10/10 (massive batches, concurrent producers, backpressure, long-running stream), streaming high-throughput 28/28

🤖 Generated with Claude Code

Both reasons the fork existed are now upstreamed:
- high-frequency PTY output fix (Handle::data from spawned tasks):
  upstream #731, released in russh 0.62.0
- SHA-1 MAC exclusion from Preferred::DEFAULT:
  upstream #690, released in russh 0.60.2

So crates/bssh-russh is no longer needed. Switch the dependency to the
crates.io russh 0.62.1 and remove the vendored fork (66 files).

- Cargo.toml: russh = "0.62.1" (was package = bssh-russh, path fork)
- ssh-key pin bumped =0.7.0-rc.10 -> =0.7.0-rc.11 to match russh 0.62.x
- handler: adapt channel_open_session to the new russh 0.62 signature
  (ChannelOpenHandle reply + Result<()> instead of Result<bool>);
  accept the channel via reply.accept()
- audit.toml: reword the RUSTSEC-2023-0071 note (no more vendored fork)

Verified: cargo build, clippy, fmt clean, and full test suite green
(1233 lib tests, PTY stress 10/10, streaming high-throughput 28/28).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant