openssh/changelog.rs
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 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218
#[allow(unused_imports)]
use crate::*;
/// TODO: RENAME THIS INTO THE NEXT VERSION BEFORE RELEASE
#[doc(hidden)]
pub mod unreleased {}
/// # Changed
/// - Remove dep tokio-pipe (#156)
/// - Remove deprecated functions (#156)
/// - Replace `From<tokio::proces::Child*>`
/// with `TryFrom<tokio::proces::Child*>`, since the converison is falliable (#156)
/// - Remove `IntoRawFd` for `Child*` since the conversion is falliable (#156)
pub mod v0_11_0 {}
/// ## Changed
/// - Add missing feature doc for `Session::new*`
pub mod v0_10_5 {}
/// ## Changed
/// - Added new fn [`Session::control_persist`] to set the `ControlPersist` option of
/// the master ssh connection.
pub mod v0_10_4 {}
/// ## Changed
/// - Removed dependency on MPL licensed dirs-sys in favor of local implementation
pub mod v0_10_3 {}
/// ## Changed
/// - Use `str::rfind` to locate the `@` in connection string in case the username contains `@`
pub mod v0_10_2 {}
/// ## Added
/// - Add new fns [`Session::arc_command`], [`Session::arc_raw_command`],
/// [`Session::to_command`], and [`Session::to_raw_command`] to support
/// session-owning commands
/// - Add generic [`crate::OwningCommand`], to support session-owning
/// commands.
/// - Add [`crate::child::Child`] as a generic version of [`RemoteChild`]
/// to support session-owning commands
/// ## Changed
/// - Change [`RemoteChild`] to be an alias to [`crate::child::Child`]
/// owning a session references.
/// - Change [`Command`] to be an alias to [`OwningCommand`] owning a
/// session reference.
/// - Change [`OverSsh::over_ssh`] to be generic and support owned
/// sessions.
/// ## Removed
#[doc(hidden)]
pub mod v0_10_1 {}
/// ## Added
/// - [`Session::new_process_mux`]
/// - [`Session::new_native_mux`]
/// - [`SessionBuilder::get_user`]
/// - [`SessionBuilder::get_port`]
/// - [`SessionBuilder::resolve`]
/// - [`SessionBuilder::launch_master`]
/// - [`SessionBuilder::clean_history_control_directory`]
/// - [`OverSsh`] for converting [`std::process::Command`],
/// [`tokio::process::Command`] or other custom types to
/// [`Command`].
/// ## Changed
/// - [`Socket::TcpSocket`] now contains `host: Cow<'_, str>` and `port: u16`
/// instead of an already resolved `SocketAddr`.
/// Since the socket could be opened on remote host, which might has
/// different dns configuration, it's better to delay resolution and perform
/// it on remote instead.
/// - [`Socket::new`] now takes `host: Cow<'_, str>` and `port: u16` for the
/// same reason as above.
pub mod v0_10_0 {}
/// ## 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 {}