From cb6a07d87d68bbaf0d6dce092d65feec4692c472 Mon Sep 17 00:00:00 2001 From: Ivan Despot <66276597+g-despot@users.noreply.github.com> Date: Thu, 2 Jul 2026 11:00:25 +0200 Subject: [PATCH 1/4] docs(release): roll out Weaviate 1.38 - release-history.md: add the 1.38.x compatibility row (first release 2026-06-05, Python client 4.22.x; other clients to be filled in), and move 1.33.x down into the older-releases table. - release-notes/index.md: add the v1.38 quick-link card. - WeaviateConfigurator: auto-pull the weaviate_version dropdown's latest option from versions-config.json (the same source as ||site.weaviate_version||) and select it by default, so it tracks the latest patch instead of a hardcoded value; the older versions remain selectable below. - versions-config.json: bump the local python client default to 4.22.0. --- _includes/release-history.md | 3 +- docs/weaviate/release-notes/index.md | 10 +++--- src/components/WeaviateConfigurator/index.jsx | 32 ++++++++++++++++++- versions-config.json | 2 +- 4 files changed, 39 insertions(+), 8 deletions(-) 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..2ebbe5b00 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,33 @@ function WeaviateConfigurator() { // Load parameters useEffect(() => { try { - setParameters(parametersData.parameters); + // Auto-pull the latest patch version for the weaviate_version dropdown. + // versionsConfig.weaviate_version is written at prebuild with the latest + // patch (e.g. 1.38.2); locally it is the value in versions-config.json. + const latest = versionsConfig.weaviate_version; + const autoVersionOption = { + name: `v${latest}`, + displayName: `v${latest}`, + description: `See release notes at https://github.com/weaviate/weaviate/releases/tag/v${latest}`, + }; + + const params = parametersData.parameters.map((param) => { + if (param.name !== 'weaviate_version') return param; + // Prepend the auto option as the first (default) choice, dropping any + // static option that duplicates it, and keep the older static versions + // below so they remain selectable. + const olderOptions = (param.options || []).filter( + (opt) => opt.name !== autoVersionOption.name, + ); + return { ...param, options: [autoVersionOption, ...olderOptions] }; + }); + + setParameters(params); + // Default the selected version to the auto-pulled latest patch. + setSelections((prev) => ({ + ...prev, + weaviate_version: autoVersionOption.name, + })); setLoading(false); } catch (err) { setError('Failed to load parameters'); diff --git a/versions-config.json b/versions-config.json index 1c3ba971e..6ca37d693 100644 --- a/versions-config.json +++ b/versions-config.json @@ -6,7 +6,7 @@ "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", From b192abd38d33d734263de83a69d214c4f68e648f Mon Sep 17 00:00:00 2001 From: Ivan Despot <66276597+g-despot@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:57:36 +0200 Subject: [PATCH 2/4] docs(configurator): list the latest patch of the supported 3 minors Auto-derive the latest patch of the three most recent Weaviate minors (e.g. 1.38.2 / 1.37.11 / 1.36.19) for the version dropdown, instead of only the single latest patch. - update-config-versions.js: add getRecentMinorVersions (via a shared fetchReleaseVersions helper) and write weaviate_recent_versions to the config at build; getRepoVersion is unchanged. - versions-config.json: add the weaviate_recent_versions default. - WeaviateConfigurator: build the version dropdown from that array, with the newest selected by default; falls back to the single weaviate_version if the array is absent. --- _build_scripts/update-config-versions.js | 53 +++++++++++++++---- src/components/WeaviateConfigurator/index.jsx | 37 ++++++------- versions-config.json | 1 + 3 files changed, 62 insertions(+), 29 deletions(-) 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/src/components/WeaviateConfigurator/index.jsx b/src/components/WeaviateConfigurator/index.jsx index 2ebbe5b00..4a689865c 100644 --- a/src/components/WeaviateConfigurator/index.jsx +++ b/src/components/WeaviateConfigurator/index.jsx @@ -171,32 +171,33 @@ function WeaviateConfigurator() { // Load parameters useEffect(() => { try { - // Auto-pull the latest patch version for the weaviate_version dropdown. - // versionsConfig.weaviate_version is written at prebuild with the latest - // patch (e.g. 1.38.2); locally it is the value in versions-config.json. - const latest = versionsConfig.weaviate_version; - const autoVersionOption = { - name: `v${latest}`, - displayName: `v${latest}`, - description: `See release notes at https://github.com/weaviate/weaviate/releases/tag/v${latest}`, - }; + // Auto-pull the weaviate_version dropdown: the latest patch of each 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. Fall + // back to the single latest patch if the array is ever missing. + const recent = + Array.isArray(versionsConfig.weaviate_recent_versions) && + versionsConfig.weaviate_recent_versions.length + ? versionsConfig.weaviate_recent_versions + : [versionsConfig.weaviate_version]; + + const autoVersionOptions = recent.map((v) => ({ + name: `v${v}`, + displayName: `v${v}`, + description: `See release notes at https://github.com/weaviate/weaviate/releases/tag/v${v}`, + })); const params = parametersData.parameters.map((param) => { if (param.name !== 'weaviate_version') return param; - // Prepend the auto option as the first (default) choice, dropping any - // static option that duplicates it, and keep the older static versions - // below so they remain selectable. - const olderOptions = (param.options || []).filter( - (opt) => opt.name !== autoVersionOption.name, - ); - return { ...param, options: [autoVersionOption, ...olderOptions] }; + // The 3 auto versions REPLACE the static list — they are the list now. + return { ...param, options: autoVersionOptions }; }); setParameters(params); - // Default the selected version to the auto-pulled latest patch. + // Default the selected version to the newest (first) auto option. setSelections((prev) => ({ ...prev, - weaviate_version: autoVersionOption.name, + weaviate_version: `v${recent[0]}`, })); setLoading(false); } catch (err) { diff --git a/versions-config.json b/versions-config.json index 6ca37d693..aab6ff86e 100644 --- a/versions-config.json +++ b/versions-config.json @@ -2,6 +2,7 @@ "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_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", From b12b0218f4f2c4b26bfb1ecebd4855d64109a526 Mon Sep 17 00:00:00 2001 From: Ivan Despot <66276597+g-despot@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:16:42 +0200 Subject: [PATCH 3/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- versions-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions-config.json b/versions-config.json index aab6ff86e..6ea2e2907 100644 --- a/versions-config.json +++ b/versions-config.json @@ -1,7 +1,7 @@ { "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", From c5c1084cbe004caf50714ebf7e9254d00408f68e Mon Sep 17 00:00:00 2001 From: Ivan Despot <66276597+g-despot@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:36:04 +0200 Subject: [PATCH 4/4] docs(configurator): use the static version list only as a fallback Make the auto-fetched weaviate_recent_versions the primary source for the version dropdown and parameters.json's static options the fallback (used only when the fetched array is absent), instead of replacing them. The options and the default selection resolve from the same source so they stay in sync. --- src/components/WeaviateConfigurator/index.jsx | 51 +++++++++++-------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/src/components/WeaviateConfigurator/index.jsx b/src/components/WeaviateConfigurator/index.jsx index 4a689865c..ca3851325 100644 --- a/src/components/WeaviateConfigurator/index.jsx +++ b/src/components/WeaviateConfigurator/index.jsx @@ -171,33 +171,40 @@ function WeaviateConfigurator() { // Load parameters useEffect(() => { try { - // Auto-pull the weaviate_version dropdown: the latest patch of each 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. Fall - // back to the single latest patch if the array is ever missing. - const recent = - Array.isArray(versionsConfig.weaviate_recent_versions) && - versionsConfig.weaviate_recent_versions.length - ? versionsConfig.weaviate_recent_versions - : [versionsConfig.weaviate_version]; - - const autoVersionOptions = recent.map((v) => ({ - name: `v${v}`, - displayName: `v${v}`, - description: `See release notes at https://github.com/weaviate/weaviate/releases/tag/v${v}`, - })); + // 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) => { - if (param.name !== 'weaviate_version') return param; - // The 3 auto versions REPLACE the static list — they are the list now. - return { ...param, options: autoVersionOptions }; - }); + const params = parametersData.parameters.map((param) => + param.name === 'weaviate_version' + ? { ...param, options: versionOptions } + : param, + ); setParameters(params); - // Default the selected version to the newest (first) auto option. + // Default the selected version to the first of the resolved options. setSelections((prev) => ({ ...prev, - weaviate_version: `v${recent[0]}`, + weaviate_version: versionOptions[0]?.name, })); setLoading(false); } catch (err) {