Repository navigation
DOC-7292 Add API mappings for the new Redis 8.12 commands [PARKED] - #4525
Open
andy-stark-redis wants to merge 1 commit into
Open
andy-stark-redis wants to merge 1 commit into
andy-stark-redis wants to merge 1 commit into
Conversation
Adds data/command-api-mapping/ entries for BITRANGEINTARRAY, SADDEX, SEXPIRE, SPEXPIRE, SEXPIREAT, SPEXPIREAT, STTL, SPTTL, SEXPIRETIME, SPEXPIRETIME, SPERSIST and BLESS SET/CLEAR/GET/SCAN (15 files), and regenerates data/command-api-mapping.json (additions only). Signatures were read from each client's default branch on 2026-11-10, not from a release. None of these APIs is in a stable release yet, so this PR is parked until the clients ship (see the park manifest). Per-client state on 2026-11-10: - redis_py: all 15 typed on master; in v8.2.0b1 except BITRANGEINTARRAY; none in v8.1.0 (latest stable). - node_redis: all 15; only BLESS confirmed shipped (6.3.1, 6.4.0-beta.0). - go-redis, redis_rb: all 15 on master, none in v9.23.0 / v6.0.0. - php (predis): BLESS shipped in 3.7.1; set expiry on main only (#1749); BITRANGEINTARRAY only in open PR #1754, so it is NOT mapped. - jedis: 14 on master (BLESS #4773, set expiry #4828), none in v8.1.0-beta2; BITRANGEINTARRAY only in open PR #4830, NOT mapped. - lettuce: all 15 on main (BITRANGEINTARRAY #3992 merged 2026-11-09), none in a tag. - nredisstack/SE.Redis and redis-rs: nothing on the default branch, so no entries. SE.Redis has the work on its 8.12 branch behind SER011. Learned: - The 2026-11-07 PR scan was already stale for lettuce and jedis; re-read the default branch rather than trusting the scan. - git's default diff of the regenerated merged file shows ~44k changed lines for what is an 8.5k-line pure addition; check with `git diff --patience`. - Several upstream tests gate these commands at 8.11.x while the commands ship in 8.12 (redis-py 8.11.240, predis 8.11.0); not a docs problem, but do not copy those gates. - go-redis BlessScan is node-local (cursor), and node_redis BLESS SCAN returns a transformed {cursor, keys} object; descriptions are left empty. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Contributor
Contributor
🧠 Redis MemoryFound 5 related items from repository history (5 new this commit):
Memory updated at 85470f0 |
This was referenced Nov 10, 2026
dwdougherty
approved these changes
Nov 10, 2026
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
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.
Adds
data/command-api-mapping/entries (15 files) for the commands new in Redis 8.12, and regeneratesdata/command-api-mapping.json(additions only;git diff --patienceshows +8,516/-0).Commands:
BITRANGEINTARRAY;SADDEX,SEXPIRE,SPEXPIRE,SEXPIREAT,SPEXPIREAT,STTL,SPTTL,SEXPIRETIME,SPEXPIRETIME,SPERSIST;BLESS SET/CLEAR/GET/SCAN.Warning
Do not merge yet. This PR documents client APIs that are on the clients' default branches but in no stable release. Base is
feature-oss-8.12(the 8.12 release branch), notmain.Run-verified on
redis:8.12-rc2(reportsredis_version:8.11.241, the rc2 string), 2026-11-10. Every mapped signature was called as written against the default branch of its client and returned the expected value: redis-py 509306fc7325, go-redis 9f33ff11dff1, node-redis be1e998a653d, redis-rb cadebe5d2c5e, predis 1685693b83ef, Jedis c701a365ab46, lettuce 62e6e6e7010b (sync, async and reactive). 320 overload rows passed, with no mismatches. Notes: node-redisblessScanneeds a string cursor ('0'), andSADDEXreplies1for any successful call, not a member count.Park manifest
Ticket: DOC-7292
Parked at: 2026-11-10
Trigger to pick up: for each client, the merge commit of its PR below is an ancestor of a non-prerelease tag (
gh api repos/<o>/<r>/compare/<merge-sha>...<tag>returnsbehind_by: 0), and Redis 8.12 is GA. Clients ship at different times, so unpark can land client rows in stages: remove rows for clients still unreleased.Labels: parked, do not merge yet
Pinned sources (state observed at park time, 2026-11-10)
8.12intomainRe-fetch a PR:
gh api repos/<o>/<r>/pulls/<n> --jq '{state, merged, head_sha: .head.sha, merge: .merge_commit_sha, base: .base.ref, updated_at}'. Re-read signatures from each client's default branch or release tag, not from the PR.Observed shape the page assumes
Confidence: MEDIUM for what each command does; LOW for identifiers, because none is released.
BITRANGEINTARRAY.BITRANGEINTARRAY), String and byte[] overloads as separate entries.sexpireandspexpirehave 8,sexpireatandspexpireat12).redis::cmd), nredisstack (SE.Redis work is on its8.12branch behindSER011), ioredis, redisvl.HEXPIRE.json.Re-check checklist
SetMemberExpirecoversSEXPIRE/SPEXPIRE/SEXPIREAT/SPEXPIREAT;SetMemberGetTimeToLiveisSPTTLonly;BLESS SCANisIServer.BlessedKeys). Decide how NRedisStack rows should represent that once8.12reachesmain.BITRANGEINTARRAYrows for jedis (#4830) and predis (DEV: add RESP2/3 return information to the t-digest commands #1754) once merged.CMS.INITBYDIM,CMS.INITBYPROBandCMS.INCRBYforCELL_SIZEand negative increments (not mapped here).BLESSconfirmed in a release; the other S* files were assumed to matchSEXPIRE.BlessScanis node-local (cursor); node-redisBLESS SCANreturns a transformed{cursor, keys}object. Check whether the rows should say so.HEXPIRE.json, which differ slightly from theclient-quirks.mdrules.On unpark, then
Run
/unparkwith this PR's number./unparkSteps 4–5 own the closing sequence;/finalizeis deferred until then.