Skip to content

Plugin version list drops all 0.x.x releases (e.g. plugin-gcp 0.22.x never shown) #4955

Description

@fdelbrayelle

Problem

Plugin overview pages (e.g. https://kestra.io/plugins/plugin-gcp) only show versions ≥ 1.0.0. All pre-1.0.0 releases are silently filtered out. A user on Kestra 0.22 looking for the compatible plugin-gcp release would have no way to find it from the docs.

Root cause

Two issues compound each other:

1. src/pages/api/github-releases.ts lines 51–54 applies a hard major >= 1 filter after fetching GitHub releases:

.filter((v) => {
    const major = parseInt(v.version.split(".")[0])
    return !isNaN(major) && major >= 1
})

This drops every 0.x.x tag, including the entire pre-1.0 history of plugins like plugin-gcp (which had releases from v0.1.22 through v0.24.0).

2. The kestra-io_plugin-artifacts Elasticsearch index (confirmed via Kibana) has no entries for plugin-gcp, so the minCoreCompatibilityVersion enrichment in fetchPluginPageData.ts always returns null — for every version, old and new alike.

Expected behavior

All published, non-draft releases should appear in the version list, each annotated with its minCoreCompatibilityVersion. For example:

Plugin version Min Kestra version
v0.22.0 0.22.0
v0.21.2 0.21.0
v0.20.0 0.20.0

Fix

In github-releases.ts: remove the major >= 1 guard. The only remaining filter should be !release.draft.

In fetchPluginPageData.ts: add a fallback for pre-1.0.0 versions not present in the artifacts index. For pre-1.0.0 releases the versioning convention was strict — plugin 0.X.Y always required Kestra 0.X.* — so minCoreCompatibilityVersion can be derived:

if (!v.minCoreCompatibilityVersion) {
    const parts = v.version.split(".")
    if (parts.length >= 2 && parseInt(parts[0]) === 0) {
        v.minCoreCompatibilityVersion = `0.${parts[1]}.0`
    }
}

This covers e.g. plugin-gcp 0.22.4 → min Kestra 0.22.0.

If the version list becomes very long, the UI already has a "Previous Versions" collapsible section — no UI changes needed.

Note on api.kestra.io

Post-1.0.0 versions (where plugin and Kestra versions diverged, e.g. plugin-gcp 2.3.0 requires Kestra 1.3.13) cannot be derived from the version number alone. Those require the plugin-artifacts index to be populated for plugin-gcp — that is a separate data issue on api.kestra.io.

Metadata

Metadata

Assignees

Labels

area/docsIssues related to documentation, plugin examples, blueprints, and guidesarea/pluginPlugin-related issue or feature requestkind/cooldownGreat candidate for the cooldown periodkind/websiteWebsite-related change

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions