Additional information, following a suggestion to test a relaxed
requirement.
1. Package build. I took ruby-redis_6.0.0-1.dsc from the archive and
added a quilt patch that changes line 52 of redis.gemspec from '0.30.1'
to '>= 0.30.1' (full patch below). sbuild in an unstable chroot with
ruby-redis-client 0.31.0-1 installed finished with Status: successful
and Lintian: pass. The build log says "Run tests for ruby3.3: no test
suite!", so this step ran no tests.
2. Upstream test suite. I cloned upstream redis-rb at tag v6.0.0 and
made the same change to redis.gemspec. With redis-client 0.31.0 and
hiredis-client 0.31.0 installed from rubygems.org, I ran upstream's
tests as its CI workflow (.github/workflows/test.yaml) does: Redis 8.8.0
servers from upstream's docker-compose.yml, Ruby 3.3.8, and the test
groups redis, distributed, sentinel, modules and cluster, each under
RESP3 and RESP2 with the ruby and hiredis drivers.
Result: 0 failures and 0 errors in every run. The redis group ran 656
tests, distributed 431, sentinel 20, modules 264 and cluster 488, with
skips as the suite defines them. With the original pin (redis-client
0.30.1) the first four groups also passed, with the same counts.
Limits of this result: I tested one Ruby version (3.3.8) and one Redis
version (8.8.0), not the full CI matrix, and I ran the groups one at a
time with rake instead of in one command. I used the redis-client gem
from rubygems.org, not the Debian package ruby-redis-client 0.31.0-1,
and I did not compare the two. These results do not show that the Debian
package builds and passes its own tests with a relaxed dependency.
The pin is deliberate upstream. The comment above line 52 in
redis.gemspec says: "Bump deliberately and re-run the full suite." I
therefore offer the patch and the results as evidence only, not as a
recommended change. I have also asked upstream about redis-client
0.31.0: https://github.com/redis/redis-rb/issues/1398
Patch used for the test:
Index: ruby-redis-6.0.0/redis.gemspec
===================================================================
--- ruby-redis-6.0.0.orig/redis.gemspec
+++ ruby-redis-6.0.0/redis.gemspec
@@ -49,5 +49,5 @@
# constraint can change semantics under a stable redis release. Bump
deliberately and re-run
# the full suite. Note hiredis-client versions in lockstep (it
requires redis-client `= x.y.z`).
- s.add_runtime_dependency('redis-client', '0.30.1')
+ s.add_runtime_dependency('redis-client', '>= 0.30.1')
end
Ajayi Olatunji