Skip to content

Releases: syedazeez337/bte

Release 0.2.0

08 Jan 18:52

Choose a tag to compare

Release 0.2.0: Code Quality and Remediation

Overview

This release focuses on code quality improvements, dead code removal, and comprehensive safety documentation.

Changes

Dead Code Cleanup

  • Removed 11 unused modules:
    • benchmark, ci, explain, ratatui, defaults
    • security, compat, fuzzing, safe_regex, limits, ecma48
  • Removed 9 #![allow(dead_code)] attributes from active modules

Tracing Removal

  • Removed tracing and tracing-subscriber dependencies
  • Replaced debug!() macros with conditional eprintln!() for verbose output

PTY Improvements

  • Added impl Drop for Pty to ensure deterministic file descriptor cleanup

Safety Documentation

  • Added comprehensive safety comments for all unsafe blocks in process.rs:
    • fork() - process duplication
    • ioctl(TIOCSCTTY) - terminal controlling
    • chdir() - working directory
    • __errno_location() - thread-local errno
    • write() - pipe write
    • _exit() / exit() - process termination
    • kill(pid, 0) - signal probe

Magic Number Constants

  • Added constants in process.rs:
    • SIGTERM_TIMEOUT_MS = 500
    • POLL_INTERVAL_MS = 10
    • MAX_EINTR_RETRIES = 10
  • Added test sleep constants for reliable testing

Scenario Validation Tests

  • Added 28 integration tests covering validation of:
    • Invalid scenarios (empty name, zero dimensions, empty steps, invalid patterns)
    • Valid scenarios (all step types, all invariant types, complex commands)
    • JSON/YAML parsing

run_scenario Refactoring

  • Split monolithic run_scenario() (365 lines) into 15 focused functions across 5 phases:
    • Phase 1: Initialization
    • Phase 2: Invariant Setup
    • Phase 3: Step Execution
    • Phase 4: Final Evaluation
    • Phase 5: Outcome Determination

Examples Updated

  • All 7 examples updated to use current BTE format

CI Status

  • Tests: 239 passed (201 unit + 38 integration)
  • Clippy: 0 errors (103 warnings for dead code - intentional)
  • Release binary: 3.5MB

Stats

  • 35 files changed
  • 1,707 insertions(+)
  • 6,856 deletions(-)

Assets

  • Binary: bte (3.5MB)
  • Source code: .tar.gz, .zip