Skip to content

v0.3.0 - Architecture Improvements and i18n

Choose a tag to compare

@derekg derekg released this 21 Jun 17:30
· 25 commits to main since this release

v0.3.0 - Architecture Improvements and i18n

⚠️ Note: This project now follows Semantic Versioning. Since the API is still evolving, we're using 0.x.y versions:

  • 0.x.Y (minor) - new features, improvements (backward compatible)
  • 0.x.y (patch) - bug fixes (backward compatible)
  • X.y.z (major) - will be used for first stable API (v1.0.0+)

🎯 New Features

🌍 Spanish Language Support

  • Complete Spanish localization for CLI help, usage examples, and error messages
  • Multiple language detection methods: --lang, TS_SSH_LANG, LANG, LC_ALL
  • Dynamic help display that respects language preferences
  • Extensible i18n framework for future language additions

⚡ Power CLI Features

  • Multi-host operations with parallel execution support
  • Built-in tmux session management for concurrent connections
  • Advanced file transfer operations across multiple hosts
  • Host discovery and interactive selection (--pick)

🏗️ Major Improvements

🧹 Code Architecture Cleanup

  • Removed 180+ lines of dead TUI code and dependencies
  • Eliminated unused dependencies: github.com/rivo/tview, github.com/gdamore/tcell/v2
  • Consolidated 85+ lines of duplicated SSH connection logic
  • Modular code organization with focused helper functions

🐛 Critical Bug Fixes

  • FIXED: Password prompts now display correctly (user@host instead of garbled text)
  • FIXED: i18n formatting issues throughout the application
  • FIXED: Race conditions in parallel authentication and terminal management
  • FIXED: Windows cross-compilation compatibility

🧪 Enhanced Testing & Quality

  • Comprehensive test suite: 14.5% → 22% coverage improvement
  • New test files: i18n_test.go, ssh_helpers_test.go, terminal_state_test.go
  • Race condition testing: Concurrent access validation for critical components
  • Thread safety: Improved synchronization and mutex usage

🔧 Cross-Platform Support

Pre-built binaries for all major platforms:

  • Linux: AMD64, ARM64
  • macOS: AMD64 (Intel), ARM64 (Apple Silicon)
  • Windows: AMD64, ARM64

💾 Installation

Quick Install (Linux/macOS)

# Linux AMD64
curl -L -o ts-ssh https://github.com/derekg/ts-ssh/releases/download/v0.3.0/ts-ssh-linux-amd64
chmod +x ts-ssh && sudo mv ts-ssh /usr/local/bin/

# macOS (detect architecture automatically)
curl -L -o ts-ssh https://github.com/derekg/ts-ssh/releases/download/v0.3.0/ts-ssh-darwin-$(uname -m  < /dev/null |  sed 's/x86_64/amd64/')
chmod +x ts-ssh && sudo mv ts-ssh /usr/local/bin/

Windows

Download the appropriate .exe file:

Build from Source

git clone https://github.com/derekg/ts-ssh.git
cd ts-ssh
go build -ldflags "-X main.version=v0.3.0" .

🚀 Usage Examples

Spanish Interface

# Use Spanish interface
ts-ssh --lang es --help
ts-ssh --lang es --list

# Set via environment  
LANG=es ts-ssh --help

Multi-Host Operations

# Interactive host selection
ts-ssh --pick

# Parallel command execution
ts-ssh --exec "uptime" host1,host2,host3 --parallel

# Multi-host file transfer
ts-ssh --copy "localfile host1,host2:/remote/path"

📈 Impact

Code Quality Metrics:

  • Removed: 568 lines (dead code elimination)
  • Added: 796 lines (tests + improvements)
  • Net Result: Cleaner, more maintainable, better tested codebase

User Experience:

  • Fixed critical formatting bugs affecting daily usage
  • Enhanced error messages and troubleshooting
  • Multi-language support for international users
  • Better cross-platform compatibility

🔄 Migration from Previous Versions

  • No breaking changes - all existing functionality preserved
  • Improved reliability - better error handling and user feedback
  • Enhanced features - new multi-host and i18n capabilities

Semantic Versioning: This release follows semver.org guidelines. Thanks to the Hacker News community for the feedback on proper versioning practices!

Full Changelog: v0.2.0...v0.3.0