1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#[allow(unused_imports)]
use crate::*;

/// TODO: RENAME THIS INTO THE NEXT VERSION BEFORE RELEASE
///
/// ## Added
///  - Add new fn `SessionBuilder::ssh_auth_sock`
/// ## Changed
/// ## Removed
#[doc(hidden)]
pub mod unreleased {}

/// ## Added
///  - Add new fn `SessionBuilder::ssh_auth_sock`
pub mod v0_9_9 {}

/// ## Added
///  - `impl From<std::os::unix::io::OwnedFd> for Stdio`
///  -  Add new fn `Stdio::from_raw_fd_owned`
/// ## Changed
///  - Mark `FromRawFd` impl for `Stdio` as deprecated
///  - Mark `From<tokio_pipe::PipeRead>` for `Stdio` as deprecated
///  - Mark `From<tokio_pipe::PipeWrite>` for `Stdio` as deprecated
/// ## Fixed
///  - [`wait_with_output` + `native-mux` cuts off stdout output](https://github.com/openssh-rust/openssh/issues/103)
pub mod v0_9_8 {}

/// ## Changed
///  - Bumped minimum version of `openssh-mux-client` to 0.15.1
pub mod v0_9_7 {}

/// ## Added
///  - [`SessionBuilder::jump_hosts`]
pub mod v0_9_6 {}

/// ## Added
///  - `From<SocketAddr> for Socket<'static>`
///  - `From<Cow<'a, Path>> for Socket<'a>`
///  - `From<&'a Path> for Socket<'a>`
///  - `From<PathBuf> for Socket<'static>`
///  - `From<Box<Path>> for Socket<'static>`
///  - `From<(IpAddr, u16)> for Socket<'static>`
///  - `From<(Ipv4Addr, u16)> for Socket<'static>`
///  - `From<(Ipv6Addr, u16)> for Socket<'static>`
///
/// ## Changed
///  - [`Session::request_port_forward`] now takes `impl Into<...>`
///    to make it much easier to use.
///  - [`Socket::new`] now returns `Socket<'static>`
pub mod v0_9_5 {}

/// ## Added
///  - [`Session::resume`]
///  - [`Session::resume_mux`]
///  - [`Session::detach`]
pub mod v0_9_3 {}

/// ## Changed
///  - Removed `impl From<OwnedFd> for Stdio` as it was an unintentional part of the public API.
///    This is technically a breaking change, but should in practice affect no-one.
pub mod v0_9_2 {}

/// ## Added
///  - [`Session::subsystem`]
pub mod v0_9_1 {}

/// No changes since 0.9.0-rc4.
pub mod v0_9_0 {}

/// ## Fixed
///  - Remove accidentally exposed `TryFrom<tokio::process::ChildStdin`
///    implementation for [`ChildStdin`].
///  - Remove accidentally exposed `TryFrom<tokio_pipe::PipeWrite>`
///    implementation for [`ChildStdin`].
///  - Remove accidentally exposed `TryFrom<tokio::process::ChildStdout>`
///    implementation for [`ChildStdout`].
///  - Remove accidentally exposed `TryFrom<tokio_pipe::PipeRead>`
///    implementation for [`ChildStdout`].
///  - Remove accidentally exposed `TryFrom<tokio::process::ChildStderr>`
///    implementation for [`ChildStderr`].
///  - Remove accidentally exposed `TryFrom<tokio_pipe::PipeRead>`
///    implementation for [`ChildStderr`].
///
/// ## Changed
///  - Make [`Session::check`] available only on unix.
///  - Make [`Socket::UnixSocket`] available only on unix.
///  - Make [`SessionBuilder::control_directory`] available only on unix.
pub mod v0_9_0_rc4 {}

/// ## Fixed
///  - Fixed changelog entry for rc2 not being visible
pub mod v0_9_0_rc3 {}

/// ## Fixed
///  - Fixed crate level doc
///
/// ## Added
///  - Added changelog
///  - Associated function [`SessionBuilder::compression`]
///  - Associated function [`SessionBuilder::user_known_hosts_file`]
///  - Associated function [`Session::control_socket`] for non-Windows platform.
///
/// ## Changed
///  - Make [`ChildStdin`] an opaque type.
///  - Make [`ChildStdout`] an opaque type.
///  - Make [`ChildStderr`] an opaque type.
///
/// ## Removed
///  - Type `Sftp`.
///  - Type `Mode`.
///  - Type `RemoteFile`.
///  - Associated function `Session::sftp`.
pub mod v0_9_0_rc2 {}

/// ## Added
///  - Feature flag `native-mux`, an alternative backend that communicates
///    with the ssh multiplex server directly through control socket as opposed
///    `process-mux` implementation that spawns a process to communicate with
///    the ssh multiplex server.
///
///    Compared to `process-mux`, `native-mux` provides more robust error
///    reporting, better performance and reduced memory usage.
///
///    `process-mux` checks the exit status of `ssh` for indication of error,
///    then parse the output of it and the output of the ssh multiplex master
///    to return an error.
///
///    This method is obviously not so robust as `native-mux`, which directly
///    communicates with ssh multiplex master through its [multiplex protocol].
///
///  - Feature flag `process-mux` (enabled by default) to disable the old
///    backend if desired.
///  - API [`Session::connect_mux`] for the new `native-mux` backend,
///    which is used to create a [`Session`] backed by `native-mux`
///    implementation.
///  - API [`SessionBuilder::connect_mux`] for the new `native-mux` backend,
///    which is used to create a [`Session`] backed by `native-mux`
///    implementation.
///  - [`Session::request_port_forward`] for local/remote forwarding
///    of tcp or unix stream sockets, along with [`ForwardType`] and
///    [`Socket`], which is used to setup port forwarding.
///  - A new module [`process`] is added to provide interfaces more similar to
///    [`std::process`].
///  - New variants are added to [`Error`].
///
/// ## Changed
///  - A new type [`Stdio`] is used for setting stdin/stdout/stderr.
///  - [`ChildStdin`], [`ChildStdout`] and [`ChildStderr`] are now aliases
///    for [`tokio_pipe::PipeRead`] and [`tokio_pipe::PipeWrite`].
///  - [`Command::spawn`] and [`Command::status`] now conforms to
///    [`std::process::Command`] and [`tokio::process::Command`], in which
///    stdin, stdout and stderr are inherit by default.
///  - [`Command::spawn`] is now an `async` method.
///  - [`RemoteChild::wait`] now takes `self` by value.
///  - [`Error`] is now marked `#[non_exhaustive]`.
///
/// [multiplex protocol]: https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.mux
pub mod v0_9_0_rc_1 {}