Releases: crazyscot/qcp
Releases · crazyscot/qcp
v0.4.2
⛰️ Features
- Report peak transfer speed - (2d4c25f)
🐛 Bug Fixes
- Pre-flight configuration validation when not all fields are set - (e3eb0bd)
⚙️ Miscellaneous Tasks
- Update readme - (f797e7d)
Download notes
- Debian and Ubuntu users will likely find the .deb packages convenient.
- Other Linux distributions, use
qcp-<ARCH>-unknown-linux-musl.tar.gz
. These are static musl binaries which should work on all distributions.
v0.4.1
⛰️ Features
- Make ANSI colour support optional via config / CLI / environment variables - (e42f4aa)
- Send long CLI output to pager (--help, --show-config) - (b88c49d)
- --show-config also reports validation errors - (c9fd657)
🐛 Bug Fixes
- Correctly apply 8000 system default ssh_config and ssh_options (#113) - (0ff032a)
- SshConfig / SshOptions configuration allow a single string (#113) - (d0b5462)
- Make SshSubsystem in config files work properly (#112) - (e9f1090)
- Use anstream::eprintln instead of plain eprintln - (4530327)
🎨 Styling
- (windows) Change table style so it doesn't output mojibake when sent to more - (65b6a9f)
🧪 Testing
- Move unsafe tests out to a separate helper crate - (e1ae4b2)
- Various unit tests added (df7e3a8) (06002d2) (d3b79f8) (1e1823f) (6fb7a64) & refactored (27c5c97)
🏗️ Build, packaging & CI
⚙️ Miscellaneous Tasks
- (safety) Remove unsafe code, add safety policy - (094193d)
- (test) Fix test leaving stray files in source tree - (8745dbb)
- Many internal rearrangements for readability and testability
LitterTray
is now a separate crate - (b67d4bb)- Mark some structs and functions as public to support an external testing crate - (30a24ba)
- Remove suboptimal error coercion in PortRange - (a579805)
- Fix/silence linter warnings for rust 1.87 - (8aeb3f8)
- Update manpages, fix garbage - (0bc9574)
- Unify Rust edition 2024 across the workspace - (73c7249)
- Fix dead code warnings on windows builds - (ceeded1)
- Reduce the number of config extractions we perform - (41b2aad) (d94c3b2)
🚜 Refactor
Download notes
- Debian and Ubuntu users will likely find the .deb packages convenient.
- Other Linux distributions, use
qcp-<ARCH>-unknown-linux-musl.tar.gz
. These are static musl binaries which should work on all distributions.
v0.4.0
⛰️ Features
- (config) Support ~/.config/qcp/qcp.conf on unix - (799d2ba)
- Add Windows build - (b4af92a)
- [breaking] Add -l login-name (same short-option as ssh) - (d7fd7d0)
- Platform support for OSX and BSD family (#71) - (3302685)
- Introduce --ssh-subsystem mode - (3faabc5)
- Initial-congestion-window can now be specified as an SI quantity (10k, etc) - (73e085e)
- Use mimalloc as memory allocator on all builds, in secure mode by default - (6ec2f99)
🐛 Bug Fixes
- (cosmetic) Remove struct verbiage from debug output - (dcfe102)
- (cosmetic) When compatibility levels are equal, don't say that one is newer - (5312a3a)
- (protocol) Improve reliability of Put pre-transfer check - (acc3d1a)
- (test) Occasional random test failure - (28663a3)
- (test) Make tracing::setup idempotent - (92afb90)
- User@host syntax on command line - (fa0eecd)
- Report i/o errors from Put more reliably - (783e0d5)
- Remove TOCTTOU bug in Put destination checks - (90977f3)
📚 Documentation
- Autogenerate part of qcp_config.5; add to xtask man; tweak wording - (8077399)
- Add note to build in release mode for best performance - (41ba6d9)
- Fix broken links in readme on crates.io - (064a67d)
⚡ Performance
- Slight performance improvements to PUT - (19cfcf9)
🧪 Testing
- (fix) Make test_progress_bar_for() CI-proof - (e5b3dde)
- Improve unit test coverage in utils - (3f40c8f)
- Refactor control/process.rs for testability - (f74870b)
- Use nightly toolchain for coverage; exclude test modules from analysis (#43) - (ee40c66)
- Introduce LitterTray utility - (42eec69)
🏗️ Build, packaging & CI
- Stop shipping licenses.html - (c4a62d4)
- Pivot windows builds to mingw - (237ad81)
- Add codecov reporting - (935f125)
- Include a subsystem config for /etc/ssh/sshd_config.d - (e2780a8)
- Improve comments in the default system qcp.conf; add SshSubsystem - (923af7d)
- Include additional files in the tarballs - (9ae6bb3)
- Tweak build-time tag version check - (0bb779f)
⚙️ Miscellaneous Tasks
- Util::open_file returns a less complex error type - (22f7d07)
- Autoformat cargo.toml x3 - (f308eb0)
- Return type of set_udp_buffer_sizes - (1358232)
- Output full error context when we might have one - (fe875af)
- Add platform initialiser, seal SocketOptions to ensure it is always called - (ccf3b49)
- Remove user_config_dir from AbstractPlatform - (f75e199)
- Promote transport::ConfigBucket to crate visibility as config::ConfigProvider - (232fb75)
- Linter fixes for rust 1.86 - (2dd28cc)
- Tweak badge config in readme - (3542a67)
- Tidy up crate exports - (248242e)
- Update to rust 2024 / MSRV 1.85 - (cc6f3e7)
🚜 Refactor
- Use homedir (cross-platform) instead of pwd (works on unix only) - (b44929f)
- Ssh config file parsing, to allow retrieval of arbitrary keys - (429a64d)
- Ssh::files::Parser: deduplicate value sources - (aaf4dc1)
- Ssh::files::Parser construction - (7eb1c74)
- Merge ssh::ConfigFile constructors - (30dbcef)
- Align Platform return types - (de7e611)
- Pivot socket back-end to use rustix - (58d813b)
- Explicitly pass setup_tracing function to run_server - (1c12702)
- Minimise binary crate main function - (8a72cf8)
- Consolidate control channel functionality module; add unit tests - (2a9a356)
- Consolidate session protocol implementations; add unit tests - (71169cc)
- Move CopyJobSpec sharable construction logic into a constructor - (9535e49)
- Move CongestionController(Type) into protocol - (73b46ec)
Download notes
- Debian and Ubuntu users will likely find the .deb packages convenient.
- Other Linux distributions, use
qcp-<ARCH>-unknown-linux-musl.tar.gz
. These are static musl binaries which should work on all distributions.
v0.3.3
🛡️ Security
- bump ring from 0.17.11 to 0.17.13 to address potential overflow panic - (06cd47b)
Download notes
- Debian and Ubuntu users may find the .deb packages convenient.
- The Linux binary builds
qcp-<ARCH>-unknown-linux-musl.tar.gz
are static musl binaries which should work on all distributions.
v0.3.2
v0.3.1
⛰️ Features
📚 Documentation
🏗️ Build, packaging & CI
- Generate CycloneDX SBOM files and include in release bundles - (f2d4626)
- Generate licenses.html, include in bundles - (e3ce44f)
- Set up xtasks for man page, licenses.html, dummy debian changelog
- Rearrange source into a workspace - (e4b05bf)
⚙️ Miscellaneous Tasks
🚜 Refactor
- Rework --help-buffers mode - (d461eaf)
Download notes
- Debian and Ubuntu users may find the .deb packages convenient.
- The Linux binary builds
qcp-<ARCH>-unknown-linux-musl.tar.gz
are static musl binaries which should work on all distributions.
v0.3.0
⛰️ Features
- [breaking] Compute a negotiated transport configuration based on optional preferences from either side (#32) - (0af6eff)
- Server can send a failure message during control protocol - (445ec4e)
- Add --remote-config mode - (6de53e1)
- Server uses the ssh remote client address to select configuration - (b06475b)
- Add --dry-run mode - (b74f080)
🐛 Bug Fixes
- Client correctly marshalls remote_port as None when not specified - (d1b0054)
- Resolve --tx 0 correctly - (573c9b4)
- Always ssh to the entered ssh hostname, so we respect any aliasing in ssh_config - (f9421a5)
- Username is not part of the hostname when parsing config - (3544219)
🎨 Styling
- Improve server error messages (show detail as well as context) - (d010535)
- Improve tracing and debug output - (663bc3e)
🧪 Testing
- Complete test coverage in protocol module - (b3473b0)
- Add coveralls - (abac087)
- Add unit tests for client::options - (bffba19)
- Fill in job.rs unit tests - (ae835bc)
- Add local coverage script - (57f044a)
⚙️ Miscellaneous Tasks
- [breaking] Change protocol encoding from capnp to BARE - (85a1243)
- Size limits for on-wire messages - (9f6ef11)
- Improve error message when remote uses the old protocol - (7cc27de)
🚜 Refactor
- Config combination produces a first-class Figment - (8bdb623)
- Deduplicate configuration validation logic - (af320be)
- Tidyup config manager and client child process handling - (e44a54f)
- Make PortRange.combine() more coherent - (c2877e5)
- Various tidyups in support of transport negotiation - (cd4a30a)
- Drop expanduser; do the work in-house instead - (43cfbd3)
- Remove MODE_OPTIONS which wasn't used in a well-defined way - (390ee6f)
Download notes
- Debian and Ubuntu users may find the .deb packages convenient.
- The Linux binary builds
qcp-<ARCH>-unknown-linux-musl.tar.gz
are static musl binaries which should work on all distributions.
v0.2.1
⛰️ Features
- Improved parsing flexibility for bandwidth (12.3M, etc) - (389b21a)
🐛 Bug Fixes
- Validate configuration before attempting to use - (d3f13ec)
🎨 Styling
- Align console messages outside of tracing - (e9e651a)
🚜 Refactor
- Align return codes from cli_main, server_main and client_main - (7f2b243)
- SshConfigError uses thiserror to implement standard Error - (16ef7ed)
Download notes
- Debian and Ubuntu users may find the .deb packages convenient.
- The Linux binary builds
qcp-<ARCH>-unknown-linux-musl.tar.gz
are static musl binaries which should work on all distributions.
v0.2.0
⛰️ Features
- [breaking] Configuration file system (#17) - (0baf2ba)
- Look up host name aliases in ssh_config (#22) - (46c450d)
- Allow user to specify the time stamp format for printed/logged messages - (4eaf2ec)
🐛 Bug Fixes
- Use correct format for the remote endpoint network config debug message - (183e5fb)
- Always use the same address family with ssh and quic - (084904d)
📚 Documentation
- Tidy up --help ordering, update man pages, tidy up doc comments - (3837827)
- Update project policies and notes - (399422b)
🎨 Styling
- Show Opening control channel message - (4d14a26)
🏗️ Build, packaging & CI
- Build rust binaries with --locked - (5f0af1f)
- Set git_release_draft=true, update MAINTENANCE.md - (a25bf8b)
- Add cargo doc task to include private items; fix that build - (c8298e2)
- Speed up link times - (c6465ad)
- Add Debian postinst script (#13) - (1a4e10e)
⚙️ Miscellaneous Tasks
- Add feature flag to enable rustls logging (on by default) - (4ac1774)
- Make HumanU64 parse errors more useful - (63bf2f2)
- Make PortRange parse errors more useful - (013ea2b)
- Update dependencies
Download notes
- Debian and Ubuntu users may find the .deb packages convenient.
- The Linux binary builds
qcp-<ARCH>-unknown-linux-musl.tar.gz
are static musl binaries which should work on all distributions.