Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: hyperb1iss/signalrgb-python

Release v1.0.1

06 Jul 18:32
Compare
Choose a tag to compare

This maintenance release focuses on keeping the signalrgb-python library up-to-date with the latest dependency versions. All major dependencies have been updated to their newest stable releases, ensuring better security, performance, and compatibility with the latest Python ecosystem. Additionally, the latest version of urllib is necessary for the Home Assistant integration which depends on this library.

✨ Highlights

📦 Fresh Dependencies

All 15 major dependencies have been updated to their latest versions, bringing improved security, performance, and new features from the Python ecosystem

⬆️ Dependencies

  • Updated all project dependencies to their latest stable versions including requests (2.32.4), rich (14.0.0), typer (0.16.0), ruff (0.12.2), pre-commit (4.2.0), mashumaro (3.16), urllib3 (2.5.0), pytest (8.4.1), mkdocs-material (9.6.15), mkdocstrings (0.29.1), mypy (1.16.1), pytest-cov (6.2.1), and several type stubs

🔧 Build & Infrastructure

  • Updated project configuration and lock files to reflect new dependency versions

🔧 Upgrade Notes

  • This release contains no breaking changes and is a drop-in replacement for version 1.0.0
  • All existing code and CLI commands will continue to work without modification
  • If you're using the library programmatically, you may benefit from new features in the updated dependencies

📊 Metrics

  • Total Commits: 2
  • Files Changed: 6
  • Insertions: 469
  • Deletions: 457

Release v1.0.0

15 Mar 06:11
Compare
Choose a tag to compare

This major release introduces full asynchronous API support alongside the existing synchronous client, enabling seamless integration with modern asyncio architectures like Home Assistant. The update includes significant documentation improvements, performance optimizations, and enhanced development tooling.

✨ Highlights

Asynchronous API Support

Native asyncio integration with a dedicated AsyncSignalRGBClient for modern application patterns, maintaining full feature parity with the synchronous client.

Improved Documentation

Comprehensive documentation updates including async usage guides, improved API references, and Home Assistant integration examples.

Performance Enhancements

Critical fixes to prevent event loop blocking in async operations, ensuring smooth integration with event-driven applications.

✨ New Features

  • Added AsyncSignalRGBClient for native asyncio integration patterns
  • Created new async_usage.md guide with comprehensive examples
  • Added Home Assistant integration examples
  • Added httpx dependency for modern HTTP async operations

🔨 Improvements

  • Updated Python requirement to 3.11+ (was previously 3.12+)
  • Extracted exceptions to dedicated module for better organization
  • Enhanced release script with automatic UV lock file handling
  • Improved documentation with both sync and async patterns throughout
  • Updated README and docs to reference UV instead of Poetry for dependency management

🐛 Bug Fixes

  • Fixed AsyncSignalRGBClient initialization to avoid blocking event loop during SSL certificate loading
  • Added consistent null checks before aclose() calls in cleanup methods
  • Fixed code style issues and linting warnings in async implementation

📝 Documentation

  • Comprehensively updated all documentation to reflect new asynchronous capabilities
  • Added AsyncSignalRGBClient reference to client API docs
  • Updated models documentation with new response types
  • Modernized UI with emojis and better section organization
  • Improved installation instructions for async requirements

🧪 Testing

  • Added pytest-asyncio for proper testing of async code
  • Added dedicated test_async_client.py test suite
  • Updated existing tests to accommodate new architecture

🔧 Upgrade Notes

  • Python 3.11+ is now required (previously 3.12+)
  • If upgrading from v0.9.8, no code changes are required - the synchronous API remains fully compatible
  • For new projects, consider using the AsyncSignalRGBClient for better performance in asyncio environments

📊 Metrics

  • Total Commits: 6
  • Files Changed: 31
  • Insertions: 2428
  • Deletions: 1532

Release v0.9.8

12 Mar 19:51
Compare
Choose a tag to compare

This release modernizes the SignalRGB Python library with improved dependency management, enhanced CLI features, expanded API capabilities, and better error handling. It introduces layout management, preset handling, and improved visual output while migrating from Poetry to UV for more reliable package management.

✨ Highlights

🔧 Migration to UV Package Manager

Switched from Poetry to UV for faster, more reliable dependency management with broader Python version compatibility (now supporting Python 3.9+).

💄 Enhanced CLI Experience

Completely revamped CLI with colorful output, improved table formatting, and a new subcommand structure that makes working with effects and layouts more intuitive.

✨ Layout Management

Added new functionality to view, list, and switch between SignalRGB layouts, expanding the library's capabilities beyond just effect control.

♻️ Python 3.11 Type Hints

Modernized codebase with improved type annotations using Python 3.11 features, making the library more robust and developer-friendly.

✨ New Features

  • Implemented layout management functionality with methods to get current layout, set layout, and list available layouts
  • Added rich preset handling with ability to list and apply effect presets
  • Introduced effect navigation with next, previous, and random effect selection
  • Added --full-rgb flag to CLI for vibrant gradient-colored output
  • Implemented EffectIterator for simpler programmatic effect iteration
  • Replaced Bash release script with more robust Python version featuring improved validation and colored output

♻️ Code Improvements

  • Modernized codebase with Python 3.11 type hints using union syntax (str | None) and improved collection types
  • Refactored SignalRGBClient to use context manager for requests with improved error handling
  • Restructured CLI commands into logical subcommands (effect, preset, layout, canvas) for better organization
  • Renamed EffectNotFoundError to NotFoundError for broader use across different resource types
  • Introduced explicit caching in SignalRGBClient replacing LRU cache for better control
  • Created new data models for EffectPreset, EffectPresetList, Layout, and related responses

🔧 Infrastructure Changes

  • Migrated from Poetry to UV for dependency management with PEP 621 compliant pyproject.toml
  • Updated CI/CD workflow configuration to work with UV instead of Poetry
  • Lowered Python requirement from 3.12 to 3.9 for broader compatibility
  • Updated all dependencies to their latest compatible versions

💄 UI/UX Improvements

  • Enhanced CLI with colorful output, icons, and improved table formatting
  • Added progress bar for effect cycling operations
  • Improved parameter display with better formatting for boolean and color values
  • Simplified preset and layout display by removing unnecessary type information

📝 Documentation

  • Updated documentation to reflect new subcommand structure in CLI
  • Added sections for preset and layout management in the docs
  • Revised library usage docs with new methods and error handling examples
  • Updated installation instructions to reference UV instead of Poetry

✅ Testing

  • Updated test cases to cover new methods and error handling scenarios
  • Added tests for layout-related functionality
  • Modified test assertions to align with CLI output format changes
  • Converted assertions to pytest-style in tests for better diagnostics

🔧 Upgrade Notes

  • The CLI command structure has changed to use subcommands. For example, signalrgb list_effects is now signalrgb effect list.
  • If you were using the Python library directly and catching EffectNotFoundError, update your code to catch NotFoundError instead.
  • Users who had development environments set up with Poetry should migrate to using UV for dependency management.

📊 Metrics

  • Total Commits: 24
  • Files Changed: 61
  • Insertions: 5533
  • Deletions: 2416

Release v0.9.7

11 Aug 21:24
Compare
Choose a tag to compare
Release: 0.9.7

Release v0.9.6

25 Jul 16:51
Compare
Choose a tag to compare
Release: 0.9.6

Release v0.9.5

24 Jul 17:31
Compare
Choose a tag to compare
Release: 0.9.5

Release v0.9.4

24 Jul 17:26
Compare
Choose a tag to compare
Release: 0.9.4

Release v0.9.3

24 Jul 16:00
Compare
Choose a tag to compare
Release: 0.9.3

Release v0.9.0

22 Jul 17:51
Compare
Choose a tag to compare
Release: 0.9.0

Release v0.8.4

22 Jul 07:24
Compare
Choose a tag to compare
Release: 0.8.4