Skip to content

Conversation

@SerGeRybakov
Copy link
Owner

Added

  • Redis Cluster Support: CallGate now supports Redis clusters in addition to single Redis instances
  • Pre-initialized Redis Client Support: New redis_client parameter accepts pre-initialized Redis or RedisCluster clients
  • Enhanced Type Safety: Better type annotations and IDE support for Redis configurations
  • New Error Type: CallGateRedisConfigurationError for Redis configuration issues

Changed

  • Redis Storage Initialization: Now supports both pre-initialized clients and legacy kwargs
  • Improved Documentation: All docstrings converted to English with RST format
  • Test Infrastructure: Cluster tests are isolated and excluded from CI/CD pipeline
  • Makefile Enhancements: Added cluster test targets for all Python versions (3.9-3.14)

Deprecated

  • Redis Connection Parameters via kwargs: Using Redis connection parameters through **kwargs is deprecated and will be removed in version 2.0.0
  • Legacy Redis Configuration: Users should migrate to the redis_client parameter with pre-initialized clients

Fixed

  • Connection Validation: Added ping() validation for Redis clients during CallGate initialization
  • Serialization Handling: Improved serialization for RedisStorage with pre-initialized clients
  • Docker Compose Configuration: Removed volumes and auto-restart for better test isolation

Sergey Rybakov added 9 commits December 4, 2025 12:00
- Replace hardcoded ASDF Python paths with dynamic discovery
- Support Python versions 3.9-3.14 across multiple installation methods
- Exclude venv/.venv directories and config/gdb files from search
- Select latest version when multiple interpreters of same major version found
- Fix import structure in gate.py to resolve linting issues
- Add non-interactive flag to mypy to prevent hanging on missing types
- Add three Redis cluster nodes (ports 7001-7003) with cluster mode enabled
- Include cluster initialization service to automatically create cluster
- Maintain backward compatibility with single Redis instance (port 6379)
- Add proper health checks for all Redis services
- Enable appendonly persistence for cluster nodes
- Add RedisConfig and RedisClusterConfig typed configuration classes
- Update RedisStorage to support both single Redis and cluster connections
- Add redis_config parameter to CallGate constructor with type hints
- Update RedisReentrantLock to work with both Redis and RedisCluster
- Maintain full backward compatibility with existing kwargs approach
- Add comprehensive documentation for new typed Redis parameters
- Fix duplicate [testenv:py313] section, rename second one to [testenv:py314]
- Resolve configuration parsing error that prevented pytest from running
@codecov-commenter
Copy link

codecov-commenter commented Dec 5, 2025

Codecov Report

❌ Patch coverage is 92.57143% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 98.14%. Comparing base (7ab939e) to head (bd17be9).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
call_gate/storages/redis.py 92.36% 7 Missing and 3 partials ⚠️
call_gate/gate.py 88.88% 0 Missing and 3 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #49      +/-   ##
==========================================
- Coverage   98.38%   98.14%   -0.25%     
==========================================
  Files           7        7              
  Lines         682      807     +125     
  Branches       73      100      +27     
==========================================
+ Hits          671      792     +121     
- Misses          4        7       +3     
- Partials        7        8       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sergey Rybakov added 12 commits December 5, 2025 21:14
- Modified ClusterManager to detect GitHub Actions environment
- Skip Docker container management in GitHub Actions (uses systemctl)
- Skip fault tolerance tests in CI (require container management)
- Removed 'not cluster' marker from CI workflow to enable cluster tests
- ClusterManager now uses redis-cluster-service nodes (7000-7005) in CI
- All container start/stop operations are no-ops in GitHub Actions
- Bump coverage to version 7.13.0
- Update platformdirs to version 4.5.1
- Upgrade pytest to version 9.0.2
- Update ssort to version 0.16.0
- Upgrade urllib3 to version 2.6.1
- Add new version of roman package (5.2) for Python 3.10
- Enhance RedisStorage with explicit close method and destructor
- Modify GitHub Actions workflow to include verbose output for pytest
@SerGeRybakov SerGeRybakov merged commit d783a56 into main Dec 10, 2025
8 of 10 checks passed
@SerGeRybakov SerGeRybakov deleted the feature/redis-cluster branch December 10, 2025 20:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants