mirror of
https://github.com/chipsenkbeil/distant.git
synced 2024-11-15 06:12:56 +00:00
677 lines
28 KiB
Markdown
677 lines
28 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [Unreleased]
|
|
|
|
### Fixed
|
|
|
|
- Bug in `distant fs set-permissions` where partial permissions such as `go-w`
|
|
would result in clearing all permissions
|
|
- Bug in `distant-local` implementation of `SetPermissions` where read-only
|
|
status was being set/cleared prior to Unix permissions being applied,
|
|
resulting in applying an invalid change to the permissions
|
|
|
|
## [0.20.0]
|
|
|
|
All changes described in these alpha releases:
|
|
|
|
- [Alpha 13](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.13)
|
|
- [Alpha 12](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.12)
|
|
- [Alpha 11](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.11)
|
|
- [Alpha 10](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.10)
|
|
- [Alpha 9](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.9)
|
|
- [Alpha 8](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.8)
|
|
- [Alpha 7](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.7)
|
|
- [Alpha 6](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.6)
|
|
- [Alpha 5](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.5)
|
|
- [Alpha 4](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.4)
|
|
- [Alpha 3](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.3)
|
|
- [Alpha 2](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.2)
|
|
- [Alpha 1](https://github.com/chipsenkbeil/distant/releases/tag/v0.20.0-alpha.1)
|
|
|
|
### Fixed
|
|
|
|
- When terminating a connection using `distant manager kill`, the connection is
|
|
now properly dropped, resulting servers waiting to terminate due to
|
|
`--shutdown lonely=N` to now shutdown accordingly
|
|
- Zombies from spawned servers via `distant launch manager://localhost` are now
|
|
properly terminated by checking the exit status of processes
|
|
|
|
## [0.20.0-alpha.13]
|
|
|
|
### Added
|
|
|
|
- Support for `--shell` with optional path to an explicit shell as an option
|
|
when executing `distant spawn` in order to run the command within a shell
|
|
rather than directly
|
|
- `semver` crate to be used for version information in protocol and manager
|
|
- `is_compatible_with` function to root of `distant-protocol` crate that checks
|
|
if a provided version is compatible with the protocol
|
|
|
|
### Changed
|
|
|
|
- `distant_protocol::PROTOCOL_VERSION` now uses the crate's major, minor, and
|
|
patch version at compile-time (parsed via `const-str` crate) to streamline
|
|
version handling between crate and protocol
|
|
- Protocol and manager now supply a version request instead of capabilities and
|
|
the capabilities of protocol are now a `Vec<String>` to contain a set of more
|
|
broad capabilities instead of every possible request type
|
|
|
|
### Fixed
|
|
|
|
- CLI commands like `distant manager select` will now output errors in a JSON
|
|
format when configured to communicate using JSON
|
|
- `distant-ssh2` no longer caches the remote family globally, but instead
|
|
caches it per `Ssh` instance
|
|
|
|
### Removed
|
|
|
|
- `Cmd::program` and `Cmd::arguments` functions as they were misleading (didn't
|
|
do what `distant-local` or `distant-ssh2` do)
|
|
- Removed `Capability` and `Capabilities` from protocol and manager
|
|
|
|
## [0.20.0-alpha.12]
|
|
|
|
### Changed
|
|
|
|
- Minimum Rust version is now `1.70.0` due to bump in `grep-cli` minimum
|
|
requirement. This technically applied to v0.20.0-alpha.11, but wasn't caught
|
|
until the dependency updated
|
|
|
|
### Fixed
|
|
|
|
- `distant --help` will now return exit code of 0
|
|
- `distant --version` will now return exit code of 0
|
|
|
|
## [0.20.0-alpha.11]
|
|
|
|
### Added
|
|
|
|
- CLI now supports `-c <STR>` and `--cmd <STR>` to use a given string as the
|
|
command as an alternative to `-- <CMD> <ARG> <ARG>`
|
|
- Add build for FreeBSD
|
|
|
|
### Changed
|
|
|
|
- Cli no longer uses `-c` as shorthand for specifying a config file
|
|
- `--file` option for generating completion has been renamed to `--output`
|
|
- CLI command to generate config files now defaults to printing to stdout with
|
|
`--output` providing the option to write to a file
|
|
- Artifacts built now use format of `distant-<TRIPLE>`
|
|
|
|
## [0.20.0-alpha.10]
|
|
|
|
### Added
|
|
|
|
- `use_hidden`, `use_ignore_files`, `use_parent_ignore_files`,
|
|
`use_git_ignore`, `use_global_git_ignore`, and `use_git_exclude` as new
|
|
options for searching
|
|
|
|
### Changed
|
|
|
|
- Searching now disables all standard filters by default with re-introducing
|
|
the ability to set the filters by individual options
|
|
|
|
### Fixed
|
|
|
|
- Failing to start a search will no longer cause the search task to exit when
|
|
using the local server, which would result in no more searches being able to
|
|
be executed
|
|
|
|
## [0.20.0-alpha.9]
|
|
|
|
### Added
|
|
|
|
- `Request` and `Response` types from `distant-net` now support an optional
|
|
`Header` to send miscellaneous information
|
|
|
|
### Changed
|
|
|
|
- `Change` structure now provides a single `path` instead of `paths` with the
|
|
`distant-local` implementation sending a separate `Changed` event per path
|
|
- `ChangeDetails` now includes a `renamed` field to capture the new path name
|
|
when known
|
|
- `DistantApi` now handles batch requests in parallel, returning the results in
|
|
order. To achieve the previous sequential processing of batch requests, the
|
|
header value `sequence` needs to be set to true
|
|
- Rename `GenericServerRef` to `ServerRef` and remove `ServerRef` trait,
|
|
refactoring `TcpServerRef`, `UnixSocketServerRef`, and `WindowsPipeServerRef`
|
|
to use the struct instead of `Box<dyn ServerRef>`
|
|
- Update `Reply` trait and associated implementations to be non-blocking &
|
|
synchronous as opposed to asynchronous to avoid deadlocks and also be more
|
|
performant
|
|
|
|
### Fixed
|
|
|
|
- Username and password now support full character sets outside of `@` for
|
|
passwords and `:` and `@` for usernames
|
|
|
|
## [0.20.0-alpha.8]
|
|
|
|
### Added
|
|
|
|
- `distant-local` now has two features: `macos-fsevent` and `macos-kqueue`.
|
|
These are used to indicate what kind of file watching to support (for MacOS).
|
|
The default is `macos-fsevent`.
|
|
- `[server.watch]` configuration is now available with the following
|
|
settings:
|
|
- `native = <bool>` to specify whether to use native watching or polling
|
|
(default true)
|
|
- `poll_interval = <secs>` to specify seconds to wait between polling
|
|
attempts (only for polling watcher)
|
|
- `compare_contents = <bool>` to specify how polling watcher will evaluate a
|
|
file change (default false)
|
|
- `debounce_timeout = <secs>` to specify how long to wait before sending a
|
|
change notification (will aggregate and merge changes)
|
|
- `debounce_tick_rate = <secs>` to specify how long to wait between event
|
|
aggregation loops
|
|
- `distant-protocol` response for a change now supports these additional
|
|
fields:
|
|
- `timestamp` (serialized as `ts`) to communicate the seconds since unix
|
|
epoch when the event was received
|
|
- `details` containing `attributes` (clarify changes on attribute kind) and
|
|
`extra` (to convey arbitrary platform-specific extra information)
|
|
|
|
### Changed
|
|
|
|
- Bump minimum Rust version to 1.68.0
|
|
|
|
### Removed
|
|
|
|
- `crossbeam-channel` dependency removed from notify by disabling its feature
|
|
in order to avoid a `tokio::spawn` issue (https://github.com/notify-rs/notify/issues/380)
|
|
|
|
### Fixed
|
|
|
|
- usernames with `-` (hyphen) we're rejected as invalid
|
|
|
|
## [0.20.0-alpha.7]
|
|
|
|
### Added
|
|
|
|
- New `SetPermissions` enum variant on protocol request
|
|
- New `set_permissions` method available `DistantApi` and implemented by local
|
|
server (ssh unavailable due to https://github.com/wez/wezterm/issues/3784)
|
|
- Implementation of `DistantChannelExt::set_permissions`
|
|
- `distant version` to display information about connected server
|
|
- `distant manager service install` now accepts additional arguments to provide
|
|
the manager on startup
|
|
|
|
### Changed
|
|
|
|
- CLI `--lsp [<SCHEME>]` scheme now expects just the scheme and not `://`
|
|
- Moved `distant_net::common::authentication` to separate crate `distant-auth`
|
|
- Moved `distant_net::common::authentication::Keychain` to
|
|
`distant_net::common::Keychain`
|
|
- Moved `distant_net::common::transport::framed::codec::encryption::SecretKey`
|
|
and similar to `distant_net::common::SecretKey`
|
|
- Search matches reported with `match` key are now inlined as either a byte
|
|
array or a string and no longer an object with a `type` and `value` field
|
|
- Unset options and values are not now returned in `JSON` serialization versus
|
|
the explicit `null` value provided
|
|
- `Capabilities` message type has been changed to `Version` with new struct to
|
|
report the version information that includes a server version string,
|
|
protocol version tuple, and capabilities
|
|
- `distant_core::api::local` moved to `distant_local`
|
|
|
|
### Removed
|
|
|
|
- `distant capabilities` has been removed in favor of `distant version`
|
|
|
|
## [0.20.0-alpha.6]
|
|
|
|
### Changed
|
|
|
|
- Renamed `distant_core::data` to `distant_core::protocol`
|
|
- CLI `--lsp` now accepts an optional `scheme` to be used instead of
|
|
`distant://`, which is the default
|
|
- `RemoteLspProcess` now takes a second argument, `scheme`, which dictates
|
|
whether to translate `distant://` or something else
|
|
|
|
## [0.20.0-alpha.5]
|
|
|
|
### Added
|
|
|
|
- CLI now offers the following new subcommands
|
|
- `distant fs copy` is a refactoring of `distant client action copy`
|
|
- `distant fs exists` is a refactoring of `distant client action exists`
|
|
- `distant fs read` is a refactoring of `distant client action file-read`,
|
|
`distant client action file-read-text`, and `distant client action dir-read`
|
|
- `distant fs rename` is a refactoring of `distant client action rename`
|
|
- `distant fs write` is a refactoring of `distant client action file-write`,
|
|
`distant client action file-write-text`, `distant client action file-append`,
|
|
- `distant fs make-dir` is a refactoring of `distant client action dir-create`
|
|
- `distant fs metadata` is a refactoring of `distant client action metadata`
|
|
- `distant fs remove` is a refactoring of `distant client action remove`
|
|
- `distant fs search` is a refactoring of `distant client action search`
|
|
- `distant fs watch` is a refactoring of `distant client action watch`
|
|
- `distant spawn` is a refactoring of `distant client action proc-spawn`
|
|
with `distant client lsp` merged in using the `--lsp` flag
|
|
- `distant system-info` is a refactoring of `distant client action system-info`
|
|
- Search now supports `upward` as a directional setting to traverse upward
|
|
looking for results rather than recursing downward
|
|
|
|
### Changed
|
|
|
|
- CLI subcommands refactored
|
|
- `distant client select` moved to `distant manager select`
|
|
- `distant client action` moved to `distant action`
|
|
- `distant client launch` moved to `distant launch`
|
|
- `distant client connect` moved to `distant connect`
|
|
- `distant client lsp` moved to `distant lsp`
|
|
- `distant client repl` moved to `distant api`
|
|
- `distant client shell` moved to `distant shell`
|
|
|
|
### Removed
|
|
|
|
- `distant-core` crate no longer offers the `clap` feature
|
|
|
|
### Fixed
|
|
|
|
- `distant launch manager://localhost` now rejects a bind address of `ssh`
|
|
as the `SSH_CONNECTION` environment variable isn't available in most cases
|
|
|
|
## [0.20.0-alpha.4] - 2023-03-31
|
|
|
|
### Added
|
|
|
|
- Default configuration for `config.toml`
|
|
- Ability to generate default configuration using
|
|
`distant generate config /path/to/config.toml`
|
|
- `--current-dir` option for `distant client shell` and `distant client lsp`
|
|
|
|
### Changed
|
|
|
|
- Updated a variety of dependencies to latest versions
|
|
|
|
## [0.20.0-alpha.3] - 2022-11-27
|
|
|
|
### Added
|
|
|
|
- `Frame::empty` method as convenience for `Frame::new(&[])`
|
|
- `ClientConfig` to support `ReconnectStrategy` and a duration serving as the
|
|
maximum time to wait between server activity before attempting to reconnect
|
|
from the client
|
|
- Server sends empty frames periodically to act as heartbeats to let the client
|
|
know if the connection is still established
|
|
- Client now tracks length of time since last server activity and will attempt
|
|
a reconnect if no activity beyond that point
|
|
|
|
### Changed
|
|
|
|
- `Frame` methods `read` and `write` no longer return an `io::Result<...>`
|
|
and instead return `Option<Frame<...>>` and nothing respectively
|
|
- `Frame::read` method now supports zero-size items
|
|
- `Client::inmemory_spawn` and `UntypedClient::inmemory_spawn` now take a
|
|
`ClientConfig` as the second argument instead of `ReconnectStrategy`
|
|
- Persist option now removed from `ProcSpawn` message and CLI
|
|
- Bump minimum Rust version to 1.64.0
|
|
|
|
### Removed
|
|
|
|
- `--no-shell` option is removed as we automatically detect and use the PTY of
|
|
the remote system using a default shell
|
|
|
|
## [0.20.0-alpha.2] - 2022-11-20
|
|
|
|
### Added
|
|
|
|
- New `ConnectionState` and `ConnectionWatcher` to support watching changes to
|
|
the client connection, supporting `clone_connection_watcher` and
|
|
`on_connection_change` methods for the client
|
|
|
|
### Changed
|
|
|
|
- Server will now drop the connection if it receives an error (other than
|
|
WouldBlock) while trying to read from the transport, rather than just logging
|
|
the error, regardless of whether the error is resumable
|
|
|
|
## [0.20.0-alpha.1] - 2022-11-19
|
|
|
|
**NOTE: This is incomplete as v0.20.0 is a near-complete rewrite internally.**
|
|
|
|
### Added
|
|
|
|
- New `contains` and `or` types for `SearchQueryCondition`
|
|
|
|
### Changed
|
|
|
|
- `SearchQueryCondition` now escapes regex for all types except `regex`
|
|
- Removed `min_depth` option from search
|
|
- Updated search to properly use binary detection, filter out common ignore
|
|
file patterns, and execute in parallel via the `ignore` crate and `num_cpus`
|
|
crate to calculate thread count
|
|
|
|
### Fixed
|
|
|
|
- Resolution of `BindAddress` now properly handles hostnames ranging from
|
|
`localhost` to `example.com`
|
|
- Parsing of `BindAddress` no longer causes a stack overflow
|
|
|
|
## [0.19.0] - 2022-08-30
|
|
### Added
|
|
|
|
- `SystemInfo` via ssh backend now detects and reports username and shell
|
|
- `SystemInfo` via ssh backend now reports os when windows detected
|
|
- `Capabilities` request/response for server and manager that report back the
|
|
capabilities (and descriptions) supported by the server or manager
|
|
- `Search` and `CancelSearch` request/response for server that performs a
|
|
search using `grep` crate against paths or file contents, returning results
|
|
back as a stream
|
|
- New `Searcher` available as part of distant client interface to support
|
|
performing a search and getting back results
|
|
- Updated `DistantChannelExt` to support creating a `Searcher` and canceling
|
|
an ongoing search query
|
|
- `distant client action search` now supported, waiting for results and
|
|
printing them out
|
|
|
|
### Changed
|
|
|
|
- `SystemInfo` data type now includes two additional fields: `username` and
|
|
`shell`. The `username` field represents the name of the user running the
|
|
server process. The `shell` field points to the default shell associated with
|
|
the user running the server process
|
|
|
|
### Fixed
|
|
|
|
- `distant client shell` will now use the default shell from system info, or
|
|
choose between `/bin/sh` and `cmd.exe` as the default shell based on the
|
|
family returned by a system info request
|
|
- `distant client shell` properly terminates master pty when the shell exits,
|
|
resolving the hanging that occurred for Windows `cmd.exe` and
|
|
`powershell.exe` upon exit
|
|
- ssh launch with login shell now only uses `sh` when remote family is `unix`
|
|
- ssh backend implementation of copy now works more widely across windows
|
|
systems by switching to `powershell.exe` to perform copy
|
|
|
|
## [0.18.0] - 2022-08-18
|
|
### Changed
|
|
|
|
- `shutdown-after` replaced with `shutdown` that supports three options:
|
|
1. `never` - server will never shutdown automatically
|
|
2. `after=N` - server will shutdown after N seconds
|
|
3. `lonely=N` - server will shutdown N seconds after no connections
|
|
|
|
## [0.17.6] - 2022-08-18
|
|
### Fixed
|
|
|
|
- `shutdown-after` cli parameter and config option now properly shuts down
|
|
server after N seconds with no connections
|
|
|
|
## [0.17.5] - 2022-08-18
|
|
### Fixed
|
|
|
|
- Handle `RecommendedWatcher` failing with an unsupported OS function on M1 Mac
|
|
architecture running a Linux container via Docker
|
|
([notify #423](https://github.com/notify-rs/notify/issues/423))
|
|
|
|
## [0.17.4] - 2022-08-18
|
|
### Fixed
|
|
|
|
- Parsing of a host for `Destination` now correctly handles IPv6 addresses such
|
|
that `::1` and `[::1]:12345` are captured into host and port
|
|
- Displaying of `Distant` and `DistantSingleKeyCredentials` now properly wrap
|
|
IPv6 addresses in square brackets when a port is available
|
|
|
|
## [0.17.3] - 2022-08-18
|
|
### Added
|
|
|
|
- New `ClientConnectConfig` to support connect settings, specifically for ssh
|
|
- `Host` with `HostParseError` that follows the
|
|
[DoD Internet Host Table Specification](https://www.ietf.org/rfc/rfc0952.txt)
|
|
and subsequent [RFC-1123](https://www.rfc-editor.org/rfc/rfc1123)
|
|
|
|
### Changed
|
|
|
|
- `Destination` now has direct fields for scheme, username, password, host, and
|
|
port that are populated from parsing
|
|
- `Destination` no longer wraps `uriparse::URI` and all references to
|
|
implementing/wrapping have been removed
|
|
|
|
### Fixed
|
|
|
|
- `ssh` option to specify external binary not working on `launch` due to the
|
|
key being mis-labeled as `ssh.bind` instead of `ssh.bin`
|
|
- All ssh settings were not being applied with manager handlers due to some key
|
|
checks being incorrect (e.g. `backend` instead of `ssh.backend`). This has
|
|
now been corrected and settings now properly get applied
|
|
|
|
### Removed
|
|
|
|
- The ssh settings of `ssh.user` and `ssh.port` were unused as these were now
|
|
being taking from the destination `ssh://[username:]host[:port]`, so they
|
|
have now been removed to avoid confusion
|
|
- Remove `uriparse` dependency
|
|
|
|
## [0.17.2] - 2022-08-16
|
|
### Added
|
|
|
|
- `replace_scheme` method to `Destination`
|
|
|
|
### Fixed
|
|
|
|
- `DistantManagerRouter` no longer silently fails when `distant.args` is
|
|
provided that includes double quotes within it
|
|
|
|
### Changed
|
|
|
|
- `Map` implementation of `Display` now escapes `\` and `"`
|
|
- `Map` implementation of `FromStr` now handles escaped `\` and `"`
|
|
- Split `fallback_scheme` for `DistantManagerConfig` into
|
|
`launch_fallback_scheme` (defaulting to ssh) and `connect_fallback_scheme`
|
|
(defaulting to distant); this means that subsequent use of
|
|
`distant client launch [user@]host[:port]` will now default to ssh instead of
|
|
failing due to lack of distant launch handler
|
|
- Expose `windows-pipe` and `unix-socket` config and cli options regardless of
|
|
platform (so they can be provided without worrying about which OS)
|
|
- Lock `--access` to `distant manager listen` as a cli parameter and move it
|
|
out of `[network]` config to be tied to manager config only
|
|
|
|
## [0.17.1] - 2022-08-16
|
|
### Added
|
|
|
|
- New `format` option available for `client select`
|
|
- Choices are provided via `{"type": "select", "choices": ["...", ...], "current": 0}`
|
|
- Selection is specified via `{"type": "selected", "choice": 0}`
|
|
|
|
### Fixed
|
|
|
|
- `distant client launch` using `--format json` now properly prints out id in
|
|
JSON format (`{"type": "launched", "id": "..."}`)
|
|
- `distant client connect` using `--format json` now properly prints out id in
|
|
JSON format (`{"type": "connected", "id": "..."}`)
|
|
|
|
## [0.17.0] - 2022-08-09
|
|
### Added
|
|
|
|
- `distant manager` subcommand
|
|
- `distant manager service` subcommand contains functionality to install,
|
|
start, stop, and uninstall the manager as a service on various operating
|
|
systems
|
|
- `distant manager info` will print information about an active connection
|
|
- `distant manager list` will print information about all connections
|
|
- `distant generate` subcommand
|
|
- `distant generate schema` will produce JSON schema for server
|
|
request/response
|
|
- `distant generate completion` will produce completion file for a specific
|
|
shell
|
|
|
|
### Changed
|
|
|
|
- `distant launch` is now `distant client launch`
|
|
- `distant action` is now `distant client action`
|
|
- `distant shell` is now `distant client shell`
|
|
- `distant listen` is now `distant server listen`
|
|
- Minimum supported rust version (MSRV) has been bumped to `1.61.0`
|
|
|
|
### Fixed
|
|
|
|
- Shell no longer has issues with fancier command prompts and other
|
|
terminal-oriented printing as `TERM=x256-color` is now set by default
|
|
|
|
### Removed
|
|
|
|
- Networking directly from distant client to distant server. All connections
|
|
are now facilitated by the manager interface with client -> manager -> server
|
|
- Environment variable output as part of launch is now gone as the connection
|
|
is now being managed, so there is no need to export session information
|
|
|
|
## [0.16.4] - 2022-06-01
|
|
### Added
|
|
- Dockerfile using Alpine linux with a basic install of distant, tagged as
|
|
`chipsenkbeil/distant:0.16.3` and `chipsenkbeil/distant:0.16.4`
|
|
|
|
### Fixed
|
|
- [Issue #90](https://github.com/chipsenkbeil/distant/issues/90)
|
|
- [Issue #103](https://github.com/chipsenkbeil/distant/issues/103)
|
|
|
|
## [0.16.3] - 2022-05-29
|
|
### Added
|
|
- New `--ssh-backend` option for CLI that accepts `libssh` or `ssh2` for
|
|
native backend ssh support
|
|
- `distant_ssh2::SshBackend` now supports parsing from a `&str` and producing a
|
|
`&'static str` from an instance
|
|
|
|
## [0.16.2] - 2022-05-27
|
|
### Changed
|
|
- The following fields now default to false when missing in JSON request body
|
|
- For `DirRead`: `absolute`, `canonicalize`, `include_root`
|
|
- For `DirCreate`: `all`
|
|
- For `Remove`: `force`
|
|
- For `Watch`: `recursive`
|
|
- For `Metadata`: `canonicalize` and `resolve_file_type`
|
|
- For `ProcSpawn`: `args` (empty list), `persist`, and `pty` (nothing)
|
|
|
|
## [0.16.1] - 2022-05-13
|
|
### Changed
|
|
- Lock in to Rust openssl 0.10.38 as it is the last version that supports using
|
|
openssl 3.x.x before reverting
|
|
|
|
## [0.16.0] - 2022-05-12
|
|
### Added
|
|
- New `environment` session type that prints out environment variable
|
|
definitions for use in an interactive session or to evaluate
|
|
- Shell support introduced for ssh & distant servers, including a new shell
|
|
command for distant cli
|
|
- Support for JSON communication of ssh auth during launch (cli)
|
|
- Add windows and unix metadata files to overall metadata response data
|
|
- Watch and unwatch cli commands powered by underlying `Watcher` core
|
|
implementation that uses new `RequestData::Watch`, `RequestData::Unwatch`,
|
|
and `ResponseData::Changed` data types to communicate filesystem changes
|
|
|
|
### Changed
|
|
- Default session type for CLI (launch, action, etc) is `environment`
|
|
- Replace cbor library with alternative as old cbor lib has been abandoned
|
|
- Refactor some request & response types to work with new cbor lib
|
|
- Updated cli to always include serde dependency
|
|
- Expose `origin_id` of remote process as method
|
|
- Rename ProcRun -> ProcSpawn, ProcStarted -> ProcSpawned
|
|
- Update ProcStdin, ProcStdout, and ProcStderr to use list of bytes instead
|
|
of a string as a parameter; RemoteProcess and RemoteLspProcess now support
|
|
reading and writing using either `String` or `Vec<u8>`
|
|
- Rename `--detached` and associated to `--persist`
|
|
|
|
### Removed
|
|
- Github actions no longer use paths-filter so every PR & commit will test
|
|
everything
|
|
- `distant-lua` and `distant-lua-test` no longer exist as we are focusing
|
|
solely on the JSON API for integration into distant
|
|
|
|
## [0.15.1] - 2021-11-15
|
|
### Added
|
|
- `--key-from-stdin` option to listen cli command to read key from stdin
|
|
instead of generating
|
|
- More logging to distant and ssh handler *proc run* methods
|
|
- Disclaimer to distant session about dns resolution
|
|
|
|
### Changed
|
|
- Improve the distant-core readme
|
|
|
|
### Removed
|
|
- DNS resolution for ssh session
|
|
|
|
## [0.15.0] - 2021-10-16
|
|
### Added
|
|
- distant-ssh2 subcrate to provide an alternate session as an ssh client
|
|
- distant-lua subcrate for lua lib
|
|
- `rpassword` & `wezterm-ssh` dependencies for distant-ssh2 and
|
|
`XChaCha20Poly1305` dependency in place of `orion` for encryption
|
|
- `Codec` trait to support encode & decode
|
|
- `XChaCha20Poly1305Codec` that encrypts/signs using *XChaCha20Poly1305*
|
|
- `PlainCodec` that does no encrypting/signing
|
|
- `SessionChannelExt` trait for friendlier methods
|
|
- `Mailbox` and internal `PostOffice` to manage responses to requests
|
|
- Method parameter to support distant & ssh methods for action and lsp subcommands
|
|
- Support compiling distant cli on windows (#59)
|
|
- `status` method to `RemoteProcess`
|
|
|
|
### Changed
|
|
- Refactor Transport to take generic Codec
|
|
- Rewrite to no longer use blake256
|
|
- Refactor `Session` to use a new `SessionChannel` underneath
|
|
- Refactor `Response` to always include an *origin_id* field instead of being
|
|
optional
|
|
- Update `ProcStdout`, `ProcStderr`, and `ProcDone` to include origin id
|
|
- Replace `verbose` option with `log-level`
|
|
- Replace `DISTANT_AUTH_KEY` with `DISTANT_KEY` for environment variable parsing
|
|
- Refactor to support Minimum Supported Rust Version (MSRV) of 1.51.0
|
|
- Rename core -> distant-core in project directory structure
|
|
- Upgrade tokio to 1.12
|
|
- Update `Metadata` to be
|
|
- cloneable
|
|
- debuggable
|
|
- serializable
|
|
- deserializable
|
|
- Refactor `Metadata` and `SystemInfo` response data types to support
|
|
subtypes as singular parameters
|
|
- Replace `--daemon` in favor of opposite parameter `--foreground`
|
|
|
|
### Removed
|
|
- `DistantCodec`
|
|
- `k256` dependency
|
|
- `Transport::from_handshake` as no longer doing *EDCH key exchange*
|
|
|
|
### Fixed
|
|
- Stdout/stderr being sent before *proc_start* by adding *post_hook* support
|
|
to handler such that *proc_run* tasks are not spawned until *proc_start* is
|
|
sent as response
|
|
- `InmemoryStreamWriteHalf` implementation of AsyncWrite now properly yields
|
|
pending upon full channel and no longer locks up
|
|
- stdout, stderr, and stdin of `RemoteProcess` no longer cause deadlock
|
|
|
|
[Unreleased]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.13...HEAD
|
|
[0.20.0-alpha.13]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.12...v0.20.0-alpha.13
|
|
[0.20.0-alpha.12]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.11...v0.20.0-alpha.12
|
|
[0.20.0-alpha.11]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.10...v0.20.0-alpha.11
|
|
[0.20.0-alpha.10]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.9...v0.20.0-alpha.10
|
|
[0.20.0-alpha.9]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.8...v0.20.0-alpha.9
|
|
[0.20.0-alpha.8]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.7...v0.20.0-alpha.8
|
|
[0.20.0-alpha.7]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.6...v0.20.0-alpha.7
|
|
[0.20.0-alpha.6]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.5...v0.20.0-alpha.6
|
|
[0.20.0-alpha.5]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.4...v0.20.0-alpha.5
|
|
[0.20.0-alpha.4]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.3...v0.20.0-alpha.4
|
|
[0.20.0-alpha.3]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.2...v0.20.0-alpha.3
|
|
[0.20.0-alpha.2]: https://github.com/chipsenkbeil/distant/compare/v0.20.0-alpha.1...v0.20.0-alpha.2
|
|
[0.20.0-alpha.1]: https://github.com/chipsenkbeil/distant/compare/v0.19.0...v0.20.0-alpha.1
|
|
[0.19.0]: https://github.com/chipsenkbeil/distant/compare/v0.18.0...v0.19.0
|
|
[0.19.0]: https://github.com/chipsenkbeil/distant/compare/v0.18.0...v0.19.0
|
|
[0.18.0]: https://github.com/chipsenkbeil/distant/compare/v0.17.6...v0.18.0
|
|
[0.17.6]: https://github.com/chipsenkbeil/distant/compare/v0.17.5...v0.17.6
|
|
[0.17.5]: https://github.com/chipsenkbeil/distant/compare/v0.17.4...v0.17.5
|
|
[0.17.4]: https://github.com/chipsenkbeil/distant/compare/v0.17.3...v0.17.4
|
|
[0.17.3]: https://github.com/chipsenkbeil/distant/compare/v0.17.2...v0.17.3
|
|
[0.17.2]: https://github.com/chipsenkbeil/distant/compare/v0.17.1...v0.17.2
|
|
[0.17.1]: https://github.com/chipsenkbeil/distant/compare/v0.17.0...v0.17.1
|
|
[0.17.0]: https://github.com/chipsenkbeil/distant/compare/v0.16.4...v0.17.0
|
|
[0.16.4]: https://github.com/chipsenkbeil/distant/compare/v0.16.3...v0.16.4
|
|
[0.16.3]: https://github.com/chipsenkbeil/distant/compare/v0.16.2...v0.16.3
|
|
[0.16.2]: https://github.com/chipsenkbeil/distant/compare/v0.16.1...v0.16.2
|
|
[0.16.1]: https://github.com/chipsenkbeil/distant/compare/v0.16.0...v0.16.1
|
|
[0.16.0]: https://github.com/chipsenkbeil/distant/compare/v0.15.1...v0.16.0
|
|
[0.15.1]: https://github.com/chipsenkbeil/distant/compare/v0.15.0...v0.15.1
|
|
[0.15.0]: https://github.com/chipsenkbeil/distant/compare/v0.14.0...v0.15.0
|