Skip to content

feat: Read supported versions from the Hub, including nightly - #923

Open
lfrancke wants to merge 5 commits into
mainfrom
feat/hub-versions-upcoming
Open

feat: Read supported versions from the Hub, including nightly#923
lfrancke wants to merge 5 commits into
mainfrom
feat/hub-versions-upcoming

Conversation

@lfrancke

@lfrancke lfrancke commented Aug 13, 2026

Copy link
Copy Markdown
Member

This changes the documentation to NOT need the supported-version partials to be maintained manually anymore.
At build time it connects to the Stackable Hub to get the versions and writes the partials itself.

For unreleased versions (nightly) it says "not decided yet" (in nicer words).

See:

Note

When this is merged I'll go ahead and open PRs to delete the partial from every operator and then I assume some of the issue templates for version bumps need to be adjusted.

lfrancke and others added 2 commits August 13, 2026 23:27
Regenerates the supported-versions.adoc partials of the product
operators from the Stackable Hub API for released docs versions.
Nightly keeps the hand-maintained partials since the Hub only knows
released data. Responses are cached in the Antora cache dir; the build
never fails and never emits warnings when the Hub is unreachable (the
production playbook fails builds on warnings).

Parked until the Hub exposes the next (unreleased) SDP release: then
nightly can be synced from it as well and the operator repos only need
to be touched once (delete partials + adopt shared link bar).
Unparks the extension. It previously skipped nightly outright, on the grounds
that the Hub only knew released data, and was held back until a next SDP release
existed so the 16 operator repos would only need visiting once.

The Hub already models this properly, which removes the wait. Both
/api/v1/releases and /api/v1/components/{slug} return a shipped releases array
and a separate upcomingReleases array, and the Hub only exposes an upcoming
release once it is deliberately public -- provisional plans stay private. So
nightly reads upcomingReleases, and the window between a release shipping and the
next one being planned is a normal empty state rather than something to wait out.
It renders as an explicit "not been decided yet" line, and an unreleased list is
labelled provisional so a half-filled one cannot read as a commitment.

Also generates the partial when it is absent instead of only rewriting an
existing one. That is what lets the operator repos delete their copies: two
places include it, an operator's own index.adoc and this repo's platform-wide
operators:supported_versions.adoc, and both have to keep resolving. Since the
extension becomes load-bearing once those copies are gone, a missing partial with
no Hub data now gets a short unavailable note rather than nothing at all, so a
Hub outage still cannot break the build.

Moved from contentAggregated to contentClassified, because adding a file needs
the content catalog and partials are resolved later, when pages are converted.

Verified against a real only-dev build: 13 partials written, the undecided note
renders on both the operator page and the platform overview, addFile round-trips
retrievably in the catalog, and the released path still produces 26.7 as
3.2.2 / 3.1.6 (deprecated) / 3.0.6 (LTS) / 2.9.3 (deprecated), with an unknown
version correctly falling back to the repo copy.

Co-Authored-By: Claude <noreply@anthropic.com>
@netlify

netlify Bot commented Aug 13, 2026

Copy link
Copy Markdown

Deploy Preview for stackable-docs ready!

Name Link
🔨 Latest commit 919be8f
🔍 Latest deploy log https://app.netlify.com/projects/stackable-docs/deploys/6a8854cf19e73600083d9691
😎 Deploy Preview https://deploy-preview-923--stackable-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

lfrancke and others added 3 commits August 21, 2026 13:46
…quests

Three fixes from a review of this branch.

Emit a partial even when the Hub has no data for a version and the repo has no
copy to fall back on. renderPartial returned undefined for that case, and the
caller then wrote nothing, which is safe only while every operator repo still
ships a copy. Once the sweep deletes those, an include with no target fails the
build - the exact failure this extension exists to prevent. The caller knows
whether a copy exists, so it now says so.

Resolve any docs version against upcomingReleases as well, not just nightly. A
release branch is often cut and built before its SDP release ships, so those
docs were getting nothing while the Hub had provisional data for that very
release. 'Provisional' now follows from which array matched rather than from the
docs version being nightly, which also collapses the nightly-versus-released
split that caused both gaps.

Time out Hub requests. A Hub that accepts the connection and never answers is
not an error, so it stalled the build indefinitely instead of falling back to
the cache.

Co-Authored-By: Claude <noreply@anthropic.com>
Every operator index page introduces this partial with 'currently supports the
versions listed below', so a bare sentence where the list should be reads as a
contradiction: the page promises a list and then says nothing was decided.

All three no-data cases now render as NOTE admonitions that say outright there
is nothing to list, so the reader sees an aside explaining the absence rather
than a sentence arguing with the one above it. A real version list is unchanged
and still renders as a plain list.

Co-Authored-By: Claude <noreply@anthropic.com>
@lfrancke lfrancke self-assigned this Aug 21, 2026
@lfrancke
lfrancke marked this pull request as ready for review August 21, 2026 13:48
@lfrancke lfrancke moved this to Development: Waiting for Review in Stackable Engineering Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Development: Waiting for Review

Development

Successfully merging this pull request may close these issues.

1 participant