Skip to content

Releases pages link and (optionally) forward to latest versions#446

Open
stockholmux wants to merge 5 commits intovalkey-io:mainfrom
stockholmux:latest-release-link
Open

Releases pages link and (optionally) forward to latest versions#446
stockholmux wants to merge 5 commits intovalkey-io:mainfrom
stockholmux:latest-release-link

Conversation

@stockholmux
Copy link
Copy Markdown
Member

Description

Release pages provide a stable URL to point to a version of the software. For example, /download/releases/v7-2-5/ will always have things like the GitHub tag, release date, and artifact links.

In the past, there has been situations where we've made a major release, found a bug, and did a fast-followed with a patch release to fix it. However, the blog post for that release still points to the release page for the original release, obscuring a bug fix. This has two issues:

  1. Release pages don't hint at a newer release being available.
  2. There isn't a way to link to a newer release in the same line (patch/minor) (e.g. [BUG] No way to link to a latest patch #428) or to the latest major release

This PR adds a few things around this problem:

Release pages have an Available updates section.

On each release page, there is section that advises about updates/upgrades, linking to the release pages for each.

Screenshot 2026-01-29 at 7 50 46 AM

The script only shows the relevant updates for each version. As an example, 7.2.11 doesn't show 8.x releases, only the latest major:

Screenshot 2026-01-29 at 7 53 46 AM

On pages which don't have any updates, the section isn't present.

URL hash and forwards

To directly fix #428, this PR adds an optional hash tag to the URL. If you add #latest_patch, #latest_minor or #latest_major to any release page (e.g. /download/releases/v7-2-5/) it will do a javascript forward to the respective latest version. For example:

  • /download/releases/v7-2-5/#latest_patch -> /download/releases/v7-2-11/
  • /download/releases/v8-0-0/#latest_minor -> /download/releases/v8-1-5/
  • /download/releases/v8-1-5/#latest_major -> /download/releases/v9-0-1/

If there isn't new latest for the different hash tags, it's a noop: /download/releases/v9-0-1/#latest_patch does nothing. So, for release blogs, we can safely use URLs like download/releases/v9-0-0/#latest_patch and users will automatically get the latest patch version. No more obscured releases!

Release candidates are excluded from this logic.

Bug fixes

In writing this feature, I noticed a bug where the multiple releases fragments on the same page (such as on the homepage or /downloads/) misreported the release date for all releases as the first listed. 🤦‍♂️ This is a subtle bug because this often but not always the case.

I additionally tested what 10.0.0 would look like and discovered that, in some context 10.0.0 appeared in the wrong order. Now it's explicitly uses date sorting - the most recent & version numbers are used and 10.0.0 will come out on top.

Refactoring

I moved the release fragment from being a zola include to being a macro. This isolates the scope better to prevent the release date bug as above and actually makes the code a little cleaner.

Issues Resolved

#428

Check List

  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.

Signed-off-by: Kyle J. Davis <kyledvs@amazon.com>
Signed-off-by: Kyle J. Davis <kyledvs@amazon.com>
Signed-off-by: Kyle J. Davis <kyledvs@amazon.com>
Signed-off-by: Kyle J. Davis <kyledvs@amazon.com>
@stockholmux stockholmux requested a review from madolson as a code owner January 29, 2026 15:16
Copy link
Copy Markdown
Member

@madolson madolson left a comment

Choose a reason for hiding this comment

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

I should post this comment since I've just been staring at this.

Having a reference link that does just an update seems wrong. I was always assuming we would just have a fixed page for each major.minor version, that includes the links to all the old patch versions probably made more sense.

I don't know if I have a strong opinion though. I know we've also talked about having metadata about what were the flagship features in each release.

@stockholmux
Copy link
Copy Markdown
Member Author

I was always assuming we would just have a fixed page for each major.minor version, that includes the links to all the old patch versions probably made more sense.

That has existed for a long time. But this PR solves a slightly different problems:

  • a single page that points to a single version always needs to exist but there needs to be a hint when that version is no longer current
  • a single evergreen link sends users to the latest only

@madolson
Copy link
Copy Markdown
Member

madolson commented Apr 2, 2026

That has existed for a long time. But this PR solves a slightly different problems:

This is all versions. I was saying for a specific Major + Minor there would be a specific link to the latest information.

Like: /download/releases/v9-0-latest would link to the latest download. As opposed to a header link, it's a specific fixed link that either redirects or has the context of the latest.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] No way to link to a latest patch

2 participants