Skip to content

RustIRC v0.3.5 - Cross-Platform Compatibility & Comprehensive Doctest Coverage

Choose a tag to compare

@doublegate doublegate released this 24 Aug 05:02
· 60 commits to main since this release

RustIRC v0.3.5 - Enhanced GitHub Actions Workflow Resilience

🎯 Release Overview

This release resolves critical GitHub Actions workflow failures and implements enhanced workflow resilience across all platforms. Building on the robust CI/CD infrastructure from v0.3.4, version 0.3.5 eliminates the run_with_timeout: command not found errors in Quick Checks & Build jobs and ensures bulletproof cross-platform compatibility with comprehensive doctest coverage.

🚀 Major Achievements

GitHub Actions Function Persistence Excellence

  • Function Availability Fixed: Resolved run_with_timeout: command not found errors using BASH_ENV approach
  • Clean Helper Architecture: Maintainable cross-platform timeout functionality with single-point definition
  • Workflow Typo Corrections: Fixed 6 instances of run_with_run_with_timeout in ci.yml
  • Universal Function Access: Helper functions now persist across all GitHub Actions workflow steps

Cross-Platform Test Matrix Excellence

  • 100% macOS Compatibility: Resolved timeout command unavailability causing exit code 127
  • Universal Doctest Execution: Enabled doctests on all architectures instead of Ubuntu-only
  • Comprehensive Platform Coverage: Tests now pass on Linux (x86_64, ARM64), macOS (x86_64, ARM64), and Windows (x86_64)
  • Enhanced Error Handling: Robust fallback mechanisms for GitHub service outages

📊 Performance Metrics

  • 100% Test Matrix Success Rate across all platforms
  • 118 Total Tests: 53 unit tests + 65 doctests all passing
  • Zero Platform-Specific Failures achieved
  • Zero Function Persistence Issues resolved
  • Enhanced CI/CD Resilience with service outage handling

🧪 Comprehensive Test Coverage

Platform Test Matrix Status

Platform Architecture Status Test Count
Linux x86_64 ✅ Passing 118 (53+65)
Linux ARM64 ✅ Passing 118 (53+65)
macOS x86_64 FIXED 118 (53+65)
macOS ARM64 FIXED 118 (53+65)
Windows x86_64 ✅ Passing 118 (53+65)

Doctest Coverage by Crate

Crate Doctests Status
rustirc-core 15 ✅ All Platforms
rustirc-protocol 24 ✅ All Platforms
rustirc-gui 8 ✅ All Platforms
rustirc-tui 7 ✅ All Platforms
rustirc-plugins 6 ✅ All Platforms
rustirc-scripting 5 ✅ All Platforms

🔧 Technical Improvements

BASH_ENV Helper Function Architecture

Enhanced workflow reliability through single-definition helper functions that persist across all GitHub Actions steps.

GitHub Actions Resilience

  • Universal Bash Usage: All platforms now use bash shell for consistency
  • YAML Validation: Pre-push validation using Python yaml.safe_load()
  • Comprehensive Error Recovery: Multiple fallback mechanisms for common CI failures
  • Service Outage Handling: Graceful degradation when GitHub services are unavailable

🐛 Critical Bug Fixes

GitHub Actions Function Persistence (Exit Code 127)

Problem: run_with_timeout: command not found in Quick Checks & Build jobs
Root Cause: GitHub Actions steps run in separate shell instances, function definitions do not persist
Solution: BASH_ENV approach with helper script ensures function availability across all steps
Impact: 100% workflow step success rate restored, clean maintainable architecture

Workflow Typo Corrections

Problem: 6 instances of run_with_run_with_timeout instead of run_with_timeout in ci.yml
Detection: Systematic grep analysis identified exact locations (lines 252,256,261,277,281,286)
Solution: Corrected all typos using MultiEdit with replace_all approach
Impact: Consistent function naming prevents future confusion and errors

macOS Test Matrix Failures (Exit Code 127)

Problem: macOS runners do not include the timeout command by default
Solution: Cross-platform timeout function using perl on macOS, native timeout elsewhere
Impact: 100% macOS test success rate restored

Missing Doctests on All Architectures

Problem: Doctest steps restricted to Ubuntu with conditional matrix checks
Solution: Removed platform restrictions from all 6 doctest execution steps
Impact: 65 doctests now run on all platforms instead of Ubuntu-only

🛠️ Workflow Configuration Changes

Modified Files

  • .github/workflows/ci.yml: Added BASH_ENV helper approach, fixed typos, removed Ubuntu-only doctest restrictions
  • .github/workflows/master-pipeline.yml: Implemented BASH_ENV approach, enhanced sccache resilience
  • Both workflows now include clean helper function architecture and comprehensive error handling

📦 Installation

Download the appropriate binary for your platform from the release assets:

Linux (x86_64 / ARM64)

wget https://github.com/doublegate/RustIRC/releases/download/v0.3.5/rustirc-linux-amd64.tar.gz
tar -xzf rustirc-linux-amd64.tar.gz
chmod +x rustirc
./rustirc

macOS (x86_64 / ARM64)

curl -LO https://github.com/doublegate/RustIRC/releases/download/v0.3.5/rustirc-macos-amd64.tar.gz
tar -xzf rustirc-macos-amd64.tar.gz
chmod +x rustirc
./rustirc

Windows (x86_64)

Download rustirc-windows-amd64.exe.zip, extract, and run rustirc.exe

✅ Verification

All binaries include SHA256 checksums. Verify your download:

shasum -a 256 -c rustirc-*.sha256

🔮 What's Next - Phase 4: Scripting & Plugins

With bulletproof cross-platform CI/CD and workflow resilience now established, development advances to extensibility:

  • Lua Scripting Engine: Sandboxed execution with comprehensive IRC API
  • Python Integration: PyO3-based scripting with advanced capabilities
  • Plugin Architecture: Hot-reloadable binary plugins with secure isolation
  • Script Manager UI: User-friendly script/plugin discovery and management
  • Event-Driven API: Complete scripting hooks for all IRC events

📈 Project Statistics

  • Total Tests: 118 passing (53 unit + 65 doctests)
  • Platform Coverage: 100% success on Linux, macOS, Windows
  • Architecture Support: x86_64, ARM64 on Linux/macOS
  • CI/CD Reliability: Enhanced with service outage resilience and function persistence
  • Documentation Coverage: 65 working doctests across all public APIs
  • Workflow Resilience: Zero function availability issues across all platforms

🛡️ Quality Assurance

  • Zero Platform-Specific Failures: All architectures pass Test Matrix
  • Zero Function Persistence Issues: BASH_ENV approach ensures universal availability
  • Comprehensive Error Handling: Graceful degradation during service outages
  • YAML Validation: All workflows validated before deployment using Python yaml.safe_load()
  • Pre-commit Hooks: Format, clippy, and test validation
  • Security Audits: Daily automated security scanning

🎉 Development Milestone

This release represents a critical infrastructure milestone - achieving 100% GitHub Actions workflow resilience with bulletproof function persistence and cross-platform test compatibility. The enhanced CI/CD foundation now enables confident development of advanced features without workflow or platform-specific concerns.

🙏 Acknowledgments

Special recognition for the systematic debugging approach using MCP tools (ThinkDeep, Debug, Chat) that enabled rapid identification and resolution of the GitHub Actions function persistence issues. The BASH_ENV helper architecture ensures reliable builds and maintainable workflow code for future development.


Full Changelog: v0.3.4...v0.3.5

Generated with Claude Code | Released: August 24, 2025