-
Notifications
You must be signed in to change notification settings - Fork 112
[BACKPORT 2.1] Merge Release 2.1 back into Main #4753
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Go: Switch to MUSL binary Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> * rustup add musl targets Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> * lint Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> * rustup add musl targets in Makefile Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> * Add pathing Signed-off-by: Alex Rehnby-Martin <[email protected]> * Trigger CodeQL on main Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix typo Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix typo Signed-off-by: Alex Rehnby-Martin <[email protected]> * Modify CD Signed-off-by: Alex Rehnby-Martin <[email protected]> * Modify CD Signed-off-by: Alex Rehnby-Martin <[email protected]> * Modify CD Signed-off-by: Alex Rehnby-Martin <[email protected]> * Modify CD Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update docs Signed-off-by: Alex Rehnby-Martin <[email protected]> * Format Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix Signed-off-by: Alex Rehnby-Martin <[email protected]> * Address feedback Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update doc Signed-off-by: Alex Rehnby-Martin <[email protected]> --------- Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> Co-authored-by: Alex Rehnby-Martin <[email protected]> Co-authored-by: Alexey Temnikov <[email protected]>
* Java: Migration guide for Jedis compatibility layer Signed-off-by: Prateek Kumar <[email protected]>
… Valkey 9.0 (#4694) Python: Add Multi-Database Support for Cluster Mode Valkey 9.0 (#4659) * - Implement database selection for cluster clients when database_id != 0 - Send SELECT command to all cluster nodes using MultiNode routing - Add comprehensive error handling with clear error messages - Include test for database selection error handling in cluster mode - Support backward compatibility with servers that don't support multi-db cluster mode - Enable cluster-databases=16 for Valkey 9.0+ in cluster manager This enables cluster clients to work with non-default databases on Valkey 9.0+ servers configured with cluster-databases support, while gracefully handling older servers that don't support this feature. * update valkey9 multi db tests * fix lint * fixing valkey 9 cluster tests * add to route to all nodes in the core * rust lint fix * implement database selection in cluster mode via connection parameters - Add database_id field to ClusterParams and BuilderParams structs - Add database() method to ClusterClientBuilder for setting database ID - Pass database_id through connection info instead of post-connection SELECT - Remove SELECT command from cluster routing - Remove post-connection SELECT command logic from create_cluster_client - Add comprehensive tests for database isolation and reconnection behavior - Verify database ID persistence across node reconnections - Test multi-database cluster support with proper isolation verification This change moves database selection from a post-connection SELECT command to a connection parameter, which is more reliable for cluster mode and handles reconnections automatically. The approach works with servers that support multi-database cluster configurations (like Valkey 9.0+). * add valkey9 constraint in the core tests * fix core test not skipping test when version was lower than valkey 9 * Fix version check * refactored test test_set_database_id_after_reconnection to be similar from standalone removed is_valkey_9_or_higher * removed tests and cleanup * renamed builder.database to builder.database_id * python: Add multi-database support for cluster and standalone modes - Add database_id parameter to BaseClientConfiguration, GlideClientConfiguration, and GlideClusterClientConfiguration - Implement SELECT command for both cluster and standalone modes with comprehensive documentation - Add validation for database_id parameter (0-15 range, integer type) - Refactor configuration protobuf request creation with helper methods for better maintainability - Add extensive test coverage for database_id configuration and validation - Include production warnings and recommended approaches in SELECT command documentation - Support routing configuration for cluster mode SELECT operations - Ensure database_id persists across reconnections when set in client configuration Documentation: - Added comprehensive docstrings with warnings about SELECT command limitations - Included examples showing recommended database_id configuration approach - Documented reconnection behavior and cluster-specific routing requirements * fixing database_id restriction * fixed test test_standalone_client_with_very_high_database_ids * fix python tests with higher databases id * fix lint error * refactoring out the route option from the select command * Remove SELECT command from cluster mode and enable cluster tests - Remove select() method from ClusterCommands in both async and sync clients - Enable cluster mode testing for database_id tests (parametrize True, False) - Delete database_id integration test file The SELECT command is not recommended for cluster mode due to reconnection behavior where nodes revert to configured database_id, not the selected one. * removed database_id validation| renamed tests to be cluster/standalone agnostic clean up comments * added changelog * lint fix * fix test database_id should be skipped for versions lower than 9.0.0 * fix test * added select rounting refactored extract_client_id to be in utilities * fix database_id documentation added custom command test using select --------- Signed-off-by: affonsov <[email protected]>
… 9.0 (#4696) Go: Add Multi-Database Support for Cluster Mode Valkey 9.0 (#4660) * - Implement database selection for cluster clients when database_id != 0 - Send SELECT command to all cluster nodes using MultiNode routing - Add comprehensive error handling with clear error messages - Include test for database selection error handling in cluster mode - Support backward compatibility with servers that don't support multi-db cluster mode - Enable cluster-databases=16 for Valkey 9.0+ in cluster manager This enables cluster clients to work with non-default databases on Valkey 9.0+ servers configured with cluster-databases support, while gracefully handling older servers that don't support this feature. * update valkey9 multi db tests * fix lint * fixing valkey 9 cluster tests * add to route to all nodes in the core * rust lint fix * implement database selection in cluster mode via connection parameters - Add database_id field to ClusterParams and BuilderParams structs - Add database() method to ClusterClientBuilder for setting database ID - Pass database_id through connection info instead of post-connection SELECT - Remove SELECT command from cluster routing - Remove post-connection SELECT command logic from create_cluster_client - Add comprehensive tests for database isolation and reconnection behavior - Verify database ID persistence across node reconnections - Test multi-database cluster support with proper isolation verification This change moves database selection from a post-connection SELECT command to a connection parameter, which is more reliable for cluster mode and handles reconnections automatically. The approach works with servers that support multi-database cluster configurations (like Valkey 9.0+). * add valkey9 constraint in the core tests * fix core test not skipping test when version was lower than valkey 9 * Fix version check * refactored test test_set_database_id_after_reconnection to be similar from standalone removed is_valkey_9_or_higher * removed tests and cleanup * renamed builder.database to builder.database_id * go: Add multi-database support for cluster mode clients - Add DatabaseId field to baseClientConfiguration for both standalone and cluster clients - Implement WithDatabaseId() method for ClusterClientConfiguration - Add database ID validation with proper error handling for negative values - Refactor standalone client to use shared database ID logic from base configuration - Add Select() and SelectWithOptions() methods for cluster clients with routing support - Include comprehensive test coverage for database isolation, reconnection persistence, and error handling - Add backward compatibility support - clients default to database 0 when no database_id specified - Add server version compatibility checks (cluster multi-database requires Valkey 9.0+) - Update documentation with warnings about SELECT command limitations and recommended configuration approach This enables cluster mode clients to connect to specific databases at initialization time, with the database selection persisting across reconnections, unlike the SELECT command which resets on reconnection. * fixed go tests - batch tests - database id tests * removed selectWithOptions * go: Remove Select command from cluster clients - Remove Select method from ClusterClient and related interfaces - Delete comprehensive database_id integration tests - Remove Select command from batch operations - Remove Select examples and tests - Add example for cluster client with database_id configuration The Select command is being removed in favor of using the database_id configuration parameter, which provides persistent database selection across reconnections. * remove config validation simplified tests * added changelog * removing batch test, and readding standalone select and removing batch select --------- Signed-off-by: affonsov <[email protected]>
….0 (#4697) Java: Multi-Database Support for Cluster Mode Valkey 9.0 (#4658) * - Implement database selection for cluster clients when database_id != 0 - Send SELECT command to all cluster nodes using MultiNode routing - Add comprehensive error handling with clear error messages - Include test for database selection error handling in cluster mode - Support backward compatibility with servers that don't support multi-db cluster mode - Enable cluster-databases=16 for Valkey 9.0+ in cluster manager This enables cluster clients to work with non-default databases on Valkey 9.0+ servers configured with cluster-databases support, while gracefully handling older servers that don't support this feature. * update valkey9 multi db tests * fix lint * fixing valkey 9 cluster tests * add to route to all nodes in the core * rust lint fix * implement database selection in cluster mode via connection parameters - Add database_id field to ClusterParams and BuilderParams structs - Add database() method to ClusterClientBuilder for setting database ID - Pass database_id through connection info instead of post-connection SELECT - Remove SELECT command from cluster routing - Remove post-connection SELECT command logic from create_cluster_client - Add comprehensive tests for database isolation and reconnection behavior - Verify database ID persistence across node reconnections - Test multi-database cluster support with proper isolation verification This change moves database selection from a post-connection SELECT command to a connection parameter, which is more reliable for cluster mode and handles reconnections automatically. The approach works with servers that support multi-database cluster configurations (like Valkey 9.0+). * add valkey9 constraint in the core tests * fix core test not skipping test when version was lower than valkey 9 * Fix version check * refactored test test_set_database_id_after_reconnection to be similar from standalone removed is_valkey_9_or_higher * removed tests and cleanup * renamed builder.database to builder.database_id * Java: implement multi-database support for cluster mode - Move databaseId from GlideClientConfiguration to BaseClientConfiguration - Add databaseId validation and protobuf integration - Update SELECT command with AllNodes routing and reconnection warnings - Add connection management for database selection after auth - Add comprehensive tests with Valkey 9+ version guards Completes Java client implementation for Valkey 9 cluster multi-database support. * fixing database id restriction * fixed java test error select_command_invalid_database_standalone * fixed lint errors * Refactored select command to route to all nodes per default Removed the option to provide a route * java lint fix * java: Remove SELECT command from cluster client - Remove select() method from GlideClusterClient and ConnectionManagementClusterCommands interface - Delete MultiDatabaseTests.java which tested SELECT command functionality - Remove SELECT command tests from SharedCommandTests.java - Add focused test for cluster database_id configuration in ClusterClientTests - Remove SELECT import from GlideClusterClient The SELECT command is being removed from the cluster client API as database selection should be handled through client configuration (databaseId parameter) rather than runtime commands, which provides better consistency and avoids reconnection issues. * remove database_id validatation and simplified tests * added changelog * fix documentation * fix databaseId documentation --------- Signed-off-by: affonsov <[email protected]>
…key 9.0) (#4698) Node: Add Multi-Database Support for Cluster Mode (Valkey 9.0) (#4657) * - Implement database selection for cluster clients when database_id != 0 - Send SELECT command to all cluster nodes using MultiNode routing - Add comprehensive error handling with clear error messages - Include test for database selection error handling in cluster mode - Support backward compatibility with servers that don't support multi-db cluster mode - Enable cluster-databases=16 for Valkey 9.0+ in cluster manager This enables cluster clients to work with non-default databases on Valkey 9.0+ servers configured with cluster-databases support, while gracefully handling older servers that don't support this feature. * update valkey9 multi db tests * fix lint * fixing valkey 9 cluster tests * add to route to all nodes in the core * rust lint fix * implement database selection in cluster mode via connection parameters - Add database_id field to ClusterParams and BuilderParams structs - Add database() method to ClusterClientBuilder for setting database ID - Pass database_id through connection info instead of post-connection SELECT - Remove SELECT command from cluster routing - Remove post-connection SELECT command logic from create_cluster_client - Add comprehensive tests for database isolation and reconnection behavior - Verify database ID persistence across node reconnections - Test multi-database cluster support with proper isolation verification This change moves database selection from a post-connection SELECT command to a connection parameter, which is more reliable for cluster mode and handles reconnections automatically. The approach works with servers that support multi-database cluster configurations (like Valkey 9.0+). * add valkey9 constraint in the core tests * fix core test not skipping test when version was lower than valkey 9 * Fix version check * refactored test test_set_database_id_after_reconnection to be similar from standalone removed is_valkey_9_or_higher * removed tests and cleanup * renamed builder.database to builder.database_id * node changes * move tests to sharedtests.ts * reafactoring to select to all nodes being in the core * node: Remove SELECT command support from cluster client - Remove select() method from GlideClusterClient - Remove createSelect import from cluster client - Remove extensive test coverage for SELECT functionality - Remove database ID validation tests from client internals - Add minimal database ID test for cluster client configuration - Clean up ConfigurationError import that's no longer needed This change removes the SELECT command implementation that was added for Valkey 9.0+ cluster support, likely due to reliability concerns with database switching in cluster mode or to simplify the API. * added changelog * fix test, and removed comment --------- Signed-off-by: affonsov <[email protected]>
Python sync: removed select command (#4684) removed sync select command Signed-off-by: Lior Sventitzky <[email protected]>
* CI: Added self hosted macOS runners (#4683) added self hosted runners for macos Signed-off-by: Lior Sventitzky <[email protected]> * CD: removed self hosted mac arm runners from required CD platforms #4700 (#4702) removed self hosted mac from cd, reverted npm-cd Signed-off-by: Lior Sventitzky <[email protected]> --------- Signed-off-by: Lior Sventitzky <[email protected]>
…4708) Python: fixed pypi-cd workflow, fixed release tests (#4703) fixed pypi upload, fixed release tests Signed-off-by: Lior Sventitzky <[email protected]>
Signed-off-by: Jeremy Parr-Pearson <[email protected]>
* Use zigbuild for easier cross-compilation Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix Signed-off-by: Alex Rehnby-Martin <[email protected]> * Use zigbuild for easier cross-compilation Signed-off-by: Alex Rehnby-Martin <[email protected]> * Use zigbuild for easier cross-compilation Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix musl classifier / detection Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix musl classifier / detection Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix musl classifier / detection Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update docs Signed-off-by: Alex Rehnby-Martin <[email protected]> * Exclude arm musl test Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update arm runner Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update go exclusion Signed-off-by: Alex Rehnby-Martin <[email protected]> * Format Signed-off-by: Alex Rehnby-Martin <[email protected]> --------- Signed-off-by: Alex Rehnby-Martin <[email protected]>
Signed-off-by: Alex Rehnby-Martin <[email protected]>
Signed-off-by: James Xin <[email protected]>
Signed-off-by: James Xin <[email protected]>
* CD: Fix Node CD delete artifact issue 2nd try Signed-off-by: James Xin <[email protected]> * Linter Signed-off-by: James Xin <[email protected]> * remove temporary testing Signed-off-by: James Xin <[email protected]> --------- Signed-off-by: James Xin <[email protected]>
…cs (#4715) python: Update ExpiryType enum references in hash field expiration docs Replace deprecated ExpiryType enum values with new names in docstrings: - EX → SEC - PX → MILLSEC - EXAT → UNIX_SEC - PXAT → UNIX_MILLSEC - KEEPTTL → KEEP_TTL Updates documentation for hash field expiration commands in both async and sync clients. Signed-off-by: affonsov <[email protected]>
…he sync client (#4720) Python sync/CD: added description to pypi package of the sync client (#4714) added description to sync client Signed-off-by: Lior Sventitzky <[email protected]>
* Java: Compatibility layer module Signed-off-by: Prateek Kumar <[email protected]> * Java: fix integration tests Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql for java code Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Update java cd Signed-off-by: Prateek Kumar <[email protected]> * Java: lint issues fixed Signed-off-by: Prateek Kumar <[email protected]> * Java: Add signing configuration to jedis-compatibility build.gradle Signed-off-by: Prateek Kumar <[email protected]> * Java: update dependency Signed-off-by: Prateek Kumar <[email protected]> * Java: Update valkey-glide-jedis-compatibility file path Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix build.gradle publishing code Signed-off-by: Prateek Kumar <[email protected]> --------- Signed-off-by: Prateek Kumar <[email protected]>
fix(java-cd): copy secring.gpg to jedis-compatibility for signing Signed-off-by: jbrinkman <[email protected]>
Python Sync: revert license format (#4731) revert license format Signed-off-by: Lior Sventitzky <[email protected]>
* Java: Fix Jedis compatibility layer valkey-glide dependency Signed-off-by: Prateek Kumar <[email protected]>
Python: improve UDS socket error handling (#4733) fixed uds error handling Signed-off-by: Lior Sventitzky <[email protected]> Co-authored-by: Lior Sventitzky <[email protected]>
yipin-chen
approved these changes
Sep 18, 2025
jamesx-improving
approved these changes
Sep 18, 2025
xShinnRyuu
pushed a commit
that referenced
this pull request
Sep 24, 2025
* Go: Add MUSL support (#4476) * Go: Switch to MUSL binary Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> * rustup add musl targets Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> * lint Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> * rustup add musl targets in Makefile Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> * Add pathing Signed-off-by: Alex Rehnby-Martin <[email protected]> * Trigger CodeQL on main Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update CI Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix typo Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix typo Signed-off-by: Alex Rehnby-Martin <[email protected]> * Modify CD Signed-off-by: Alex Rehnby-Martin <[email protected]> * Modify CD Signed-off-by: Alex Rehnby-Martin <[email protected]> * Modify CD Signed-off-by: Alex Rehnby-Martin <[email protected]> * Modify CD Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update docs Signed-off-by: Alex Rehnby-Martin <[email protected]> * Format Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix Signed-off-by: Alex Rehnby-Martin <[email protected]> * Address feedback Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update doc Signed-off-by: Alex Rehnby-Martin <[email protected]> --------- Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> Co-authored-by: Alex Rehnby-Martin <[email protected]> Co-authored-by: Alexey Temnikov <[email protected]> * Java: Migration guide for Jedis compatibility layer (#4672) (#4681) * Java: Migration guide for Jedis compatibility layer Signed-off-by: Prateek Kumar <[email protected]> * [Backport to 2.1] Python: Add Multi-Database Support for Cluster Mode Valkey 9.0 (#4694) Python: Add Multi-Database Support for Cluster Mode Valkey 9.0 (#4659) * - Implement database selection for cluster clients when database_id != 0 - Send SELECT command to all cluster nodes using MultiNode routing - Add comprehensive error handling with clear error messages - Include test for database selection error handling in cluster mode - Support backward compatibility with servers that don't support multi-db cluster mode - Enable cluster-databases=16 for Valkey 9.0+ in cluster manager This enables cluster clients to work with non-default databases on Valkey 9.0+ servers configured with cluster-databases support, while gracefully handling older servers that don't support this feature. * update valkey9 multi db tests * fix lint * fixing valkey 9 cluster tests * add to route to all nodes in the core * rust lint fix * implement database selection in cluster mode via connection parameters - Add database_id field to ClusterParams and BuilderParams structs - Add database() method to ClusterClientBuilder for setting database ID - Pass database_id through connection info instead of post-connection SELECT - Remove SELECT command from cluster routing - Remove post-connection SELECT command logic from create_cluster_client - Add comprehensive tests for database isolation and reconnection behavior - Verify database ID persistence across node reconnections - Test multi-database cluster support with proper isolation verification This change moves database selection from a post-connection SELECT command to a connection parameter, which is more reliable for cluster mode and handles reconnections automatically. The approach works with servers that support multi-database cluster configurations (like Valkey 9.0+). * add valkey9 constraint in the core tests * fix core test not skipping test when version was lower than valkey 9 * Fix version check * refactored test test_set_database_id_after_reconnection to be similar from standalone removed is_valkey_9_or_higher * removed tests and cleanup * renamed builder.database to builder.database_id * python: Add multi-database support for cluster and standalone modes - Add database_id parameter to BaseClientConfiguration, GlideClientConfiguration, and GlideClusterClientConfiguration - Implement SELECT command for both cluster and standalone modes with comprehensive documentation - Add validation for database_id parameter (0-15 range, integer type) - Refactor configuration protobuf request creation with helper methods for better maintainability - Add extensive test coverage for database_id configuration and validation - Include production warnings and recommended approaches in SELECT command documentation - Support routing configuration for cluster mode SELECT operations - Ensure database_id persists across reconnections when set in client configuration Documentation: - Added comprehensive docstrings with warnings about SELECT command limitations - Included examples showing recommended database_id configuration approach - Documented reconnection behavior and cluster-specific routing requirements * fixing database_id restriction * fixed test test_standalone_client_with_very_high_database_ids * fix python tests with higher databases id * fix lint error * refactoring out the route option from the select command * Remove SELECT command from cluster mode and enable cluster tests - Remove select() method from ClusterCommands in both async and sync clients - Enable cluster mode testing for database_id tests (parametrize True, False) - Delete database_id integration test file The SELECT command is not recommended for cluster mode due to reconnection behavior where nodes revert to configured database_id, not the selected one. * removed database_id validation| renamed tests to be cluster/standalone agnostic clean up comments * added changelog * lint fix * fix test database_id should be skipped for versions lower than 9.0.0 * fix test * added select rounting refactored extract_client_id to be in utilities * fix database_id documentation added custom command test using select --------- Signed-off-by: affonsov <[email protected]> * [Backport 2.1] Go: Add Multi-Database Support for Cluster Mode Valkey 9.0 (#4696) Go: Add Multi-Database Support for Cluster Mode Valkey 9.0 (#4660) * - Implement database selection for cluster clients when database_id != 0 - Send SELECT command to all cluster nodes using MultiNode routing - Add comprehensive error handling with clear error messages - Include test for database selection error handling in cluster mode - Support backward compatibility with servers that don't support multi-db cluster mode - Enable cluster-databases=16 for Valkey 9.0+ in cluster manager This enables cluster clients to work with non-default databases on Valkey 9.0+ servers configured with cluster-databases support, while gracefully handling older servers that don't support this feature. * update valkey9 multi db tests * fix lint * fixing valkey 9 cluster tests * add to route to all nodes in the core * rust lint fix * implement database selection in cluster mode via connection parameters - Add database_id field to ClusterParams and BuilderParams structs - Add database() method to ClusterClientBuilder for setting database ID - Pass database_id through connection info instead of post-connection SELECT - Remove SELECT command from cluster routing - Remove post-connection SELECT command logic from create_cluster_client - Add comprehensive tests for database isolation and reconnection behavior - Verify database ID persistence across node reconnections - Test multi-database cluster support with proper isolation verification This change moves database selection from a post-connection SELECT command to a connection parameter, which is more reliable for cluster mode and handles reconnections automatically. The approach works with servers that support multi-database cluster configurations (like Valkey 9.0+). * add valkey9 constraint in the core tests * fix core test not skipping test when version was lower than valkey 9 * Fix version check * refactored test test_set_database_id_after_reconnection to be similar from standalone removed is_valkey_9_or_higher * removed tests and cleanup * renamed builder.database to builder.database_id * go: Add multi-database support for cluster mode clients - Add DatabaseId field to baseClientConfiguration for both standalone and cluster clients - Implement WithDatabaseId() method for ClusterClientConfiguration - Add database ID validation with proper error handling for negative values - Refactor standalone client to use shared database ID logic from base configuration - Add Select() and SelectWithOptions() methods for cluster clients with routing support - Include comprehensive test coverage for database isolation, reconnection persistence, and error handling - Add backward compatibility support - clients default to database 0 when no database_id specified - Add server version compatibility checks (cluster multi-database requires Valkey 9.0+) - Update documentation with warnings about SELECT command limitations and recommended configuration approach This enables cluster mode clients to connect to specific databases at initialization time, with the database selection persisting across reconnections, unlike the SELECT command which resets on reconnection. * fixed go tests - batch tests - database id tests * removed selectWithOptions * go: Remove Select command from cluster clients - Remove Select method from ClusterClient and related interfaces - Delete comprehensive database_id integration tests - Remove Select command from batch operations - Remove Select examples and tests - Add example for cluster client with database_id configuration The Select command is being removed in favor of using the database_id configuration parameter, which provides persistent database selection across reconnections. * remove config validation simplified tests * added changelog * removing batch test, and readding standalone select and removing batch select --------- Signed-off-by: affonsov <[email protected]> * [Backport 2.1] Java: Multi-Database Support for Cluster Mode Valkey 9.0 (#4697) Java: Multi-Database Support for Cluster Mode Valkey 9.0 (#4658) * - Implement database selection for cluster clients when database_id != 0 - Send SELECT command to all cluster nodes using MultiNode routing - Add comprehensive error handling with clear error messages - Include test for database selection error handling in cluster mode - Support backward compatibility with servers that don't support multi-db cluster mode - Enable cluster-databases=16 for Valkey 9.0+ in cluster manager This enables cluster clients to work with non-default databases on Valkey 9.0+ servers configured with cluster-databases support, while gracefully handling older servers that don't support this feature. * update valkey9 multi db tests * fix lint * fixing valkey 9 cluster tests * add to route to all nodes in the core * rust lint fix * implement database selection in cluster mode via connection parameters - Add database_id field to ClusterParams and BuilderParams structs - Add database() method to ClusterClientBuilder for setting database ID - Pass database_id through connection info instead of post-connection SELECT - Remove SELECT command from cluster routing - Remove post-connection SELECT command logic from create_cluster_client - Add comprehensive tests for database isolation and reconnection behavior - Verify database ID persistence across node reconnections - Test multi-database cluster support with proper isolation verification This change moves database selection from a post-connection SELECT command to a connection parameter, which is more reliable for cluster mode and handles reconnections automatically. The approach works with servers that support multi-database cluster configurations (like Valkey 9.0+). * add valkey9 constraint in the core tests * fix core test not skipping test when version was lower than valkey 9 * Fix version check * refactored test test_set_database_id_after_reconnection to be similar from standalone removed is_valkey_9_or_higher * removed tests and cleanup * renamed builder.database to builder.database_id * Java: implement multi-database support for cluster mode - Move databaseId from GlideClientConfiguration to BaseClientConfiguration - Add databaseId validation and protobuf integration - Update SELECT command with AllNodes routing and reconnection warnings - Add connection management for database selection after auth - Add comprehensive tests with Valkey 9+ version guards Completes Java client implementation for Valkey 9 cluster multi-database support. * fixing database id restriction * fixed java test error select_command_invalid_database_standalone * fixed lint errors * Refactored select command to route to all nodes per default Removed the option to provide a route * java lint fix * java: Remove SELECT command from cluster client - Remove select() method from GlideClusterClient and ConnectionManagementClusterCommands interface - Delete MultiDatabaseTests.java which tested SELECT command functionality - Remove SELECT command tests from SharedCommandTests.java - Add focused test for cluster database_id configuration in ClusterClientTests - Remove SELECT import from GlideClusterClient The SELECT command is being removed from the cluster client API as database selection should be handled through client configuration (databaseId parameter) rather than runtime commands, which provides better consistency and avoids reconnection issues. * remove database_id validatation and simplified tests * added changelog * fix documentation * fix databaseId documentation --------- Signed-off-by: affonsov <[email protected]> * [Backport 2.1] Node: Add Multi-Database Support for Cluster Mode (Valkey 9.0) (#4698) Node: Add Multi-Database Support for Cluster Mode (Valkey 9.0) (#4657) * - Implement database selection for cluster clients when database_id != 0 - Send SELECT command to all cluster nodes using MultiNode routing - Add comprehensive error handling with clear error messages - Include test for database selection error handling in cluster mode - Support backward compatibility with servers that don't support multi-db cluster mode - Enable cluster-databases=16 for Valkey 9.0+ in cluster manager This enables cluster clients to work with non-default databases on Valkey 9.0+ servers configured with cluster-databases support, while gracefully handling older servers that don't support this feature. * update valkey9 multi db tests * fix lint * fixing valkey 9 cluster tests * add to route to all nodes in the core * rust lint fix * implement database selection in cluster mode via connection parameters - Add database_id field to ClusterParams and BuilderParams structs - Add database() method to ClusterClientBuilder for setting database ID - Pass database_id through connection info instead of post-connection SELECT - Remove SELECT command from cluster routing - Remove post-connection SELECT command logic from create_cluster_client - Add comprehensive tests for database isolation and reconnection behavior - Verify database ID persistence across node reconnections - Test multi-database cluster support with proper isolation verification This change moves database selection from a post-connection SELECT command to a connection parameter, which is more reliable for cluster mode and handles reconnections automatically. The approach works with servers that support multi-database cluster configurations (like Valkey 9.0+). * add valkey9 constraint in the core tests * fix core test not skipping test when version was lower than valkey 9 * Fix version check * refactored test test_set_database_id_after_reconnection to be similar from standalone removed is_valkey_9_or_higher * removed tests and cleanup * renamed builder.database to builder.database_id * node changes * move tests to sharedtests.ts * reafactoring to select to all nodes being in the core * node: Remove SELECT command support from cluster client - Remove select() method from GlideClusterClient - Remove createSelect import from cluster client - Remove extensive test coverage for SELECT functionality - Remove database ID validation tests from client internals - Add minimal database ID test for cluster client configuration - Clean up ConfigurationError import that's no longer needed This change removes the SELECT command implementation that was added for Valkey 9.0+ cluster support, likely due to reliability concerns with database switching in cluster mode or to simplify the API. * added changelog * fix test, and removed comment --------- Signed-off-by: affonsov <[email protected]> * [Backport 2.1] Python sync: removed select command (#4705) Python sync: removed select command (#4684) removed sync select command Signed-off-by: Lior Sventitzky <[email protected]> * [Backport 2.1] CI/CD: Added self hosted macOS ARM runners (#4706) * CI: Added self hosted macOS runners (#4683) added self hosted runners for macos Signed-off-by: Lior Sventitzky <[email protected]> * CD: removed self hosted mac arm runners from required CD platforms #4700 (#4702) removed self hosted mac from cd, reverted npm-cd Signed-off-by: Lior Sventitzky <[email protected]> --------- Signed-off-by: Lior Sventitzky <[email protected]> * [backport 2.1] Python: fixed pypi-cd workflow, fixed release tests (#4708) Python: fixed pypi-cd workflow, fixed release tests (#4703) fixed pypi upload, fixed release tests Signed-off-by: Lior Sventitzky <[email protected]> * Fix FFI tests for non-alpine distros (#4711) Signed-off-by: Jeremy Parr-Pearson <[email protected]> * MUSL Java Build Fixes (#4712) * Use zigbuild for easier cross-compilation Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix Signed-off-by: Alex Rehnby-Martin <[email protected]> * Use zigbuild for easier cross-compilation Signed-off-by: Alex Rehnby-Martin <[email protected]> * Use zigbuild for easier cross-compilation Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix musl classifier / detection Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix musl classifier / detection Signed-off-by: Alex Rehnby-Martin <[email protected]> * Fix musl classifier / detection Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update docs Signed-off-by: Alex Rehnby-Martin <[email protected]> * Exclude arm musl test Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update arm runner Signed-off-by: Alex Rehnby-Martin <[email protected]> * Update go exclusion Signed-off-by: Alex Rehnby-Martin <[email protected]> * Format Signed-off-by: Alex Rehnby-Martin <[email protected]> --------- Signed-off-by: Alex Rehnby-Martin <[email protected]> * Revert go upload step change (#4716) Signed-off-by: Alex Rehnby-Martin <[email protected]> * CD: Fix Node CD delete artifact issue (#4717) Signed-off-by: James Xin <[email protected]> * CD: Fix Go musl CD issue (#4719) Signed-off-by: James Xin <[email protected]> * CD: Fix Node CD delete artifact issue 2nd try (#4718) * CD: Fix Node CD delete artifact issue 2nd try Signed-off-by: James Xin <[email protected]> * Linter Signed-off-by: James Xin <[email protected]> * remove temporary testing Signed-off-by: James Xin <[email protected]> --------- Signed-off-by: James Xin <[email protected]> * Python: Update ExpiryType enum references in hash field expiration docs (#4715) python: Update ExpiryType enum references in hash field expiration docs Replace deprecated ExpiryType enum values with new names in docstrings: - EX → SEC - PX → MILLSEC - EXAT → UNIX_SEC - PXAT → UNIX_MILLSEC - KEEPTTL → KEEP_TTL Updates documentation for hash field expiration commands in both async and sync clients. Signed-off-by: affonsov <[email protected]> * [Backport 2.1] Python sync/CD: added description to pypi package of the sync client (#4720) Python sync/CD: added description to pypi package of the sync client (#4714) added description to sync client Signed-off-by: Lior Sventitzky <[email protected]> * Java: Compatibility layer module (#4692) * Java: Compatibility layer module Signed-off-by: Prateek Kumar <[email protected]> * Java: fix integration tests Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql for java code Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix codeql java build Signed-off-by: Prateek Kumar <[email protected]> * Java: Update java cd Signed-off-by: Prateek Kumar <[email protected]> * Java: lint issues fixed Signed-off-by: Prateek Kumar <[email protected]> * Java: Add signing configuration to jedis-compatibility build.gradle Signed-off-by: Prateek Kumar <[email protected]> * Java: update dependency Signed-off-by: Prateek Kumar <[email protected]> * Java: Update valkey-glide-jedis-compatibility file path Signed-off-by: Prateek Kumar <[email protected]> * Java: Fix build.gradle publishing code Signed-off-by: Prateek Kumar <[email protected]> --------- Signed-off-by: Prateek Kumar <[email protected]> * Fix: Copy GPG secring to jedis-compatibility in Java CD workflow (#4723) fix(java-cd): copy secring.gpg to jedis-compatibility for signing Signed-off-by: jbrinkman <[email protected]> * [Backport 2.1] Python Sync: revert license format (#4732) Python Sync: revert license format (#4731) revert license format Signed-off-by: Lior Sventitzky <[email protected]> * Java: Fix Jedis compatibility layer valkey-glide dependency (#4737) * Java: Fix Jedis compatibility layer valkey-glide dependency Signed-off-by: Prateek Kumar <[email protected]> * [Backport 2.1] Python: improve UDS socket error handling (#4733) (#4755) Python: improve UDS socket error handling (#4733) fixed uds error handling Signed-off-by: Lior Sventitzky <[email protected]> Co-authored-by: Lior Sventitzky <[email protected]> --------- Signed-off-by: James Xin <[email protected]> Signed-off-by: Alex Rehnby-Martin <[email protected]> Signed-off-by: Prateek Kumar <[email protected]> Signed-off-by: affonsov <[email protected]> Signed-off-by: Lior Sventitzky <[email protected]> Signed-off-by: Jeremy Parr-Pearson <[email protected]> Signed-off-by: jbrinkman <[email protected]> Co-authored-by: James Xin <[email protected]> Co-authored-by: Alex Rehnby-Martin <[email protected]> Co-authored-by: Alexey Temnikov <[email protected]> Co-authored-by: prateek-kumar-improving <[email protected]> Co-authored-by: affonsov <[email protected]> Co-authored-by: Lior Sventitzky <[email protected]> Co-authored-by: Jeremy Parr-Pearson <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue link
This Pull Request is linked to issue [#4752]
Checklist
Before submitting the PR make sure the following are checked: