Skip to content

DOC-7089: Migrate content/operate/oss_and_stack/stack-with-enterprise/release-notes/ to render hooks - #4069

Merged
andy-stark-redis merged 2 commits into
mainfrom
DOC-7089-release-notes
Sep 21, 2026
Merged

andy-stark-redis merged 2 commits into
mainfrom
DOC-7089-release-notes

Conversation

@andy-stark-redis

@andy-stark-redis andy-stark-redis commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Converts ]({{< relref "X" >}}) links to canonical /content/<path>.md[#anchor] plain links, and {{< note >}}/tip/warning/alert shortcodes (and {{% %}} percent form) to native > [!NOTE] etc. blockquotes, across all 59 *.md files under content/operate/oss_and_stack/stack-with-enterprise/release-notes/ (unit 3 of 5 for DOC-7089).
  • 34 of 59 files had shortcodes to convert (114 relrefs, 28 callouts). File count unchanged (59 before and after).
  • Hand-fixed two pre-identified/discovered edge cases the tool can't handle mechanically:
    • redisgraph/redisgraph-2.8-release-notes.md: a list-nested {{<note>}} lost its 4-space list-continuation indent on blockquote conversion (known tool limitation). Restored the indent on every blockquote line and confirmed in the built HTML that the callout <div> still renders inside its <li>, not as a top-level block.
    • redisjson/redisjson-2.2-release-notes.md: a pre-existing malformed relref — {{< relref ".../json" >}}active-active/) — relied on relref's implicit trailing slash to accidentally produce a working link to .../json/active-active/. The mechanical conversion dropped that implicit slash, producing a broken .../jsonactive-active/ link and a new build warning. Rewrote to the canonical /content/.../json/active-active.md form used elsewhere in the same file.
  • No missing-paren malformed relrefs (the unit-1 pattern) found in this directory.
  • Anomaly: the ticket's scoping expected 13 files with a legacy literal HTML <note>...</note> wrapper to leave untouched. On inspection, those 13 matches were all the compact {{<note>}} shortcode form (correctly converted), not a literal HTML wrapper — no literal HTML <note> tag exists anywhere in this directory, before or after this change.

Test plan

  • find content/operate/oss_and_stack/stack-with-enterprise/release-notes -name '*.md' | wc -l → 59, unchanged before/after conversion
  • grep -rnE '\]\{\{[<%] *relref' ... → 0 malformed relrefs found in this unit
  • grep -rnE '^[[:space:]]+\{\{[<%] *(note|tip|warning)' ... → confirmed the one known redisgraph-2.8 instance, no others
  • Two full Hugo builds (clean origin/main baseline vs. this branch), diffed via build/diff_rendered_hrefs.py filtered to operate/oss_and_stack/stack-with-enterprise/release-notes: 0 href differences across 60 pages
  • Warning counts identical between baseline and converted builds (17 each) — 0 new warnings
  • Manually confirmed the redisgraph-2.8 callout renders nested inside its list item in the built HTML, matching baseline nesting

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only link and callout formatting; no runtime or product behavior changes. Risk is limited to broken or shifted cross-links if canonical paths are wrong.

Overview
Migrates 59 release-notes markdown files under content/operate/oss_and_stack/stack-with-enterprise/release-notes/ away from Hugo render hooks toward plain markdown the new pipeline can handle.

