diff --git a/templates/download.html b/templates/download.html
index cb5b97bc..c8615b95 100644
--- a/templates/download.html
+++ b/templates/download.html
@@ -1,4 +1,5 @@
{% extends "right-aside.html" %}
+{% import "macros/release.html" as release_macros %}
{% block subhead_content%}
Download Latest
@@ -31,7 +32,7 @@ Download Latest
Version {{major}}.x.x
-{% include "includes/release.html" %}
+{{ release_macros::release_info(date= most_recent_release_page[0].date, release= most_recent_release_page[0].extra ) }}
Latest supported version of past releases
@@ -42,7 +43,7 @@ Latest supported version of past releases
{% set_global major = older_major %}
{% set release = older_release.extra %}
Version {{major}}.x.x
- {% include "includes/release.html" %}
+ {{ release_macros::release_info(date= older_release.date, release= older_release.extra ) }}
{% endif %}
{% endfor %}
diff --git a/templates/index.html b/templates/index.html
index e0972bc2..21b4c774 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -1,4 +1,5 @@
{%- extends "default.html" -%}
+{% import "macros/release.html" as release_macros %}
{%- block content -%}
{% if section.extra and section.extra.hero %}
@@ -29,15 +30,13 @@ {{ heading }}
{% endfor %}
{% set most_recent_release_page = active_releases | slice(end= 1) %}
- {% set release_date = most_recent_release_page[0].date %}
- {% set release = most_recent_release_page[0].extra %}
- {% set split_ver = release.tag | split(pat=".")%}
+ {% set split_ver = most_recent_release_page[0].extra.tag | split(pat=".")%}
{% set_global major = split_ver | nth(n= 0) %}
Version {{major}}.x.x
- {% include "includes/release.html" %}
+ {{ release_macros::release_info(date= most_recent_release_page[0].date, release= most_recent_release_page[0].extra ) }}
Latest supported version of past releases
@@ -48,9 +47,8 @@ Latest supported version of past releases
{% set older_major = older_split_ver | nth(n= 0) %}
{% if older_major != major %}
{% set_global major = older_major %}
- {% set release = older_release.extra %}
Version {{major}}.x.x
- {% include "includes/release.html" %}
+ {{ release_macros::release_info(date= older_release.date, release= older_release.extra ) }}
{% endif %}
{% endfor %}
diff --git a/templates/includes/release.html b/templates/macros/release.html
similarity index 91%
rename from templates/includes/release.html
rename to templates/macros/release.html
index aa26546f..ffa389cb 100644
--- a/templates/includes/release.html
+++ b/templates/macros/release.html
@@ -1,4 +1,5 @@
-Release Date: {{ release_date | date(format="%Y-%m-%d") }}
+{% macro release_info(date, release) %}
+Release Date: {{ date| date(format="%Y-%m-%d") }}
GitHub Release: {{release.tag}}
@@ -39,3 +40,6 @@ Binary Artifacts
{% endfor %}
{% endfor %}
{% endif %}
+
+{% endmacro release_info %}
+
diff --git a/templates/release-page.html b/templates/release-page.html
index 5467faf6..3a0f9b1f 100644
--- a/templates/release-page.html
+++ b/templates/release-page.html
@@ -1,11 +1,103 @@
{% extends "right-aside.html" %}
+{% import "macros/release.html" as release_macros %}
{% block subhead_content%}
Download Valkey {{page.title}}
{% endblock subhead_content%}
+
{% block main_content %}
-{% set release = page.extra %}
-{% set release_date = page.date %}
+{% set page_ver_parts = page.extra.tag | split(pat=".") %}
+{% set page_major = page_ver_parts.0 %}
+{% set page_major_number = page_major | int %}
+{% set page_minor = page_ver_parts.1 %}
+{% set page_patch = page_ver_parts.2 %}
+{% set this_minor_line = [] %}
+{% set this_major_line = [] %}
+{% set section_file = page.ancestors.1 %}
+{% set section = get_section(path= section_file) %}
+{% set sorted_section_pages = section.pages | sort(attribute="extra.tag") %}
+{% set highest_major_version = 0 %}
+
+{% for page in sorted_section_pages %}
+ {% set this_version_parts = page.extra.tag | split(pat=".") %}
+ {% set this_version_major = this_version_parts.0 %}
+ {% set this_version_major_num = this_version_parts.0 | int %}
+ {% set this_version_minor = this_version_parts.1 %}
+ {% set this_version_patch = this_version_parts.2 %}
+ {% set this_version_rc = this_version_patch | split(pat="-") | length %}
+
+ {% set ver = [ page.date, page.extra.tag, this_version_major, this_version_minor, this_version_patch, page.slug] %}
+ {% if (page_major == this_version_major) and (page_minor == this_version_minor) %}
+ {% set_global this_minor_line = this_minor_line | concat(with= [ ver ] ) %}
+ {% endif %}
+ {% if (page_major == this_version_major) %}
+ {% set_global this_major_line = this_major_line | concat(with= [ ver ] ) %}
+ {% endif %}
+ {% if (highest_major_version <= this_version_major_num) and (this_version_rc == 1) %}
+ {% set_global highest_major_version = this_version_major_num %}
+ {% set_global latest_major = ver %}
+ {% endif %}
+{% endfor %}
+
+{% set latest_patch = this_minor_line | sort(attribute="0") | last %}
+{% set latest_minor = this_major_line | sort(attribute="0") | last %}
+
+{% set new_patch = (latest_patch.3 == page_minor) and (latest_patch.4 != page_patch) %}
+{% set new_minor = (latest_minor.2 == page_major) and (latest_minor.3 != page_minor) %}
+{% set new_major = page_major_number != highest_major_version %}
+
+{% if new_patch or new_minor or new_major %}
+Available updates for {{page.extra.tag}}
+
+
+{%endif%}
+
+
+{{ release_macros::release_info(date= page.date, release= page.extra ) }}
+{#
+
+The `script` tag below facilitates a forward based on a URL hashtag. For example, as of writing:
+
+- `/download/releases/v8-0-0/#latest-patch` autoforwards to `/download/releases/v8-0-6/`
+- `/download/releases/v8-0-0/#latest-minor` autoforwards to `/download/releases/v8-1-5/`
+- `/download/releases/v8-0-0/#latest-major` autoforwards to `/download/releases/v9-0-1/`
+
+If there isn't a new patch/minor/major then it just becomes a noop when you add the respective hash to the URL
-{% include "includes/release.html" %}
+#}
+
{% endblock main_content %}
diff --git a/templates/release-section.html b/templates/release-section.html
index 61f95355..7bfab377 100644
--- a/templates/release-section.html
+++ b/templates/release-section.html
@@ -23,7 +23,7 @@ Valkey Releases
{% for line in release_lines_unique %}
{{ line }}.x
- {% for release in section.pages | reverse %}
+ {% for release in section.pages | sort(attribute="date") | reverse %}
{% set split_ver = release.extra.tag | split(pat=".")%}
{% set major = split_ver | nth(n= 0) %}
{% set minor = split_ver | nth(n= 1) %}