Skip to content

v1.3.7 - Code Quality & Cross-Platform Release

Choose a tag to compare

@Ian-bug Ian-bug released this 11 Mar 15:06
· 31 commits to master since this release

Major Code Quality Improvements

This release represents a significant leap in code quality, maintainability, and production readiness.

🎯 Key Improvements

Logging & Monitoring

  • βœ… Comprehensive logging system with dual output (console + file)
  • βœ… Configurable log levels (DEBUG/INFO)
  • βœ… Persistent logs saved to rainingkeys.log
  • βœ… Exception traces with full context

Code Safety & Type Safety

  • βœ… Complete type hints throughout all core modules
  • βœ… Fixed unsafe bar pool recycling with removed flag tracking
  • βœ… Signal blocking context manager to prevent Qt resource leaks
  • βœ… Thread-safety documentation for input monitoring

Cross-Platform Compatibility

  • βœ… System font fallbacks for Consolas, Arial, and other fonts
  • βœ… Font fallback chains for Windows, macOS, and Linux
  • βœ… Better handling of missing system fonts

Configuration & Validation

  • βœ… Configuration validation with automatic value clamping
  • βœ… Color string parsing with detailed error messages
  • βœ… Removed magic numbers - all constants in VisualSettings
  • βœ… Fixed bar_color to use @Property decorator

Error Handling

  • βœ… Robust error handling for all file I/O operations
  • βœ… Graceful fallbacks when configuration fails
  • βœ… User-friendly error messages

πŸ“¦ Downloads

  • RainingKeysPython.zip - Release build (no console window)
  • RainingKeysPython-debug.zip - Debug build (with console for troubleshooting)

πŸš€ Installation

  1. Download and extract the appropriate zip file
  2. Run RainingKeysPython.exe
  3. Use the settings window to configure your overlay
  4. Press keys to see them visualized in real-time

πŸ“ Technical Details

Version: 1.3.7
Python: 3.12+
Dependencies: PySide6, pynput, pywin32

Full Changelog:

  • Added core/logging_config.py - Centralized logging infrastructure
  • Added core/qt_utils.py - Qt utility functions and context managers
  • Updated all modules to use logging instead of print statements
  • Fixed bar_color property access with @Property decorator
  • Added thread-safety documentation to InputWorker class
  • Implemented signals_blocked() context manager for safer Qt operations
  • Added system font fallback methods (_get_mono_font, _get_sans_font)
  • Moved display constants to VisualSettings dataclass
  • Added configuration validation methods
  • Fixed unsafe bar recycling with removed flag tracking

Previous Release: v1.3.5

Upgrade Instructions: Simply replace your existing executable with the new version. Your configuration will be preserved.

Bug Reports: Please report issues on GitHub with logs from rainingkeys.log