Skip to content

Commit 0a2ce8a

Browse files
committed
release: Prepare v1.5.0rc1
- Update version in Cargo.toml to 1.5.0-rc1 - Update Recent Updates in README.md - Update CHANGELOG.md with new version section - Update debian/changelog for new release - Update manpage version to v1.5.0rc1 - Update Cargo.lock via cargo update
1 parent 57fa217 commit 0a2ce8a

6 files changed

Lines changed: 161 additions & 18 deletions

File tree

CHANGELOG.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,88 @@ All notable changes to bssh will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and 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
@@ -513,6 +595,7 @@ None
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

Cargo.lock

Lines changed: 24 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bssh"
3-
version = "1.4.2"
3+
version = "1.5.0-rc1"
44
authors = ["Jeongkyu Shin <inureyes@gmail.com>"]
55
description = "Parallel SSH command execution tool for cluster management"
66
license = "Apache-2.0"
@@ -43,7 +43,7 @@ regex = "1.12.2"
4343
lazy_static = "1.5"
4444
ctrlc = "3.5.1"
4545
signal-hook = "0.3.18"
46-
nix = { version = "0.29", features = ["poll"] }
46+
nix = { version = "0.30", features = ["poll"] }
4747
atty = "0.2.14"
4848
arrayvec = "0.7.6"
4949
smallvec = "1.15.1"

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1371,6 +1371,7 @@ See the [LICENSE](./LICENSE) file for details.
13711371
## Changelog
13721372

13731373
### Recent Updates
1374+
- **v1.5.0rc1 (2025/12/17):** Add pdsh compatibility mode with -w/-x/-f/-N/-b/-k/-q options, pdsh-style hostlist expressions (node[1-5], rack[1-2]-node[1-3]), in-TUI log panel, --connect-timeout option, --fail-fast/-k and --batch/-b flags
13741375
- **v1.4.2 (2025/12/16):** Fix terminal escape sequence responses displayed on first prompt when starting tmux, fix paste not working in PTY sessions, bump dependencies
13751376
- **v1.4.1 (2025/12/16):** Add comprehensive TUI/streaming tests (84 new tests), extend password fallback for SSH agent auth failures, add TUI module documentation
13761377
- **v1.4.0 (2025/12/15):** Add --sudo-password flag for automated sudo authentication, password fallback with improved SSH debugging, developer tooling (githooks)

debian/changelog

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,53 @@
1+
bssh (1.5.0~rc1-1~jammy1) jammy; urgency=medium
2+
3+
* v1.5.0rc1
4+
### New Features
5+
- **pdsh Compatibility Mode**: Full pdsh-style command line compatibility
6+
- `-w hosts` option mapped to `-H hosts` for target host specification
7+
- `-x hosts` option mapped to `--exclude hosts` for host exclusion
8+
- `-f N` option mapped to `--parallel N` for fanout control
9+
- `-l user` option for remote username
10+
- `-N` option for disabling hostname prefix in output
11+
- `-b` option for batch mode (single Ctrl+C termination)
12+
- `-k` option for fail-fast mode (stop on first failure)
13+
- `-q` query mode to show target hosts and exit
14+
- **Hostlist Expressions**: pdsh-style range expansion support
15+
- Range expansion: `node[1-5]` → node1, node2, node3, node4, node5
16+
- Zero-padded ranges: `node[01-05]` → node01, node02, ...
17+
- Comma-separated values: `node[1,3,5]` → node1, node3, node5
18+
- Cartesian product: `rack[1-2]-node[1-3]` → 6 hosts
19+
- File input with `^/path/to/hostfile`
20+
- **In-TUI Log Panel**: Toggle visibility with `l` key
21+
- Color-coded by level (ERROR red, WARN yellow)
22+
- Configurable buffer size via BSSH_TUI_LOG_MAX_ENTRIES
23+
- **--connect-timeout Option**: Separate connection timeout from command timeout
24+
- Default: 30 seconds, minimum: 1 second
25+
26+
### Improvements
27+
- CI workflow simplification by merging jobs into single pipeline
28+
29+
### Bug Fixes
30+
- Fixed #[serial] attribute for env var tests to prevent race conditions
31+
- Fixed connect_timeout propagation through all SSH connection paths
32+
33+
### CI/CD Improvements
34+
- Simplified CI workflow by merging multiple jobs into single pipeline
35+
36+
### Technical Details
37+
- pdsh compatibility layer core infrastructure
38+
- Comprehensive hostlist expression parser with cartesian product support
39+
40+
### Dependencies
41+
None
42+
43+
### Breaking Changes
44+
None
45+
46+
### Known Issues
47+
None
48+
49+
-- Jeongkyu Shin <inureyes@gmail.com> Tue, 17 Dec 2025 00:00:00 +0900
50+
151
bssh (1.4.2-1~jammy1) jammy; urgency=medium
252

353
* v1.4.2

docs/man/bssh.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.\" Manpage for bssh
22
.\" Contact the maintainers to correct errors or typos.
3-
.TH BSSH 1 "December 2025" "v1.4.2" "bssh Manual"
3+
.TH BSSH 1 "December 2025" "v1.5.0rc1" "bssh Manual"
44

55
.SH NAME
66
bssh \- Broadcast SSH - SSH-compatible client with parallel execution capabilities

0 commit comments

Comments
 (0)