Skip to content
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

Redis 8 compatibility improvements and test infrastructure updates #2893

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

bobymicroby
Copy link
Member

@bobymicroby bobymicroby commented Feb 11, 2025

Key Changes:

  • Switch test infrastructure to use redislabs/client-libs-test container
  • Handle Redis 8 specific behaviors:
    • Empty results format in SUGGET commands
    • Increased coordinate precision in GEOPOS
    • New indexes_all field in Search INFO responses
    • CONFIG SET/GET compatibility for Search module settings
  • Simplify PROFILE commands to return raw responses instead of transformed data structures
  • Update test suite to properly handle version-specific behaviors

Breaking Changes:

  • PROFILE commands now return raw Redis responses instead of transformed data structures. This provides more flexibility for handling version-specific response formats.

Test Coverage:

  • Added version-specific test cases using new testWithClientIfVersionWithinRange helper
  • Updated existing tests to handle Redis 8 response formats
  • Improved test infrastructure to better support version matrix testing

This change set prepares the codebase for full Redis 8 compatibility while maintaining support for earlier versions.

@bobymicroby bobymicroby force-pushed the use-8-in-tests branch 3 times, most recently from ab31e4a to 66a0d27 Compare February 11, 2025 09:53
Copy link
Member Author

@bobymicroby bobymicroby left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed the unsafe shell command construction

@bobymicroby bobymicroby force-pushed the use-8-in-tests branch 8 times, most recently from 8bfc0ae to 483e072 Compare February 17, 2025 11:31
This  switches our testing infrastructure from redis/redis-stack to
redislabs/client-libs-test Docker image across all packages. This change
also updates the default Docker version from 7.4.0-v1 to 8.0-M04-pre.
- Add tests for Redis 8 search configuration settings
- Deprecate Redis Search CONFIG commands in favor of standard CONFIG
- Test read-only config restrictions for Redis 8
- Update GEOPOS tests to handle increased precision in Redis 8 (17 decimal places vs 14)
- Add precision-aware coordinate comparison helper
- Add comprehensive test suite for coordinate comparison function
- Update tests to expect empty array ([]) instead of null for SUGGET variants
- Affects sugGet, sugGetWithPayloads, sugGetWithScores, and sugGetWithScoresWithPayloads
- Add indexes_all field introduced in Redis 8 to index definition test
@bobymicroby bobymicroby force-pushed the use-8-in-tests branch 3 times, most recently from 272498b to 0c27ce5 Compare February 24, 2025 08:44
@bobymicroby bobymicroby changed the title churn(test): use redislabs/client-libs-test for testing Redis 8 compatibility improvements and test infrastructure updates Feb 24, 2025
@bobymicroby bobymicroby changed the title Redis 8 compatibility improvements and test infrastructure updates [wip] Redis 8 compatibility improvements and test infrastructure updates Feb 24, 2025
- BREAKING CHANGE: FT.PROFILE now returns raw response, letting users implement their own parsing
- Add `testWithClientIfVersionWithinRange` method to run tests for specific Redis versions
- Refactor TestUtils to handle version comparisons more accurately
- Update test utilities across Redis modules to run tests against multiple versions, and not against latest only
@bobymicroby bobymicroby changed the title [wip] Redis 8 compatibility improvements and test infrastructure updates Redis 8 compatibility improvements and test infrastructure updates Feb 25, 2025
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.

1 participant