openssh/
changelog.rs

1#[allow(unused_imports)]
2use crate::*;
3
4/// TODO: RENAME THIS INTO THE NEXT VERSION BEFORE RELEASE
5#[doc(hidden)]
6pub mod unreleased {}
7
8/// # Changed
9/// - Remove dep tokio-pipe (#156)
10/// - Remove deprecated functions (#156)
11/// - Replace `From<tokio::proces::Child*>`
12///   with `TryFrom<tokio::proces::Child*>`, since the converison is falliable (#156)
13/// - Remove `IntoRawFd` for `Child*` since the conversion is falliable (#156)
14pub mod v0_11_0 {}
15
16/// ## Changed
17///  - Add missing feature doc for `Session::new*`
18pub mod v0_10_5 {}
19
20/// ## Changed
21/// - Added new fn [`Session::control_persist`] to set the `ControlPersist` option of
22///   the master ssh connection.
23pub mod v0_10_4 {}
24
25/// ## Changed
26/// - Removed dependency on MPL licensed dirs-sys in favor of local implementation
27pub mod v0_10_3 {}
28
29/// ## Changed
30///  - Use `str::rfind` to locate the `@` in connection string in case the username contains `@`
31pub mod v0_10_2 {}
32
33/// ## Added
34///  - Add new fns [`Session::arc_command`], [`Session::arc_raw_command`],
35///    [`Session::to_command`], and [`Session::to_raw_command`] to support
36///    session-owning commands
37///  - Add generic [`crate::OwningCommand`], to support session-owning
38///    commands.
39///  - Add [`crate::child::Child`] as a generic version of [`RemoteChild`]
40///    to support session-owning commands
41/// ## Changed
42///  - Change [`RemoteChild`] to be an alias to [`crate::child::Child`]
43///    owning a session references.
44///  - Change [`Command`] to be an alias to [`OwningCommand`] owning a
45///    session reference.
46///  - Change [`OverSsh::over_ssh`] to be generic and support owned
47///    sessions.
48/// ## Removed
49#[doc(hidden)]
50pub mod v0_10_1 {}
51
52/// ## Added
53///  - [`Session::new_process_mux`]
54///  - [`Session::new_native_mux`]
55///  - [`SessionBuilder::get_user`]
56///  - [`SessionBuilder::get_port`]
57///  - [`SessionBuilder::resolve`]
58///  - [`SessionBuilder::launch_master`]
59///  - [`SessionBuilder::clean_history_control_directory`]
60///  - [`OverSsh`] for converting [`std::process::Command`],
61///    [`tokio::process::Command`] or other custom types to
62///    [`Command`].
63/// ## Changed
64///  - [`Socket::TcpSocket`] now contains `host: Cow<'_, str>` and `port: u16`
65///    instead of an already resolved `SocketAddr`.
66///    Since the socket could be opened on remote host, which might has
67///    different dns configuration, it's better to delay resolution and perform
68///    it on remote instead.
69///  - [`Socket::new`] now takes `host: Cow<'_, str>` and `port: u16` for the
70///    same reason as above.
71pub mod v0_10_0 {}
72
73/// ## Added
74///  - Add new fn `SessionBuilder::ssh_auth_sock`
75pub mod v0_9_9 {}
76
77/// ## Added
78///  - `impl From<std::os::unix::io::OwnedFd> for Stdio`
79///  -  Add new fn `Stdio::from_raw_fd_owned`
80/// ## Changed
81///  - Mark `FromRawFd` impl for `Stdio` as deprecated
82///  - Mark `From<tokio_pipe::PipeRead>` for `Stdio` as deprecated
83///  - Mark `From<tokio_pipe::PipeWrite>` for `Stdio` as deprecated
84/// ## Fixed
85///  - [`wait_with_output` + `native-mux` cuts off stdout output](https://github.com/openssh-rust/openssh/issues/103)
86pub mod v0_9_8 {}
87
88/// ## Changed
89///  - Bumped minimum version of `openssh-mux-client` to 0.15.1
90pub mod v0_9_7 {}
91
92/// ## Added
93///  - [`SessionBuilder::jump_hosts`]
94pub mod v0_9_6 {}
95
96/// ## Added
97///  - `From<SocketAddr> for Socket<'static>`
98///  - `From<Cow<'a, Path>> for Socket<'a>`
99///  - `From<&'a Path> for Socket<'a>`
100///  - `From<PathBuf> for Socket<'static>`
101///  - `From<Box<Path>> for Socket<'static>`
102///  - `From<(IpAddr, u16)> for Socket<'static>`
103///  - `From<(Ipv4Addr, u16)> for Socket<'static>`
104///  - `From<(Ipv6Addr, u16)> for Socket<'static>`
105///
106/// ## Changed
107///  - [`Session::request_port_forward`] now takes `impl Into<...>`
108///    to make it much easier to use.
109///  - [`Socket::new`] now returns `Socket<'static>`
110pub mod v0_9_5 {}
111
112/// ## Added
113///  - [`Session::resume`]
114///  - [`Session::resume_mux`]
115///  - [`Session::detach`]
116pub mod v0_9_3 {}
117
118/// ## Changed
119///  - Removed `impl From<OwnedFd> for Stdio` as it was an unintentional part of the public API.
120///    This is technically a breaking change, but should in practice affect no-one.
121pub mod v0_9_2 {}
122
123/// ## Added
124///  - [`Session::subsystem`]
125pub mod v0_9_1 {}
126
127/// No changes since 0.9.0-rc4.
128pub mod v0_9_0 {}
129
130/// ## Fixed
131///  - Remove accidentally exposed `TryFrom<tokio::process::ChildStdin`
132///    implementation for [`ChildStdin`].
133///  - Remove accidentally exposed `TryFrom<tokio_pipe::PipeWrite>`
134///    implementation for [`ChildStdin`].
135///  - Remove accidentally exposed `TryFrom<tokio::process::ChildStdout>`
136///    implementation for [`ChildStdout`].
137///  - Remove accidentally exposed `TryFrom<tokio_pipe::PipeRead>`
138///    implementation for [`ChildStdout`].
139///  - Remove accidentally exposed `TryFrom<tokio::process::ChildStderr>`
140///    implementation for [`ChildStderr`].
141///  - Remove accidentally exposed `TryFrom<tokio_pipe::PipeRead>`
142///    implementation for [`ChildStderr`].
143///
144/// ## Changed
145///  - Make [`Session::check`] available only on unix.
146///  - Make [`Socket::UnixSocket`] available only on unix.
147///  - Make [`SessionBuilder::control_directory`] available only on unix.
148pub mod v0_9_0_rc4 {}
149
150/// ## Fixed
151///  - Fixed changelog entry for rc2 not being visible
152pub mod v0_9_0_rc3 {}
153
154/// ## Fixed
155///  - Fixed crate level doc
156///
157/// ## Added
158///  - Added changelog
159///  - Associated function [`SessionBuilder::compression`]
160///  - Associated function [`SessionBuilder::user_known_hosts_file`]
161///  - Associated function [`Session::control_socket`] for non-Windows platform.
162///
163/// ## Changed
164///  - Make [`ChildStdin`] an opaque type.
165///  - Make [`ChildStdout`] an opaque type.
166///  - Make [`ChildStderr`] an opaque type.
167///
168/// ## Removed
169///  - Type `Sftp`.
170///  - Type `Mode`.
171///  - Type `RemoteFile`.
172///  - Associated function `Session::sftp`.
173pub mod v0_9_0_rc2 {}
174
175/// ## Added
176///  - Feature flag `native-mux`, an alternative backend that communicates
177///    with the ssh multiplex server directly through control socket as opposed
178///    `process-mux` implementation that spawns a process to communicate with
179///    the ssh multiplex server.
180///
181///    Compared to `process-mux`, `native-mux` provides more robust error
182///    reporting, better performance and reduced memory usage.
183///
184///    `process-mux` checks the exit status of `ssh` for indication of error,
185///    then parse the output of it and the output of the ssh multiplex master
186///    to return an error.
187///
188///    This method is obviously not so robust as `native-mux`, which directly
189///    communicates with ssh multiplex master through its [multiplex protocol].
190///
191///  - Feature flag `process-mux` (enabled by default) to disable the old
192///    backend if desired.
193///  - API [`Session::connect_mux`] for the new `native-mux` backend,
194///    which is used to create a [`Session`] backed by `native-mux`
195///    implementation.
196///  - API [`SessionBuilder::connect_mux`] for the new `native-mux` backend,
197///    which is used to create a [`Session`] backed by `native-mux`
198///    implementation.
199///  - [`Session::request_port_forward`] for local/remote forwarding
200///    of tcp or unix stream sockets, along with [`ForwardType`] and
201///    [`Socket`], which is used to setup port forwarding.
202///  - A new module [`process`] is added to provide interfaces more similar to
203///    [`std::process`].
204///  - New variants are added to [`Error`].
205///
206/// ## Changed
207///  - A new type [`Stdio`] is used for setting stdin/stdout/stderr.
208///  - [`ChildStdin`], [`ChildStdout`] and [`ChildStderr`] are now aliases
209///    for [`tokio_pipe::PipeRead`] and [`tokio_pipe::PipeWrite`].
210///  - [`Command::spawn`] and [`Command::status`] now conforms to
211///    [`std::process::Command`] and [`tokio::process::Command`], in which
212///    stdin, stdout and stderr are inherit by default.
213///  - [`Command::spawn`] is now an `async` method.
214///  - [`RemoteChild::wait`] now takes `self` by value.
215///  - [`Error`] is now marked `#[non_exhaustive]`.
216///
217/// [multiplex protocol]: https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.mux
218pub mod v0_9_0_rc_1 {}