v1.5.0
Pre-release
Pre-release
v1.5.0 Release
This release introduces comprehensive pdsh compatibility mode, hostlist expressions, and TUI improvements.
New Features
-
pdsh Compatibility Mode (Issues #100-103, #105, #107, #110)
- Full pdsh-style command line compatibility when invoked as
pdshor with--pdsh-compat -w hostsoption mapped to-H hostsfor target host specification-x hostsoption mapped to--exclude hostsfor host exclusion-f Noption mapped to--parallel Nfor fanout control-l useroption for remote username-t Noption mapped to--connect-timeout Nfor connection timeout-u Noption mapped to--timeout Nfor command timeout-Noption mapped to--no-prefixfor disabling hostname prefix in output-boption mapped to--batchfor single Ctrl+C termination-koption mapped to--fail-fastfor stop on first failure-qquery mode to show target hosts and exit-Soption mapped to--any-failurefor returning largest exit code
- Full pdsh-style command line compatibility when invoked as
-
Hostlist Expressions (Issue #107)
- pdsh-style range expansion:
node[1-5]→ node1, node2, node3, node4, node5 - Zero-padded ranges:
node[01-05]→ node01, node02, node03, node04, node05 - Comma-separated values:
node[1,3,5]→ node1, node3, node5 - Cartesian product:
rack[1-2]-node[1-3]→ 6 hosts - Domain suffix support:
web[1-3].example.com - User and port preservation:
admin@db[01-03]:5432 - File input with
^/path/to/hostfile
- pdsh-style range expansion:
-
In-TUI Log Panel (Issue #106)
- Toggle visibility with
lkey - Color-coded by level: ERROR (red), WARN (yellow), INFO (white), DEBUG (gray)
- Configurable buffer size via
BSSH_TUI_LOG_MAX_ENTRIES(default: 1000, max: 10000) - Panel height adjustable from 3-10 lines with
+/-keys - Scroll with
j/kkeys, toggle timestamps witht
- Toggle visibility with
-
--fail-fast Option (Issue #103)
-k/--fail-fastflag to stop immediately on first failure- Compatible with pdsh
-koption - Cancels pending commands when any node fails
- Can be combined with
--require-all-successfor strict error handling
-
--batch Option (Issue #102)
-b/--batchflag for single Ctrl+C termination- Compatible with pdsh
-boption - Useful for non-interactive scripts and CI/CD pipelines
-
--exclude Option (Issue #100)
--exclude/-xfor host exclusion- Supports wildcards, glob patterns, and hostlist expressions
- Applied after
--filteroption
-
--no-prefix Option (Issue #101)
-N/--no-prefixfor disabling hostname prefix in output- Compatible with pdsh
-Noption - Works with both stream mode and file mode
-
--connect-timeout Option
- Separate connection timeout from command execution timeout
- Default: 30 seconds, minimum: 1 second
- Useful for fast failure detection on unreachable hosts
Improvements
- CI workflow simplification by merging jobs into single pipeline
Bug Fixes
-
--timeout 0 Handling (Issue #112)
- Fixed --timeout 0 to correctly treat as unlimited execution time
- Previously the 0 value was being ignored, causing unexpected timeout behavior
- Added explicit CLI test to prevent regression
-
Environment Variable Test Race Conditions
- Added
#[serial]attribute to env var tests to prevent race conditions - Tests now run sequentially when accessing shared environment state
- Added
-
Connect Timeout Propagation
- Fixed connect_timeout not being propagated through all SSH connection paths
CI/CD Improvements
- Simplified CI workflow by merging multiple jobs into single pipeline
Technical Details
- pdsh compatibility layer core infrastructure
- Comprehensive hostlist expression parser with cartesian product support
- Added explicit CLI test for --timeout 0 behavior
Dependencies
None
Breaking Changes
None
Known Issues
None
What's Changed
- feat: Add --no-prefix option to disable hostname prefix in output (pdsh -N compatibility) by @inureyes in #101
- feat: Add --exclude option for host exclusion (pdsh -x compatibility) by @inureyes in #100
- feat: Add --batch option for single Ctrl+C termination (pdsh -b compatibility) by @inureyes in #102
- feat: Add --fail-fast option to stop on first failure (pdsh -k compatible) by @inureyes in #103
- feat: Implement pdsh compatibility layer core infrastructure by @inureyes in #105
- feat: Add in-TUI log panel to prevent log messages from breaking layout by @inureyes in #106
- feat: Add pdsh-style hostlist expression support by @inureyes in #107
- docs: Add pdsh compatibility mode documentation and installation scripts by @inureyes in #110
- docs: Restructure ARCHITECTURE.md into modular documentation by @inureyes in #111
Full Changelog: v1.4.2...v1.5.0