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 {}