Skip to content

Commit 20ede69

Browse files
authored
Merge pull request #36 from NobodyXu/AddChangeLog
Add `changelog` to docs.rs
2 parents 4126f66 + 9d5b5e7 commit 20ede69

File tree

3 files changed

+62
-0
lines changed

3 files changed

+62
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
The changelog for this crate is kept in the project's Rust documentation in the changelog module.

src/changelog.rs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#[allow(unused_imports)]
2+
use crate::*;
3+
4+
/// TODO: RENAME THIS INTO THE NEXT VERSION BEFORE RELEASE
5+
///
6+
/// ## Fixed
7+
/// - Fixed crate level doc
8+
///
9+
/// ## Added
10+
/// - Added changelog
11+
#[doc(hidden)]
12+
pub mod unreleased {}
13+
14+
/// ## Added
15+
/// - Feature flag `native-mux`, an alternative backend that communicates
16+
/// with the ssh multiplex server directly through control socket as opposed
17+
/// `process-mux` implementation that spawns a process to communicate with
18+
/// the ssh multiplex server.
19+
///
20+
/// Compared to `process-mux`, `native-mux` provides more robust error
21+
/// reporting, better performance and reduced memory usage.
22+
///
23+
/// `process-mux` checks the exit status of `ssh` for indication of error,
24+
/// then parse the output of it and the output of the ssh multiplex master
25+
/// to return an error.
26+
///
27+
/// This method is obviously not so robust as `native-mux`, which directly
28+
/// communicates with ssh multiplex master through its [multiplex protocol].
29+
///
30+
/// - Feature flag `process-mux` (enabled by default) to disable the old
31+
/// backend if desired.
32+
/// - API [`Session::connect_mux`] for the new `native-mux` backend,
33+
/// which is used to create a [`Session`] backed by `native-mux`
34+
/// implementation.
35+
/// - API [`SessionBuilder::connect_mux`] for the new `native-mux` backend,
36+
/// which is used to create a [`Session`] backed by `native-mux`
37+
/// implementation.
38+
/// - [`Session::request_port_forward`] for local/remote forwarding
39+
/// of tcp or unix stream sockets, along with [`ForwardType`] and
40+
/// [`Socket`], which is used to setup port forwarding.
41+
/// - A new module [`process`] is added to provide interfaces more similar to
42+
/// [`std::process`].
43+
/// - New variants are added to [`Error`].
44+
///
45+
/// ## Changed
46+
/// - A new type [`Stdio`] is used for setting stdin/stdout/stderr.
47+
/// - [`ChildStdin`], [`ChildStdout`] and [`ChildStderr`] are now aliases
48+
/// for [`tokio_pipe::PipeRead`] and [`tokio_pipe::PipeWrite`].
49+
/// - [`Command::spawn`] and [`Command::status`] now conforms to
50+
/// [`std::process::Command`] and [`tokio::process::Command`], in which
51+
/// stdin, stdout and stderr are inherit by default.
52+
/// - [`Command::spawn`] is now an `async` method.
53+
/// - [`RemoteChild::wait`] now takes `self` by value.
54+
/// - [`Error`] is now marked `#[non_exhaustive]`.
55+
///
56+
/// [multiplex protocol]: https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.mux
57+
pub mod v0_9_0_rc_1 {}

src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ pub(crate) mod process_impl;
176176
#[cfg(feature = "native-mux")]
177177
pub(crate) mod native_mux_impl;
178178

179+
#[cfg(doc)]
180+
/// Changelog for this crate.
181+
pub mod changelog;
182+
179183
mod port_forwarding;
180184
pub use port_forwarding::*;
181185

0 commit comments

Comments
 (0)