DOC-7070 Resurrect RDI version dropdown in docs-nav - #4009
Conversation
Wires "Redis Data Integration" into the same version-selector mechanism already used by Redis Software, Kubernetes, and RedisVL, resurrecting the doc-versioning PR #1188 that DOC-7070 references. Reads real version subfolders under content/integrate/redis-data-integration/ once they exist; today there are none, so the dropdown shows only "latest" until the RDI team creates the first archived version. PR #1188 (Feb 2025) can't be reapplied verbatim: since it was opened, docs-nav.html's per-product blocks were rewritten from a hardcoded single "latest" link into a dynamic directory/versions-file scan, and scripts.html grew a RedisVL branch (develop/ai path) alongside the original RS/Kubernetes one (operate path). The PR's fix for _openVersionSelector — a single regex covering `(?:operate|integrate)` — would have silently broken RedisVL, which lives under develop/ai/ and matches neither. Added RDI as an explicit third branch instead. Verified locally with a throwaway 1.19.1 test folder (removed before commit): the dropdown only becomes visible under a URL carrying the /docs/latest/ or /docs/staging/<branch>/ prefix that CI's baseURL rewrite adds, so a bare `hugo server` never shows it — confirmed via a real browser load with `--baseURL http://localhost:1313/docs/latest/`, where the dropdown correctly listed latest and v1.19.1. Learned: version-dropdown visibility for every product (not just RDI) needs the /docs/latest|staging baseURL prefix CI injects Constraint: RDI version folders under content/integrate/redis-data-integration/ must match ^\d+\.\d+\.\d+$ (three-part, e.g. 1.19.1) to be picked up Rejected: reapplying PR #1188's scripts.html regex verbatim | its two-way (?:operate|integrate) split ignores RedisVL's develop/ai path added since Ticket: DOC-7070 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
🧠 Redis MemoryFound 7 related items from repository history (1 new this commit):
Memory updated at 46940b5 |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5ace758. Configure here.
docs-nav.html checked fileExists/readFile "redis-data-integration-versions", a filename I invented by analogy with the other three products. CI has actually written the RDI version list to "rdi-versions" since 884c8ad (Feb 2026), long before this PR, matching the sibling kubernetes-versions/ rs-versions/redisvl-versions convention. Because CI's "latest" build job also rm -rf's the version subfolders before running hugo, the readDir fallback was equally dead in production — so with the wrong filename, the dropdown could never show anything but "latest", permanently, regardless of how many versions the RDI team archived. Caught by Cursor Bugbot on PR #4009 (finding 4015546414). Verified by reading .github/workflows/main.yml directly, then reproduced the actual CI condition locally (a bare "rdi-versions" file with no content subfolder on disk, not a scratch content folder) and confirmed the dropdown now lists real versions. Learned: any change to this dropdown must test against a rdi-versions file, not a scratch content subfolder, since CI never leaves the folder in place for the latest build Constraint: the versions-file name here must match CI's existing <product>-versions convention in .github/workflows/main.yml, not be invented per-product Ticket: DOC-7070 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Thanks @paoloredis ! |
Freezes the current RDI docs as content/integrate/redis-data-integration/ 1.19.1/ so the version dropdown has a real archived version to show once v2.0.0 ships, per the RDI team's timeline. Separate commit from the dropdown code so it can be reverted on its own if v2.0.0 slips or the content needs another pass. Generated with `python3 build/version_archiver.py redis-data-integration 1.19.1`, not a plain copy: it excludes release-notes, rewrites internal relrefs to the versioned path, and sets linkTitle/url/bannerText on every file to match the existing RS/Kubernetes archive convention. One thing the archiver doesn't handle: it copies `aliases:` frontmatter verbatim, so 76 files ended up with legacy redirect aliases duplicated into the new folder. A real `hugo` build confirmed the archived page wins that collision — every one of those legacy URLs would have started redirecting to the frozen 1.19.1 snapshot instead of the live page. Stripped `aliases:` from all 76 files by hand (same class of bug as DOC-4928's RS 7.8 fix). Verified via a full build (redirects target the live page again) and by replaying CI's build_rdi rsync+sed sequence against an isolated scratch copy of the tree. Constraint: content/integrate/redis-data-integration/1.19.1/ must carry no aliases: frontmatter on any file, or legacy redirects hijack to this frozen snapshot instead of latest Rejected: a plain recursive copy of the RDI folder | misses linkTitle/url/bannerText injection and duplicates aliases undetected Directive: any future RDI (or RS/Kubernetes/RedisVL) version archive must grep for and strip aliases: after running version_archiver.py, not just trust the script's output Ticket: DOC-7070 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Summary
docs-nav.html+scripts.html) already used by Redis Software, Kubernetes, and RedisVL, resurrecting the doc-versioning work from Update docs-nav.html and scripts.html for rdi versions #1188.content/integrate/redis-data-integration/dynamically, matching the pattern the other three products now use — rather than a hardcoded "latest"-only link.integrate/) inscripts.html's_openVersionSelector, alongside the existingoperate/(RS, Kubernetes) anddevelop/ai/(RedisVL) branches, instead of reusing Update docs-nav.html and scripts.html for rdi versions #1188's two-way regex, which would have silently broken RedisVL.Why not just update #1188?
Since #1188 was opened,
docs-nav.html's per-product blocks were rewritten from hardcoded single-version links into a dynamic directory/versions-file scan, and RedisVL support was added toscripts.html, touching the same lines #1188 touches. Its diff no longer applies cleanly or correctly, so this reimplements the same intent against the current pattern. See DOC-7070 for the ticket.Content status
content/integrate/redis-data-integration/currently has no versioned subfolders, so the dropdown will only show "latest" until the RDI team creates one (e.g.content/integrate/redis-data-integration/1.19.1/) for the v2.0.0 release. No further code changes are needed when that happens — verified locally with a throwaway version folder.Test plan
hugobuild succeeds with no template errorshugo server --baseURL http://localhost:1313/docs/latest/+ browser check that the dropdown appears and correctly lists a test version alongside "latest"🤖 Generated with Claude Code
Note
Low Risk
Documentation-only content under a new version path; no application or auth code changes.
Overview
Adds a versioned RDI docs tree at
content/integrate/redis-data-integration/1.19.1/, giving the docs nav a real semver folder (e.g. 1.19.1) alongside latest per DOC-7070.The new section is a full 1.19.1 snapshot: product overview (including Redis Cloud managed RDI), architecture (CDC pipeline, backpressure, classic vs Flink processors), data pipelines (lifecycle,
config.yaml, deploy/secrets/CLI), denormalization (merge/nest), and prepare source database guides (AWS Aurora/RDS, MongoDB, MySQL/MariaDB, Neon, Oracle LogMiner/XStream, PostgreSQL, and related topics). Front matter sets version banners andrelrefpaths under/integrate/redis-data-integration/1.19.1/.Pipeline configuration docs steer new pipelines toward
processors.type: flinkand document Flink tuning, metrics/DLQ differences vs classic, and an optional AI-assistant prompt for buildingconfig.yaml.Reviewed by Cursor Bugbot for commit 46940b5. Bugbot is set up for automated code reviews on this repo. Configure here.