From 8e1ff0bb530107db8dcc378200cea73d4052df5a Mon Sep 17 00:00:00 2001 From: Rachel Elledge Date: Thu, 11 Dec 2025 12:48:39 -0600 Subject: [PATCH 1/3] Added generated timeline functionality and timeline for RS product lifecycle --- .../installing-upgrading/product-lifecycle.md | 16 + .../_markup/render-codeblock-timeline.html | 14 + layouts/_default/baseof.html | 5 + static/js/timeline.js | 275 ++++++++++++++++++ 4 files changed, 310 insertions(+) create mode 100644 layouts/_default/_markup/render-codeblock-timeline.html create mode 100644 static/js/timeline.js diff --git a/content/operate/rs/installing-upgrading/product-lifecycle.md b/content/operate/rs/installing-upgrading/product-lifecycle.md index ae88cf6cf3..8b1b3e8b8d 100644 --- a/content/operate/rs/installing-upgrading/product-lifecycle.md +++ b/content/operate/rs/installing-upgrading/product-lifecycle.md @@ -52,6 +52,22 @@ This update to the EOL policy allows a lead time of at least 24 months to upgrad | 5.4 – December 2018 | December 31, 2020 | | 5.2 – June 2018 | December 31, 2019 | +The following timeline chart visualizes the Redis Enterprise Software product lifecycle, showing release dates and end-of-life dates for each major version: + +```timeline {title="Redis Enterprise Software product lifecycle"} +8.0: Oct 2025 - TBD +7.22: May 2025 - Oct 30, 2027 +7.8: Nov 2024 - May 30, 2027 +7.4: Feb 2024 - Nov 30, 2026 +7.2: Aug 2023 - Feb 28, 2026 +6.4: Feb 2023 - Aug 31, 2025 +6.2: Aug 2021 - Feb 28, 2025 +6.0: May 2020 - May 31, 2022 +5.6: Apr 2020 - Oct 31, 2021 +5.4: Dec 2018 - Dec 31, 2020 +5.2: June 2018 - Dec 31, 2019 +``` + {{}} For detailed upgrade instructions, see [Upgrade a Redis Enterprise Software cluster]({{}}). diff --git a/layouts/_default/_markup/render-codeblock-timeline.html b/layouts/_default/_markup/render-codeblock-timeline.html new file mode 100644 index 0000000000..8c36aded0f --- /dev/null +++ b/layouts/_default/_markup/render-codeblock-timeline.html @@ -0,0 +1,14 @@ +{{ $width := (index .Attributes "width") | default "100%" }} +{{ $title := (index .Attributes "title") | default "Timeline" }} + +
+ +
+

{{ $title }}

+
{{ .Inner | htmlEscape }}
+
+
+ +{{ .Page.Store.Set "hasTimeline" true }} diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 9468dc6045..728b8d086e 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -114,5 +114,10 @@ {{ if .Page.Store.Get "hasDecisionTree" }} {{ end }} + + + {{ if .Page.Store.Get "hasTimeline" }} + + {{ end }} diff --git a/static/js/timeline.js b/static/js/timeline.js new file mode 100644 index 0000000000..4c39b25456 --- /dev/null +++ b/static/js/timeline.js @@ -0,0 +1,275 @@ +(function() { + 'use strict'; + + function parseTimelineData(yamlText) { + const lines = yamlText.trim().split('\n'); + const versions = []; + + for (const line of lines) { + const trimmed = line.trim(); + if (!trimmed || trimmed.startsWith('#')) continue; + + // Parse format: "version: release_date - eol_date" + const match = trimmed.match(/^([^:]+):\s*(.+)$/); + if (match) { + const version = match[1].trim(); + const dates = match[2].trim(); + + // Parse dates - handle different formats + const dateMatch = dates.match(/^(.+?)\s*-\s*(.+)$/); + if (dateMatch) { + const releaseStr = dateMatch[1].trim(); + const eolStr = dateMatch[2].trim(); + + versions.push({ + version: version, + release: releaseStr, + eol: eolStr, + releaseDate: parseDate(releaseStr), + eolDate: eolStr === 'TBD' ? null : parseDate(eolStr) + }); + } + } + } + + return versions; + } + + function parseDate(dateStr) { + if (!dateStr || dateStr === 'TBD') return null; + + // Handle formats like "October 2025", "Feb 28, 2025", etc. + const monthNames = { + 'january': 0, 'february': 1, 'march': 2, 'april': 3, 'may': 4, 'june': 5, + 'july': 6, 'august': 7, 'september': 8, 'october': 9, 'november': 10, 'december': 11, + 'jan': 0, 'feb': 1, 'mar': 2, 'apr': 3, 'jun': 5, 'jul': 6, 'aug': 7, 'sep': 8, 'oct': 9, 'nov': 10, 'dec': 11 + }; + + // Try "Month Year" format + let match = dateStr.match(/^(\w+)\s+(\d{4})$/i); + if (match) { + const month = monthNames[match[1].toLowerCase()]; + const year = parseInt(match[2]); + return new Date(year, month, 1); + } + + // Try "Month DD, YYYY" format + match = dateStr.match(/^(\w+)\s+(\d{1,2}),?\s+(\d{4})$/i); + if (match) { + const month = monthNames[match[1].toLowerCase()]; + const day = parseInt(match[2]); + const year = parseInt(match[3]); + return new Date(year, month, day); + } + + return null; + } + + function renderTimeline(container, versions, title) { + // Calculate date range + const allDates = versions.flatMap(v => [v.releaseDate, v.eolDate]).filter(d => d); + const minDate = new Date(Math.min(...allDates)); + const maxDate = new Date(Math.max(...allDates)); + + // Set to start of first year and end of last year (no extra padding) + minDate.setMonth(0, 1); // January 1st of the first year + maxDate.setMonth(11, 31); // December 31st of the last year + + // Make responsive - use container width or default + const containerWidth = container.offsetWidth || 800; + const svgWidth = Math.min(containerWidth - 20, 1000); // Leave some margin + const rowHeight = 60; // Increased spacing between rows + const svgHeight = 80 + versions.length * rowHeight + 20; // Reduced bottom padding + const chartLeft = 80; // Reduced from 120 to 80 + const chartRight = svgWidth - 50; + const chartWidth = chartRight - chartLeft; + + const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + svg.setAttribute('width', '100%'); + svg.setAttribute('height', svgHeight); + svg.setAttribute('viewBox', `0 0 ${svgWidth} ${svgHeight}`); + svg.style.fontFamily = 'Arial, sans-serif'; + svg.style.fontSize = '12px'; + svg.style.marginTop = '1em'; + svg.style.marginBottom = '1em'; + svg.style.maxWidth = '100%'; + svg.style.height = 'auto'; + + // Title + const titleEl = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + titleEl.setAttribute('x', svgWidth / 2); + titleEl.setAttribute('y', 25); + titleEl.setAttribute('text-anchor', 'middle'); + titleEl.style.fontSize = '16px'; + titleEl.style.fontWeight = 'bold'; + titleEl.textContent = title; + svg.appendChild(titleEl); + + // Column header for versions (two lines) + const versionHeader1 = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + versionHeader1.setAttribute('x', 10); + versionHeader1.setAttribute('y', 45); + versionHeader1.setAttribute('text-anchor', 'start'); + versionHeader1.style.fontSize = '13px'; + versionHeader1.style.fontWeight = '900'; + versionHeader1.style.fill = '#333'; + versionHeader1.textContent = 'Cluster'; + svg.appendChild(versionHeader1); + + const versionHeader2 = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + versionHeader2.setAttribute('x', 10); + versionHeader2.setAttribute('y', 58); + versionHeader2.setAttribute('text-anchor', 'start'); + versionHeader2.style.fontSize = '13px'; + versionHeader2.style.fontWeight = '900'; + versionHeader2.style.fill = '#333'; + versionHeader2.textContent = 'version'; + svg.appendChild(versionHeader2); + + // Time axis + const timeRange = maxDate.getTime() - minDate.getTime(); + + function dateToX(date) { + if (!date) return chartRight; + return chartLeft + ((date.getTime() - minDate.getTime()) / timeRange) * chartWidth; + } + + // Draw year markers + for (let year = minDate.getFullYear(); year <= maxDate.getFullYear(); year++) { + const yearDate = new Date(year, 0, 1); + const x = dateToX(yearDate); + + const line = document.createElementNS('http://www.w3.org/2000/svg', 'line'); + line.setAttribute('x1', x); + line.setAttribute('y1', 60); + line.setAttribute('x2', x); + line.setAttribute('y2', svgHeight - 40); + line.style.stroke = '#e0e0e0'; + line.style.strokeWidth = '1'; + svg.appendChild(line); + + const text = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + text.setAttribute('x', x); + text.setAttribute('y', 55); + text.setAttribute('text-anchor', 'middle'); + text.style.fontSize = '11px'; + text.style.fill = '#666'; + text.style.fontWeight = 'bold'; + text.textContent = year; + svg.appendChild(text); + } + + // Draw version timelines + versions.forEach((version, index) => { + const y = 90 + index * rowHeight; + const startX = dateToX(version.releaseDate); + const endX = version.eolDate ? dateToX(version.eolDate) : chartRight; + + // Background row for better visual separation + const rowBg = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); + rowBg.setAttribute('x', 0); + rowBg.setAttribute('y', y - 25); + rowBg.setAttribute('width', svgWidth); + rowBg.setAttribute('height', rowHeight); + rowBg.style.fill = index % 2 === 0 ? '#f8f9fa' : '#ffffff'; + rowBg.style.opacity = '0.5'; + svg.appendChild(rowBg); + + // Version label (left-aligned, closer to chart) + const label = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + label.setAttribute('x', 10); + label.setAttribute('y', y + 5); + label.setAttribute('text-anchor', 'start'); + label.style.fontWeight = 'bold'; + label.style.fontSize = '13px'; + label.textContent = version.version; + svg.appendChild(label); + + // Timeline bar + const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); + rect.setAttribute('x', startX); + rect.setAttribute('y', y - 10); + rect.setAttribute('width', endX - startX); + rect.setAttribute('height', 20); + rect.style.fill = '#dc382d'; + rect.style.stroke = '#b8312a'; + rect.style.strokeWidth = '1'; + svg.appendChild(rect); + + // Release date marker and connecting line + const releaseMarker = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); + releaseMarker.setAttribute('cx', startX); + releaseMarker.setAttribute('cy', y); + releaseMarker.setAttribute('r', 4); + releaseMarker.style.fill = '#333'; + svg.appendChild(releaseMarker); + + // EOL marker (no connecting lines) + if (version.eolDate) { + const eolMarker = document.createElementNS('http://www.w3.org/2000/svg', 'line'); + eolMarker.setAttribute('x1', endX); + eolMarker.setAttribute('y1', y - 12); + eolMarker.setAttribute('x2', endX); + eolMarker.setAttribute('y2', y + 12); + eolMarker.style.stroke = '#333'; + eolMarker.style.strokeWidth = '3'; + svg.appendChild(eolMarker); + } + + // Date labels with closer positioning + const releaseText = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + releaseText.setAttribute('x', startX); + releaseText.setAttribute('y', y + 25); + releaseText.setAttribute('text-anchor', 'middle'); + releaseText.style.fontSize = '10px'; + releaseText.style.fill = '#333'; + releaseText.style.fontWeight = 'bold'; + releaseText.textContent = version.release; + svg.appendChild(releaseText); + + // Always show EOL text + if (version.eol === 'TBD') { + // Show TBD at the end of the bar + const tbdText = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + tbdText.setAttribute('x', endX); + tbdText.setAttribute('y', y + 25); + tbdText.setAttribute('text-anchor', 'middle'); + tbdText.style.fontSize = '10px'; + tbdText.style.fill = '#333'; + tbdText.style.fontWeight = 'bold'; + tbdText.textContent = 'TBD'; + svg.appendChild(tbdText); + } else if (version.eol) { + const eolText = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + eolText.setAttribute('x', endX); + eolText.setAttribute('y', y + 25); + eolText.setAttribute('text-anchor', 'middle'); + eolText.style.fontSize = '10px'; + eolText.style.fill = '#333'; + eolText.style.fontWeight = 'bold'; + eolText.textContent = version.eol; + svg.appendChild(eolText); + } + }); + + // Replace fallback content + const fallback = container.querySelector('.timeline-fallback'); + if (fallback) { + container.removeChild(fallback); + } + container.appendChild(svg); + } + + document.addEventListener('DOMContentLoaded', function() { + const sources = document.querySelectorAll('pre.timeline-source'); + + sources.forEach(pre => { + const title = pre.getAttribute('data-timeline-title') || 'Timeline'; + const yamlText = pre.textContent; + const versions = parseTimelineData(yamlText); + + const container = pre.parentNode; + renderTimeline(container, versions, title); + }); + }); +})(); From 1bf203467dd9e8f24b2498b71512d45802e7930d Mon Sep 17 00:00:00 2001 From: Rachel Elledge Date: Thu, 11 Dec 2025 15:40:59 -0600 Subject: [PATCH 2/3] DOC-6012 RS: Clarified existing product lifecycle content refers to cluster version not DB version --- content/embeds/rs-upgrade-paths.md | 2 -- .../installing-upgrading/product-lifecycle.md | 4 +++- .../upgrading/upgrade-cluster.md | 2 ++ .../installing-upgrading/product-lifecycle.md | 4 +++- .../upgrading/upgrade-cluster.md | 2 ++ .../installing-upgrading/product-lifecycle.md | 4 +++- .../upgrading/upgrade-cluster.md | 2 ++ .../installing-upgrading/product-lifecycle.md | 20 ++++++++++++------- .../upgrading/upgrade-cluster.md | 2 ++ 9 files changed, 30 insertions(+), 12 deletions(-) diff --git a/content/embeds/rs-upgrade-paths.md b/content/embeds/rs-upgrade-paths.md index 120cc05aca..ad70dd0f14 100644 --- a/content/embeds/rs-upgrade-paths.md +++ b/content/embeds/rs-upgrade-paths.md @@ -1,5 +1,3 @@ -## Supported upgrade paths - Supported – You can upgrade directly from the current Redis Software cluster version. :x: Not supported – You cannot upgrade directly from the current Redis Software cluster version. You must first upgrade to a supported intermediate version. diff --git a/content/operate/rs/7.22/installing-upgrading/product-lifecycle.md b/content/operate/rs/7.22/installing-upgrading/product-lifecycle.md index 644f4d1a5d..ef375b6f46 100644 --- a/content/operate/rs/7.22/installing-upgrading/product-lifecycle.md +++ b/content/operate/rs/7.22/installing-upgrading/product-lifecycle.md @@ -11,7 +11,7 @@ weight: 100 tocEmbedHeaders: true url: '/operate/rs/7.22/installing-upgrading/product-lifecycle/' --- -The Redis Enterprise Software product lifecycle fully reflects the [subscription agreement](https://redis.com/software-subscription-agreement). +The Redis Enterprise Software product lifecycle fully reflects the [subscription agreement](https://redis.io/legal/software-agreement/). However, for any discrepancy between the two policies, the subscription agreement prevails. Redis Enterprise modules follow the [modules lifecycle]({{< relref "/operate/oss_and_stack/stack-with-enterprise/modules-lifecycle" >}}). @@ -52,6 +52,8 @@ This update to the EOL policy allows a lead time of at least 24 months to upgrad | 5.4 – December 2018 | December 31, 2020 | | 5.2 – June 2018 | December 31, 2019 | +## Supported cluster version upgrade paths + {{}} For detailed upgrade instructions, see [Upgrade a Redis Enterprise Software cluster]({{}}). diff --git a/content/operate/rs/7.22/installing-upgrading/upgrading/upgrade-cluster.md b/content/operate/rs/7.22/installing-upgrading/upgrading/upgrade-cluster.md index 5540f1ef40..33901625a8 100644 --- a/content/operate/rs/7.22/installing-upgrading/upgrading/upgrade-cluster.md +++ b/content/operate/rs/7.22/installing-upgrading/upgrading/upgrade-cluster.md @@ -21,6 +21,8 @@ To upgrade a cluster's Redis Software version, use one of the following methods: - [Rolling upgrade](#rolling-upgrade) - Minimize downtime by adding new nodes with an updated Redis Software version to the cluster, one at a time, while keeping the rest of the cluster operational. This method is recommended for production environments that require continuous availability. +## Supported upgrade paths + {{}} See the [Redis Enterprise Software product lifecycle]({{}}) for more information about release numbers and the end-of-life schedule. diff --git a/content/operate/rs/7.4/installing-upgrading/product-lifecycle.md b/content/operate/rs/7.4/installing-upgrading/product-lifecycle.md index b794307c8c..f8245e3ce2 100644 --- a/content/operate/rs/7.4/installing-upgrading/product-lifecycle.md +++ b/content/operate/rs/7.4/installing-upgrading/product-lifecycle.md @@ -11,7 +11,7 @@ weight: 100 tocEmbedHeaders: true url: '/operate/rs/7.4/installing-upgrading/product-lifecycle/' --- -The Redis Enterprise Software product lifecycle fully reflects the [subscription agreement](https://redis.com/software-subscription-agreement). +The Redis Enterprise Software product lifecycle fully reflects the [subscription agreement](https://redis.io/legal/software-agreement/). However, for any discrepancy between the two policies, the subscription agreement prevails. Redis Enterprise modules follow the [modules lifecycle]({{< relref "/operate/oss_and_stack/stack-with-enterprise/modules-lifecycle" >}}). @@ -50,6 +50,8 @@ This update to the EOL policy allows a lead time of at least 24 months to upgrad | 5.4 – December 2018 | December 31, 2020 | | 5.2 – June 2018 | December 31, 2019 | +## Supported cluster version upgrade paths + {{}} For detailed upgrade instructions, see [Upgrade a Redis Enterprise Software cluster]({{}}). diff --git a/content/operate/rs/7.4/installing-upgrading/upgrading/upgrade-cluster.md b/content/operate/rs/7.4/installing-upgrading/upgrading/upgrade-cluster.md index d9d736e9e8..6415a41b83 100644 --- a/content/operate/rs/7.4/installing-upgrading/upgrading/upgrade-cluster.md +++ b/content/operate/rs/7.4/installing-upgrading/upgrading/upgrade-cluster.md @@ -13,6 +13,8 @@ tocEmbedHeaders: true url: '/operate/rs/7.4/installing-upgrading/upgrading/upgrade-cluster/' --- +## Supported upgrade paths + {{}} See the [Redis Enterprise Software product lifecycle]({{}}) for more information about release numbers and the end-of-life schedule. diff --git a/content/operate/rs/7.8/installing-upgrading/product-lifecycle.md b/content/operate/rs/7.8/installing-upgrading/product-lifecycle.md index 9078c78baf..222d20b427 100644 --- a/content/operate/rs/7.8/installing-upgrading/product-lifecycle.md +++ b/content/operate/rs/7.8/installing-upgrading/product-lifecycle.md @@ -11,7 +11,7 @@ weight: 100 tocEmbedHeaders: true url: '/operate/rs/7.8/installing-upgrading/product-lifecycle/' --- -The Redis Enterprise Software product lifecycle fully reflects the [subscription agreement](https://redis.com/software-subscription-agreement). +The Redis Enterprise Software product lifecycle fully reflects the [subscription agreement](https://redis.io/legal/software-agreement/). However, for any discrepancy between the two policies, the subscription agreement prevails. Redis Enterprise modules follow the [modules lifecycle]({{< relref "/operate/oss_and_stack/stack-with-enterprise/modules-lifecycle" >}}). @@ -51,6 +51,8 @@ This update to the EOL policy allows a lead time of at least 24 months to upgrad | 5.4 – December 2018 | December 31, 2020 | | 5.2 – June 2018 | December 31, 2019 | +## Supported cluster version upgrade paths + {{}} For detailed upgrade instructions, see [Upgrade a Redis Enterprise Software cluster]({{}}). diff --git a/content/operate/rs/7.8/installing-upgrading/upgrading/upgrade-cluster.md b/content/operate/rs/7.8/installing-upgrading/upgrading/upgrade-cluster.md index dcc0b6c3bf..170e69eafd 100644 --- a/content/operate/rs/7.8/installing-upgrading/upgrading/upgrade-cluster.md +++ b/content/operate/rs/7.8/installing-upgrading/upgrading/upgrade-cluster.md @@ -21,6 +21,8 @@ To upgrade a cluster's Redis Software version, use one of the following methods: - [Rolling upgrade](#rolling-upgrade) - Minimize downtime by adding new nodes with an updated Redis Software version to the cluster, one at a time, while keeping the rest of the cluster operational. This method is recommended for production environments that require continuous availability. +## Supported upgrade paths + {{}} See the [Redis Enterprise Software product lifecycle]({{}}) for more information about release numbers and the end-of-life schedule. diff --git a/content/operate/rs/installing-upgrading/product-lifecycle.md b/content/operate/rs/installing-upgrading/product-lifecycle.md index 8b1b3e8b8d..5eae181739 100644 --- a/content/operate/rs/installing-upgrading/product-lifecycle.md +++ b/content/operate/rs/installing-upgrading/product-lifecycle.md @@ -5,19 +5,23 @@ categories: - docs - operate - rs -description: The product lifecycle of Redis Enterprise Software. +description: The product lifecycle of Redis Enterprise Software cluster versions and bundled Redis database versions. linkTitle: Product lifecycle weight: 100 tocEmbedHeaders: true --- -The Redis Enterprise Software product lifecycle fully reflects the [subscription agreement](https://redis.com/software-subscription-agreement). +The Redis Enterprise Software product lifecycle fully reflects the [subscription agreement](https://redis.io/legal/software-agreement/). However, for any discrepancy between the two policies, the subscription agreement prevails. Redis Enterprise modules follow the [modules lifecycle]({{< relref "/operate/oss_and_stack/stack-with-enterprise/modules-lifecycle" >}}). -## Release numbers +## Redis Enterprise Software cluster version lifecycle -Redis uses a four-place numbering scheme to designate released versions of its products. +This section describes the lifecycle policy for Redis Enterprise Software cluster versions. + +### Cluster version release numbers + +Redis Enterprise Software uses a four-place numbering scheme to designate released cluster versions. The format is "Major1.Major2.Minor-Build". - Major sections of the version number represents fundamental changes and additions in @@ -32,10 +36,10 @@ The format is "Major1.Major2.Minor-Build". Redis Enterprise Software typically gets two major releases every year but the product shipping cycles may vary. Maintenance releases, typically available on the last minor release of the current major1.major2 release are typically made available on a monthly cadence, although cycles may vary. -## End-of-life schedule {#endoflife-schedule} +### Cluster version end-of-life schedule {#endoflife-schedule} -For Redis Enterprise Software versions 6.2 and later, the end-of-life (EOL) for each major release occurs 24 months after the formal release of the subsequent major version. Monthly maintenance will be provided on the last minor release of the major1.major2 releases. -This update to the EOL policy allows a lead time of at least 24 months to upgrade to the new release after it is available. +For Redis Enterprise Software cluster versions 6.2 and later, the end-of-life (EOL) for each major release occurs 24 months after the formal release of the subsequent major version. Monthly maintenance will be provided on the last minor release of the major1.major2 releases. +This update to the EOL policy allows a lead time of at least 24 months to upgrade to the new cluster version after it is available. | Version - Release date | End of Life (EOL) | @@ -68,6 +72,8 @@ The following timeline chart visualizes the Redis Enterprise Software product li 5.2: June 2018 - Dec 31, 2019 ``` +### Supported cluster version upgrade paths + {{}} For detailed upgrade instructions, see [Upgrade a Redis Enterprise Software cluster]({{}}). diff --git a/content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md b/content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md index 101c09ff95..1b55bc594b 100644 --- a/content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md +++ b/content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md @@ -20,6 +20,8 @@ To upgrade a cluster's Redis Software version, use one of the following methods: - [Rolling upgrade](#rolling-upgrade) - Minimize downtime by adding new nodes with an updated Redis Software version to the cluster, one at a time, while keeping the rest of the cluster operational. This method is recommended for production environments that require continuous availability. +## Supported upgrade paths + {{}} See the [Redis Enterprise Software product lifecycle]({{}}) for more information about release numbers and the end-of-life schedule. From facdc430a6c783a30764e4f60ed6828e74e0f39e Mon Sep 17 00:00:00 2001 From: Rachel Elledge Date: Thu, 11 Dec 2025 16:55:47 -0600 Subject: [PATCH 3/3] DOC-6012 RS: Added Redis DB version management section to RS product lifecycle page --- .../installing-upgrading/product-lifecycle.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/content/operate/rs/installing-upgrading/product-lifecycle.md b/content/operate/rs/installing-upgrading/product-lifecycle.md index 5eae181739..ef3cc24622 100644 --- a/content/operate/rs/installing-upgrading/product-lifecycle.md +++ b/content/operate/rs/installing-upgrading/product-lifecycle.md @@ -81,3 +81,46 @@ For detailed upgrade instructions, see [Upgrade a Redis Enterprise Software clus {{}} Redis Enterprise for Kubernetes has its own support lifecycle, which accounts for the Kubernetes distribution lifecycle. For details, see [Supported Kubernetes distributions]({{}}). {{}} + +## Redis database version management + +The following sections describe the lifecycle policy for Redis database versions bundled with Redis Enterprise Software. + +### Redis database version structure + +Redis database versions use a **MAJOR.MINOR.PATCH** versioning scheme: + +- **Major versions**: Significant changes that may include breaking changes (for example, Redis 7 → Redis 8) + +- **Minor versions**: New features and improvements within a major version (for example, 8.2 → 8.4 → 8.6) + +- **Patch versions**: Bug fixes and security updates (for example, 8.2.1 → 8.2.2) + +### Redis database version support policy + +As of Redis Enterprise Software version 8.0.x, Redis database versions follow a long-term and short-term support model as follows: + +- **Long-term support**: The first minor release and last minor release of each major database version receive extended support of 5 years. + +- **Short-term support**: Minor versions between the first minor release and last minor release receive short-term support of 6 months. + +For example: + +| Redis DB version | Release type | Support type | +|------------------|--------------|--------------| +| 8.0 | Major release | Short-term | +| 8.2 | First minor release | Long-term | +| 8.x | Intermediate minor release | Short-term | +| 8.z | Last minor release | Long-term | + +Redis database versions have the following end-of-life dates: + +| Redis version | End-of-life (EOL) | +|---------------|-------------------| +| **Redis 8.2** | TBD | +| **Redis 8.0** | TBD | +| **Redis 7.4** | December 1, 2029 | +| **Redis 7.2** | December 1, 2029 | +| **Redis 6.2** | April 1, 2027 | + +For detailed database upgrade instructions, see [Upgrade a Redis Enterprise Software database]({{}}) or [Upgrade an Active-Active database]({{}}).