This is an automated email from the ASF dual-hosted git repository.
zike pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
The following commit(s) were added to refs/heads/main by this push:
new e4ab67299a1 Add GO/Nodejs/Python client release download table (#1070)
e4ab67299a1 is described below
commit e4ab67299a176d48be3a8db5e7c67c1c7a71925e
Author: Zike Yang <[email protected]>
AuthorDate: Mon Dec 29 18:31:43 2025 +0800
Add GO/Nodejs/Python client release download table (#1070)
## Motivation
The new ASF release policy requires that announcement emails include links
to the project’s download page on its website. This PR adds the Go client
release download table to the Pulsar download page:
https://pulsar.apache.org/download/
ASF release policy: https://apache.org/legal/release-policy#publication
> Projects SHALL provide one or more Project Download Pages as part of
their web site. All Project Download Pages must conform to Infra policy on
Release Download Pages.
For nodejs client, exclude some old releases that is not compatible with
the auto-generated release download table.
---
src/components/downloads.tsx | 65 +++++++++++++++++++++++++++++++++++++++++++-
src/pages/download.mdx | 15 ++++++++++
2 files changed, 79 insertions(+), 1 deletion(-)
diff --git a/src/components/downloads.tsx b/src/components/downloads.tsx
index 4b09ba588a5..c8e54c2c75f 100644
--- a/src/components/downloads.tsx
+++ b/src/components/downloads.tsx
@@ -2,6 +2,9 @@ import React from 'react'
import pulsarReleases from '@site/releases.json'
import connectors from '@site/data/connectors'
import cppReleases from '@site/data/release-cpp'
+import goReleases from '@site/data/release-go'
+import nodeReleases from '@site/data/release-node'
+import pythonReleases from '@site/data/release-python'
import pulsarManagerReleases from '@site/data/release-pulsar-manager'
import pulsarAdaptersReleases from '@site/data/release-pulsar-adapters'
import ReleaseTable from "@site/src/components/ReleaseTable";
@@ -176,7 +179,7 @@ export function CppReleasesDownloadTable(): JSX.Element {
.filter(version => Number(version.split('.')[0]) >= 3)
.map(version => {
const url =
`https://archive.apache.org/dist/pulsar/pulsar-client-cpp-${version}/`
- const tarPath = `${url}/apache-pulsar-client-cpp-${version}.tar.gz`
+ const tarPath = `${url}apache-pulsar-client-cpp-${version}.tar.gz`
return {
release: version,
link: url,
@@ -190,6 +193,66 @@ export function CppReleasesDownloadTable(): JSX.Element {
</div>
}
+export function GoReleasesDownloadTable(): JSX.Element {
+ const data = goReleases
+ .map(item => item.tagName.substring(1))
+ .map(version => {
+ const url =
`https://archive.apache.org/dist/pulsar/pulsar-client-go-${version}/`
+ const tarPath = `${url}apache-pulsar-client-go-${version}-src.tar.gz`
+ return {
+ release: version,
+ link: url,
+ linkText: `apache-pulsar-go-${version}`,
+ asc: `${tarPath}.asc`,
+ sha512: `${tarPath}.sha512`
+ }
+ })
+ return <div className="tailwind">
+ <ReleaseTable data={data}></ReleaseTable>
+ </div>
+}
+
+export function NodeReleasesDownloadTable(): JSX.Element {
+ const excludedVersions = ["1.0.0", "1.1.0", "1.2.0", "1.3.0", "1.3.1",
"1.4.0", "1.3.2", "1.6.2", "1.5.0", "1.4.1"];
+ const data = nodeReleases
+ .map(item => item.tagName.substring(1))
+ .filter(version => !excludedVersions.includes(version))
+ .map(version => {
+ const url =
`https://archive.apache.org/dist/pulsar/pulsar-client-node/pulsar-client-node-${version}/`
+ const tarPath = `${url}apache-pulsar-client-node-${version}.tar.gz`
+ return {
+ release: version,
+ link: url,
+ linkText: `apache-pulsar-node-${version}`,
+ asc: `${tarPath}.asc`,
+ sha512: `${tarPath}.sha512`
+ }
+ })
+ return <div className="tailwind">
+ <ReleaseTable data={data}></ReleaseTable>
+ </div>
+}
+
+export function PythonReleasesDownloadTable(): JSX.Element {
+ const data = pythonReleases
+ .map(item => item.tagName.substring(1))
+ .filter(version => Number(version.split('.')[0]) >= 3)
+ .map(version => {
+ const url =
`https://archive.apache.org/dist/pulsar/pulsar-client-python-${version}/`
+ const tarPath = `${url}pulsar-client-python-${version}.tar.gz`
+ return {
+ release: version,
+ link: url,
+ linkText: `apache-pulsar-python-${version}`,
+ asc: `${tarPath}.asc`,
+ sha512: `${tarPath}.sha512`
+ }
+ })
+ return <div className="tailwind">
+ <ReleaseTable data={data}></ReleaseTable>
+ </div>
+}
+
export function CurrentPulsarAdaptersDownloadTable(): JSX.Element {
const latestPulsarAdaptersVersion = pulsarAdaptersReleases[0]
const data = [
diff --git a/src/pages/download.mdx b/src/pages/download.mdx
index e1a1ce6f297..93d84130738 100644
--- a/src/pages/download.mdx
+++ b/src/pages/download.mdx
@@ -15,6 +15,9 @@ import {
CurrentPulsarShellDownloadTable,
ArchivedPulsarDownloadTable,
CppReleasesDownloadTable,
+ GoReleasesDownloadTable,
+ NodeReleasesDownloadTable,
+ PythonReleasesDownloadTable,
CurrentPulsarAdaptersDownloadTable,
ArchivedPulsarAdaptersDownloadTable,
CurrentPulsarManagerDownloadTable,
@@ -85,6 +88,18 @@ You must
[verify](https://www.apache.org/info/verification.html) the integrity o
<CppReleasesDownloadTable/>
+## Pulsar Go Client
+
+<GoReleasesDownloadTable/>
+
+## Pulsar Nodejs Client
+
+<NodeReleasesDownloadTable/>
+
+## Pulsar Python Client
+
+<PythonReleasesDownloadTable/>
+
## Pulsar Manager
[Release notes](pathname:///pulsar-manager-release-notes) for all Pulsar
Manager's versions.