diff --git a/_build_scripts/update-config-versions.js b/_build_scripts/update-config-versions.js
index 17f4e59c5..9ed48be36 100644
--- a/_build_scripts/update-config-versions.js
+++ b/_build_scripts/update-config-versions.js
@@ -2,11 +2,15 @@
const MAX_ATTEMPTS = 5;
-const getRepoVersion = async (repoName, attempt = 1) => {
+// Fetch a repo's releases as an ascending, semver-sorted array of version
+// strings (v-prefix stripped), excluding pre-releases and drafts. Shared by
+// getRepoVersion (single highest) and getRecentMinorVersions (top-N minors).
+// Keeps the original retry/backoff on failure.
+const fetchReleaseVersions = async (repoName, perPage = 100, attempt = 1) => {
try {
const fetch = (await import('node-fetch')).default;
- const response = await fetch( // fetch all release versions
- `https://api.github.com/repos/weaviate/${repoName}/releases`,
+ const response = await fetch( // fetch release versions
+ `https://api.github.com/repos/weaviate/${repoName}/releases?per_page=${perPage}`,
{
method: 'GET',
headers: {
@@ -38,32 +42,59 @@ const getRepoVersion = async (repoName, attempt = 1) => {
throw new Error(`No releases found for ${repoName}`);
}
- const highestVersion = releases
+ return releases
.filter(item => !item.prerelease) // remove pre-release items
.filter(item => !item.draft) // remove draft releases
.map(item => item.tag_name.replace('v', '')) // strip the v: "v1.26.1" => "1.26.1"
.sort((a, b) => // semver-aware sort – ascending
- a.localeCompare(b, undefined, { numeric: true, sensitivity: 'base' }))
- .pop() // the last item is the highest version (what we need)
-
- console.log(`${repoName} ${highestVersion}`);
- return highestVersion;
+ a.localeCompare(b, undefined, { numeric: true, sensitivity: 'base' }));
} catch (error) {
if (attempt < MAX_ATTEMPTS) {
const delay = 1000 * 2 ** (attempt - 1); // 1s, 2s
console.warn(`[${repoName}] attempt ${attempt} failed (${error.message}); retrying in ${delay}ms`);
await new Promise(resolve => setTimeout(resolve, delay));
- return getRepoVersion(repoName, attempt + 1);
+ return fetchReleaseVersions(repoName, perPage, attempt + 1);
}
- console.error(`Error fetching version for ${repoName} after ${MAX_ATTEMPTS} attempts:`, error);
+ console.error(`Error fetching versions for ${repoName} after ${MAX_ATTEMPTS} attempts:`, error);
throw error;
}
}
+// Highest non-prerelease version for a repo (behavior unchanged).
+const getRepoVersion = async (repoName) => {
+ const highestVersion = (await fetchReleaseVersions(repoName)).pop();
+ console.log(`${repoName} ${highestVersion}`);
+ return highestVersion;
+}
+
+// Latest patch of each of the most recent `count` MINOR versions, newest first,
+// e.g. ["1.38.2", "1.37.11", "1.36.19"]. Uses per_page=100 so the window spans
+// at least a few minors.
+const getRecentMinorVersions = async (repoName, count) => {
+ const versions = await fetchReleaseVersions(repoName, 100); // ascending
+ const latestByMinor = new Map();
+ for (const v of versions) {
+ const [major, minor] = v.split('.');
+ if (major === undefined || minor === undefined) continue;
+ const minorKey = `${major}.${minor}`;
+ const existing = latestByMinor.get(minorKey);
+ if (!existing ||
+ v.localeCompare(existing, undefined, { numeric: true, sensitivity: 'base' }) > 0) {
+ latestByMinor.set(minorKey, v); // keep the highest patch per minor
+ }
+ }
+ return Array.from(latestByMinor.keys())
+ .sort((a, b) => // minors newest first
+ b.localeCompare(a, undefined, { numeric: true, sensitivity: 'base' }))
+ .slice(0, count)
+ .map(minorKey => latestByMinor.get(minorKey));
+}
+
// Build time versions replace values set in versions-config.json
// versions-config.json values are used for yarn local yarn builds
const appendVersionsToConfig = async (config) => {
config.weaviate_version = await getRepoVersion('weaviate');
+ config.weaviate_recent_versions = await getRecentMinorVersions('weaviate', 3);
config.python_client_version = await getRepoVersion('weaviate-python-client');
config.go_client_version = await getRepoVersion('weaviate-go-client');
config.java_client_version = await getRepoVersion('weaviate-java-client');
diff --git a/_includes/release-history.md b/_includes/release-history.md
index 8d92c5670..16fa8dd3c 100644
--- a/_includes/release-history.md
+++ b/_includes/release-history.md
@@ -2,17 +2,18 @@ This table lists recent Weaviate Database versions and corresponding client libr
| Weaviate Database
([GitHub][cWeaviate]) | First
release date | Python
([GitHub][cPython]) | TypeScript/
JavaScript
([GitHub][cTypeScript]) | Go
([GitHub][cGo]) | Java
([GitHub][cJava]) | C#
([GitHub][cCSharp]) |
| :------------------------------------------------------------------ | :---------------------- | :-------------------------------------------------------------------------------: | :--------------------------------------------------------------------------: | :-------------------------------------------------------------------------: | :-----------------------------------------------------------------: | :-----------------------------------------------------------------------------: |
+| [1.38.x](https://github.com/weaviate/weaviate/releases/tag/v1.38.0) | 2026-06-05 | [4.22.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.22.0) | - | - | - | - |
| [1.37.x](https://github.com/weaviate/weaviate/releases/tag/v1.37.0) | 2026-04-16 | [4.21.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.21.0) | [3.13.x](https://github.com/weaviate/typescript-client/releases/tag/v3.13.0) | [5.7.3](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.7.3) | [6.2.0](https://github.com/weaviate/java-client/releases/tag/6.2.0) | N/A |
| [1.36.x](https://github.com/weaviate/weaviate/releases/tag/v1.36.0) | 2026-02-24 | [4.20.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.20.0) | [3.12.x](https://github.com/weaviate/typescript-client/releases/tag/v3.12.0) | [5.7.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.7.0) | [6.1.0](https://github.com/weaviate/java-client/releases/tag/6.1.0) | [1.0.1](https://github.com/weaviate/weaviate-dotnet-client/releases/tag/v1.0.1) |
| [1.35.x](https://github.com/weaviate/weaviate/releases/tag/v1.35.0) | 2025-12-17 | [4.19.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.19.0) | [3.11.x](https://github.com/weaviate/typescript-client/releases/tag/v3.11.0) | [5.6.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.6.0) | [6.0.0](https://github.com/weaviate/java-client/releases/tag/6.0.0) | [1.0.0](https://github.com/weaviate/weaviate-dotnet-client/releases/tag/v1.0.0) |
| [1.34.x](https://github.com/weaviate/weaviate/releases/tag/v1.34.0) | 2025-11-05 | [4.18.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.18.0) | [3.10.x](https://github.com/weaviate/typescript-client/releases/tag/v3.10.0) | [5.6.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.6.0) | [6.0.0](https://github.com/weaviate/java-client/releases/tag/6.0.0) | - |
-| [1.33.x](https://github.com/weaviate/weaviate/releases/tag/v1.33.0) | 2025-09-25 | [4.17.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.17.0) | [3.9.x](https://github.com/weaviate/typescript-client/releases/tag/v3.9.0) | [5.5.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.5.0) | [5.5.x](https://github.com/weaviate/java-client/releases/tag/5.5.0) | - |
Older releases
| Weaviate Database
([GitHub][cWeaviate]) | First
release date | Python
([GitHub][cPython]) | TypeScript/
JavaScript
([GitHub][cTypeScript]) | Go
([GitHub][cGo]) | Java
([GitHub][cJava]) |
| :------------------------------------------------------------------ | :---------------------- | :-------------------------------------------------------------------------------: | :------------------------------------------------------------------------: | :---------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------: |
+| [1.33.x](https://github.com/weaviate/weaviate/releases/tag/v1.33.0) | 2025-09-25 | [4.17.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.17.0) | [3.9.x](https://github.com/weaviate/typescript-client/releases/tag/v3.9.0) | [5.5.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.5.0) | [5.5.x](https://github.com/weaviate/java-client/releases/tag/5.5.0) |
| [1.32.x](https://github.com/weaviate/weaviate/releases/tag/v1.32.0) | 2025-07-14 | [4.16.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.16.0) | [3.8.x](https://github.com/weaviate/typescript-client/releases/tag/v3.8.0) | [5.3.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.3.0) | [5.4.x](https://github.com/weaviate/java-client/releases/tag/5.4.0) |
| [1.31.x](https://github.com/weaviate/weaviate/releases/tag/v1.31.0) | 2025-05-30 | [4.15.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.15.0) | [3.6.x](https://github.com/weaviate/typescript-client/releases/tag/v3.6.0) | [5.2.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.2.0) | [5.3.x](https://github.com/weaviate/java-client/releases/tag/5.3.0) |
| [1.30.x](https://github.com/weaviate/weaviate/releases/tag/v1.30.0) | 2025-04-03 | [4.12.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.12.0) | [3.5.x](https://github.com/weaviate/typescript-client/releases/tag/v3.5.0) | [5.1.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.1.0) | [5.2.x](https://github.com/weaviate/java-client/releases/tag/5.2.0) |
diff --git a/docs/weaviate/release-notes/index.md b/docs/weaviate/release-notes/index.md
index 8611c53f0..ca97aaac2 100644
--- a/docs/weaviate/release-notes/index.md
+++ b/docs/weaviate/release-notes/index.md
@@ -17,6 +17,11 @@ import QuickLinks from "/src/components/QuickLinks";
export const pythonCardsData = [
{
+title: "v1.38",
+link: "https://github.com/weaviate/weaviate/releases/tag/v1.38.0",
+icon: "fa fa-tags",
+},
+{
title: "v1.37",
link: "https://github.com/weaviate/weaviate/releases/tag/v1.37.0",
icon: "fa fa-tags",
@@ -36,11 +41,6 @@ title: "v1.34",
link: "https://weaviate.io/blog/weaviate-1-34-release",
icon: "fa fa-tags",
},
-{
-title: "v1.33",
-link: "https://weaviate.io/blog/weaviate-1-33-release",
-icon: "fa fa-tags",
-},
];
diff --git a/src/components/WeaviateConfigurator/index.jsx b/src/components/WeaviateConfigurator/index.jsx
index 70365fa55..ca3851325 100644
--- a/src/components/WeaviateConfigurator/index.jsx
+++ b/src/components/WeaviateConfigurator/index.jsx
@@ -16,6 +16,10 @@ import './styles.css';
// Import parameters
import parametersData from './parameters.json';
+// Auto-fetched latest patch versions (written at prebuild by
+// _build_scripts/update-config-versions.js; same source as ||site.weaviate_version||).
+import versionsConfig from '@site/versions-config.json';
+
// Accordion components
function AccordionItem({ title, summary, children, description }) {
return (
@@ -167,7 +171,41 @@ function WeaviateConfigurator() {
// Load parameters
useEffect(() => {
try {
- setParameters(parametersData.parameters);
+ // weaviate_version dropdown: the auto-fetched latest patches of the
+ // supported latest-3 MINORS (e.g. ["1.38.2","1.37.11","1.36.19"], written
+ // at prebuild by _build_scripts/update-config-versions.js) are PRIMARY;
+ // the static parameters.json options are the fallback if that array is
+ // ever missing/empty.
+ const auto = versionsConfig.weaviate_recent_versions;
+ const autoVersionOptions =
+ Array.isArray(auto) && auto.length
+ ? auto.map((v) => ({
+ name: `v${v}`,
+ displayName: `v${v}`,
+ description: `See release notes at https://github.com/weaviate/weaviate/releases/tag/v${v}`,
+ }))
+ : null;
+
+ // Resolve the version options ONCE so param.options and the default
+ // selection stay in sync (auto primary, static parameters.json fallback).
+ const staticVersionParam = parametersData.parameters.find(
+ (p) => p.name === 'weaviate_version',
+ );
+ const versionOptions =
+ autoVersionOptions ?? (staticVersionParam?.options || []);
+
+ const params = parametersData.parameters.map((param) =>
+ param.name === 'weaviate_version'
+ ? { ...param, options: versionOptions }
+ : param,
+ );
+
+ setParameters(params);
+ // Default the selected version to the first of the resolved options.
+ setSelections((prev) => ({
+ ...prev,
+ weaviate_version: versionOptions[0]?.name,
+ }));
setLoading(false);
} catch (err) {
setError('Failed to load parameters');
diff --git a/versions-config.json b/versions-config.json
index 1c3ba971e..6ea2e2907 100644
--- a/versions-config.json
+++ b/versions-config.json
@@ -1,12 +1,13 @@
{
"COMMENT1": "These values are used for yarn local yarn builds",
"COMMENT2": "Build time values are set in _build_scripts/update-config-versions.js",
- "weaviate_version": "1.38.0",
+ "weaviate_version": "1.38.2",
+ "weaviate_recent_versions": ["1.38.2", "1.37.11", "1.36.19"],
"helm_version": "17.8.1",
"weaviate_cli_version": "3.4.1",
"agents_python_version": "1.6.0",
"agents_typescript_version": "1.5.0",
- "python_client_version": "4.21.3",
+ "python_client_version": "4.22.0",
"go_client_version": "5.7.2",
"java_client_version": "6.2.0",
"typescript_client_version": "3.13.1",