Internal links: ]({{< relref "..." >}}) (and similar) are replaced with canonical paths like /content/.../*.md and preserved #anchors, across RedisBloom, RediSearch, RedisJSON, RedisTimeSeries, RedisGraph, RedisGears, Redis CE, and Redis Stack notes.

Callouts: {{< note >}} / {{< warning >}} (and percent-form variants) become GitHub-style blockquotes (> [!NOTE], > [!WARNING], etc.).

Hand fixes: Restored list indentation for a nested note in redisgraph-2.8-release-notes.md, and corrected a broken Active-Active link in redisjson-2.2-release-notes.md after a malformed relref conversion.

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

…/release-notes/ to render hooks

Converts relref markdown links to canonical /content/<path>.md[#anchor]
plain links, and note/tip/warning callout shortcodes to native
> [!NOTE] blockquotes, across the 59 legacy module release-notes pages
(redistimeseries, redisearch, redisbloom, redisjson, redisgraph, redisce,
redisgears, redisstack). 34 of 59 files had shortcodes to convert.

Hand-fixed two cases the tool couldn't handle cleanly:
- redisgraph/redisgraph-2.8-release-notes.md: a list-nested {{<note>}}
  lost its 4-space continuation indent on conversion (known tool
  limitation), which would have de-nested the blockquote from its list
  item. Restored the indent on every blockquote line; confirmed in the
  built HTML that the callout div still renders inside the <li>.
- redisjson/redisjson-2.2-release-notes.md: a pre-existing malformed
  relref — {{< relref ".../json" >}}active-active/) — relied on
  relref's implicit trailing slash to accidentally produce a working
  link to .../json/active-active/. The mechanical relref-to-plain
  conversion dropped that implicit slash, producing a broken
  .../jsonactive-active/ link and a new build warning. Rewrote it to
  the canonical /content/.../json/active-active.md form used elsewhere
  in the same file.

No malformed-relref-missing-parens instances (the unit-1 pattern) found
in this directory. The 13 files carrying a `<note>` substring turned out
on inspection to be matches of the compact {{<note>}} shortcode, not a
literal HTML <note> wrapper — no actual literal HTML note wrapper exists
anywhere in this directory, so nothing was left deliberately untouched
on that basis.

Verified with two full Hugo builds (clean origin/main baseline vs. this
branch) diffed via diff_rendered_hrefs.py, filtered to this directory:
0 href differences across all 60 rendered pages, and identical warning
counts (17) between baseline and converted builds.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

DOC-7089

@github-actions

github-actions Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

Staging links:
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.0-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.2-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.4-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.6-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.8-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisos-8.0-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisos-8.10-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-1.4-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-1.6-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.0-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.10-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.2-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.4-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.6-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.8-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgears/redisgears-1.0-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgears/redisgears-1.2-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.0-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.2-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.4-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.8-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.0-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.2-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.4-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.6-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.8-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redisstack/redisstack-7.4-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.0-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.10-release-notes/
https://redis.io/docs/staging/DOC-7089-release-notes/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.12-release-notes/

@dwdougherty dwdougherty left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

There were a coupla malformed links in the source files and they need some patching up post-conversion. Otherwise, LGTM.

- [#1385](https://github.com/RediSearch/RediSearch/pull/1385): Add index definition to `FT.INFO` response.
- [#1097](https://github.com/RediSearch/RediSearch/pull/1097): Add Hindi snowball stemmer.
- The `FT._LIST` command returns a list of all available indices. Note that this is a temporary command, as indicated by the `_` in the name, so it's not documented. We're working on a [`SCAN`]({{< relref "/commands/scan" >}}-like command for databases with many indexes.
- The `FT._LIST` command returns a list of all available indices. Note that this is a temporary command, as indicated by the `_` in the name, so it's not documented. We're working on a [`SCAN`](/commands/scan-like command for databases with many indexes.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
- The `FT._LIST` command returns a list of all available indices. Note that this is a temporary command, as indicated by the `_` in the name, so it's not documented. We're working on a [`SCAN`](/commands/scan-like command for databases with many indexes.
- The `FT._LIST` command returns a list of all available indices. Note that this is a temporary command, as indicated by the `_` in the name, so it's not documented. We're working on a [`SCAN`](/commands/scan)-like command for databases with many indexes.

### Features

In RedisTimeSeries, we are introducing a new data type that uses chunks of memory of fixed size for time series samples, indexed by the same [Radix Tree implementation](https://github.com/antirez/rax) as Redis Streams. With Streams, you can create a [capped stream]({{< relref "/commands/xadd" >}}, effectively limiting the number of messages by count. In RedisTimeSeries, you can apply a retention policy in milliseconds. This is better for time series use cases, because they are typically interested in the data during a given time window, rather than a fixed number of samples.
In RedisTimeSeries, we are introducing a new data type that uses chunks of memory of fixed size for time series samples, indexed by the same [Radix Tree implementation](https://github.com/antirez/rax) as Redis Streams. With Streams, you can create a [capped stream](/commands/xadd, effectively limiting the number of messages by count. In RedisTimeSeries, you can apply a retention policy in milliseconds. This is better for time series use cases, because they are typically interested in the data during a given time window, rather than a fixed number of samples.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
In RedisTimeSeries, we are introducing a new data type that uses chunks of memory of fixed size for time series samples, indexed by the same [Radix Tree implementation](https://github.com/antirez/rax) as Redis Streams. With Streams, you can create a [capped stream](/commands/xadd, effectively limiting the number of messages by count. In RedisTimeSeries, you can apply a retention policy in milliseconds. This is better for time series use cases, because they are typically interested in the data during a given time window, rather than a fixed number of samples.
In RedisTimeSeries, we are introducing a new data type that uses chunks of memory of fixed size for time series samples, indexed by the same [Radix Tree implementation](https://github.com/antirez/rax) as Redis Streams. With Streams, you can create a [capped stream](/commands/xadd), effectively limiting the number of messages by count. In RedisTimeSeries, you can apply a retention policy in milliseconds. This is better for time series use cases, because they are typically interested in the data during a given time window, rather than a fixed number of samples.

Both pre-existing links dropped straight from the {{< relref >}} shortcode
into trailing prose with no closing markdown-link paren, so they rendered
as literal text before this migration too. Applying dwdougherty's PR
suggestions directly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@andy-stark-redis
andy-stark-redis merged commit 5b5f64a into main Sep 21, 2026
52 checks passed
@andy-stark-redis
andy-stark-redis deleted the DOC-7089-release-notes branch September 21, 2026 15:36
@andy-stark-redis

Copy link
Copy Markdown
Contributor Author

Thanks for spotting those, @dwdougherty - now fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants