Skip to content

DOC-7070 Resurrect RDI version dropdown in docs-nav - #4009

Merged
andy-stark-redis merged 3 commits into
mainfrom
DOC-7070-resurrect-rdi-doc-versioning
Sep 17, 2026
Merged

andy-stark-redis merged 3 commits into
mainfrom
DOC-7070-resurrect-rdi-doc-versioning

Conversation

@andy-stark-redis

@andy-stark-redis andy-stark-redis commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Summary

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 to scripts.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

  • hugo build succeeds with no template errors
  • Confirmed via hugo server --baseURL http://localhost:1313/docs/latest/ + browser check that the dropdown appears and correctly lists a test version alongside "latest"
  • Confirmed RS, Kubernetes, and RedisVL version selectors are unaffected
  • RDI team creates the first versioned content subfolder

🤖 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 and relref paths under /integrate/redis-data-integration/1.19.1/.

Pipeline configuration docs steer new pipelines toward processors.type: flink and document Flink tuning, metrics/DLQ differences vs classic, and an optional AI-assistant prompt for building config.yaml.

Reviewed by Cursor Bugbot for commit 46940b5. Bugbot is set up for automated code reviews on this repo. Configure here.

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>
@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

DOC-7070

@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

🧠 Redis Memory

Found 7 related items from repository history (1 new this commit):

Memory updated at 46940b5

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ 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.

Comment thread layouts/partials/docs-nav.html Outdated
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>
@andy-stark-redis

Copy link
Copy Markdown
Contributor Author

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>
@github-actions

Copy link
Copy Markdown
Contributor

Staging links:
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/architecture/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/architecture/classic-vs-flink/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/data-denormalization/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/deploy/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/pipeline-config/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/aws-aurora-rds/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/aws-aurora-rds/aws-aur-mysql/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/aws-aurora-rds/aws-aur-pgsql/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/aws-aurora-rds/aws-rds-sqlserver/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/mongodb/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/my-sql-mariadb/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/neon/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/oracle/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/postgresql/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/snowflake/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/spanner/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/sql-server/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/supabase/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/rejected-records/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/supported-types/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/transform-examples/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/transform-examples/caching-expression-results/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/transform-examples/formatting-date-and-time-values/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/transform-examples/map-example/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/transform-examples/redis-add-field-example/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/transform-examples/redis-expiration-example/
https://redis.io/docs/staging/DOC-7070-resurrect-rdi-doc-versioning/integrate/redis-data-integration/1.19.1/data-pipelines/transform-examples/redis-hash-example/

@andy-stark-redis
andy-stark-redis merged commit f7ad0b2 into main Sep 17, 2026
99 checks passed
@andy-stark-redis
andy-stark-redis deleted the DOC-7070-resurrect-rdi-doc-versioning branch September 17, 2026 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants