@@ -5,6 +5,88 @@ All notable changes to bssh will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ 1.5.0-rc1] - 2025-12-17
9+
10+ ### Added
11+ - ** pdsh Compatibility Mode** (Issues #100 -103, #105 , #107 , #110 )
12+ - Full pdsh-style command line compatibility when invoked as ` pdsh ` or with ` --pdsh-compat `
13+ - ` -w hosts ` option mapped to ` -H hosts ` for target host specification
14+ - ` -x hosts ` option mapped to ` --exclude hosts ` for host exclusion
15+ - ` -f N ` option mapped to ` --parallel N ` for fanout control
16+ - ` -l user ` option for remote username
17+ - ` -t N ` option mapped to ` --connect-timeout N ` for connection timeout
18+ - ` -u N ` option mapped to ` --timeout N ` for command timeout
19+ - ` -N ` option mapped to ` --no-prefix ` for disabling hostname prefix in output
20+ - ` -b ` option mapped to ` --batch ` for single Ctrl+C termination
21+ - ` -k ` option mapped to ` --fail-fast ` for stop on first failure
22+ - ` -q ` query mode to show target hosts and exit
23+ - ` -S ` option mapped to ` --any-failure ` for returning largest exit code
24+
25+ - ** Hostlist Expressions** (Issue #107 )
26+ - pdsh-style range expansion: ` node[1-5] ` → node1, node2, node3, node4, node5
27+ - Zero-padded ranges: ` node[01-05] ` → node01, node02, node03, node04, node05
28+ - Comma-separated values: ` node[1,3,5] ` → node1, node3, node5
29+ - Cartesian product: ` rack[1-2]-node[1-3] ` → 6 hosts
30+ - Domain suffix support: ` web[1-3].example.com `
31+ - User and port preservation: ` admin@db[01-03]:5432 `
32+ - File input with ` ^/path/to/hostfile `
33+
34+ - ** In-TUI Log Panel** (Issue #106 )
35+ - Toggle visibility with ` l ` key
36+ - Color-coded by level: ERROR (red), WARN (yellow), INFO (white), DEBUG (gray)
37+ - Configurable buffer size via ` BSSH_TUI_LOG_MAX_ENTRIES ` (default: 1000, max: 10000)
38+ - Panel height adjustable from 3-10 lines with ` + ` /` - ` keys
39+ - Scroll with ` j ` /` k ` keys, toggle timestamps with ` t `
40+
41+ - ** --fail-fast Option** (Issue #103 )
42+ - ` -k ` / ` --fail-fast ` flag to stop immediately on first failure
43+ - Compatible with pdsh ` -k ` option
44+ - Cancels pending commands when any node fails
45+ - Can be combined with ` --require-all-success ` for strict error handling
46+
47+ - ** --batch Option** (Issue #102 )
48+ - ` -b ` / ` --batch ` flag for single Ctrl+C termination
49+ - Compatible with pdsh ` -b ` option
50+ - Useful for non-interactive scripts and CI/CD pipelines
51+
52+ - ** --exclude Option** (Issue #100 )
53+ - ` --exclude ` / ` -x ` for host exclusion
54+ - Supports wildcards, glob patterns, and hostlist expressions
55+ - Applied after ` --filter ` option
56+
57+ - ** --no-prefix Option** (Issue #101 )
58+ - ` -N ` / ` --no-prefix ` for disabling hostname prefix in output
59+ - Compatible with pdsh ` -N ` option
60+ - Works with both stream mode and file mode
61+
62+ - ** --connect-timeout Option** (PR #103 )
63+ - Separate connection timeout from command execution timeout
64+ - Default: 30 seconds, minimum: 1 second
65+ - Useful for fast failure detection on unreachable hosts
66+
67+ ### Changed
68+ - ** CI Workflow Simplification**
69+ - Merged multiple jobs into single pipeline for efficiency
70+
71+ ### Fixed
72+ - ** Environment Variable Test Race Conditions**
73+ - Added ` #[serial] ` attribute to env var tests to prevent race conditions
74+ - Tests now run sequentially when accessing shared environment state
75+
76+ - ** Connect Timeout Propagation**
77+ - Fixed connect_timeout not being propagated through all SSH connection paths
78+
79+ ### Documentation
80+ - ** Architecture Restructure** (Issue #109 )
81+ - Restructured ARCHITECTURE.md into modular documentation
82+ - Removed residual dates and fixed incomplete sentences
83+
84+ - ** pdsh Compatibility Documentation** (Issue #110 )
85+ - Added comprehensive pdsh migration guide (docs/pdsh-migration.md)
86+ - Added pdsh options reference (docs/pdsh-options.md)
87+ - Added pdsh usage examples (docs/pdsh-examples.md)
88+ - Added installation scripts for pdsh symlink setup
89+
890## [ 1.4.2] - 2025-12-16
991
1092### Fixed
513595- russh library for native SSH implementation
514596- Cross-platform support (Linux and macOS)
515597
598+ [ 1.5.0-rc1 ] : https://github.com/lablup/bssh/compare/v1.4.2...v1.5.0rc1
516599[ 1.4.2 ] : https://github.com/lablup/bssh/compare/v1.4.1...v1.4.2
517600[ 1.4.1 ] : https://github.com/lablup/bssh/compare/v1.4.0...v1.4.1
518601[ 1.4.0 ] : https://github.com/lablup/bssh/compare/v1.3.0...v1.4.0
0 commit comments