diff --git a/contribute/document-contribution.md b/contribute/document-contribution.md
index f99d410b0f06..cbe5d84fe22f 100644
--- a/contribute/document-contribution.md
+++ b/contribute/document-contribution.md
@@ -77,21 +77,23 @@ Docs for external command-line tools or bare scripts are updated **manually**:
| pulsar-daemon | [pulsar-daemon.md](https://github.com/apache/pulsar-site/blob/main/static/reference/next/pulsar-daemon/pulsar-daemon.md) |
| bookkeeper | [bookkeeper.md](https://github.com/apache/pulsar-site/blob/main/static/reference/next/bookkeeper/bookkeeper.md) |
-## Update client/function matrix
+## Update feature matrix
-[Pulsar Feature Matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914) outlines every feature supported by the Pulsar client and function.
+Pulsar feature matrix introduces the features supported by language-specific clients and functions. It includes:
+* [Client Feature Matrix](pathname:///client-feature-matrix)
+* [Function Feature Matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=328808194)
-:::note
+You need to update the feature matrix as soon as your related commits get merged. The workflow is illustrated as follows.
-* It's public and everyone has access to edit it. You can reach out to `dev@pulsar.apache.org` if you have problems in editing.
-* This matrix will be moved to the Pulsar website (instead of the spreadsheet) in the future.
+
-:::
+1. Submit your code and doc PRs.
+2. Get your PRs reviewed and merged.
+3. Update the feature matrix to flag your contribution.
-If you want to update the Pulsar Feature Matrix, follow the steps below.
+:::note
-1. Submit your code and doc PRs.
-2. Get your PR reviewed and merged.
-3. In the [Pulsar Feature Matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914), check the box in the corresponding cell with the links of PRs and doc site.
+* [Client Feature Matrix](pathname:///client-feature-matrix) is in the transition phase from the spreadsheet to the webpage. For how to update it, see [How to update data-driven pages](site-intro.md#how-to-update-data-driven-pages).
+* If you have problems in editing the spreadsheet of [Function Feature Matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=328808194), you can reach out to `dev@pulsar.apache.org`.
-
+:::
\ No newline at end of file
diff --git a/contribute/site-intro.md b/contribute/site-intro.md
index 7c1a3db22703..3e5567626a74 100644
--- a/contribute/site-intro.md
+++ b/contribute/site-intro.md
@@ -1,6 +1,6 @@
# Introduction
-The Pulsar site is built with [Docusaurus](http://docusaurus.io/) framework. You can find all technical details on [its docs](https://docusaurus.io/docs).
+The Pulsar site is built with [Docusaurus](http://docusaurus.io/) framework. You can find all the technical details on [its docs](https://docusaurus.io/docs).
Specifically, this chapter provides a [writing syntax](document-syntax.md) guide selecting knowledge for writing content of the site.
@@ -14,14 +14,15 @@ Docusaurus provides three kinds of pages out-of-the-box: [docs](https://docusaur
The Pulsar site pages are of:
-| Page | Type | Source |
-|--------------------------------------------|-----------|---------------------------------------------------------------------------------------------------|
-| [User docs](pathname:///docs) | docs |
- docs/
- versioned_docs/
- versioned_sidebars/
- sidebars.json
|
-| [Contribution guides](about.md) | docs | - contribute/
- sidebarsDevelopment.js
|
-| [Release notes](pathname:///release-notes) | docs | - release-notes/
- sidebarsReleaseNotes.js
|
-| [Security](pathname:///security) | docs | |
-| [Blogs](pathname:///blog) | blog | |
-| Other pages | JSX pages | |
+| Page | Type | Source |
+|------------------------------------------------------------|-----------|---------------------------------------------------------------------------------------------------|
+| [User docs](pathname:///docs) | docs | - docs/
- versioned_docs/
- versioned_sidebars/
- sidebars.json
|
+| [Contribution guides](about.md) | docs | - contribute/
- sidebarsDevelopment.js
|
+| [Release notes](pathname:///release-notes) | docs | - release-notes/
- sidebarsReleaseNotes.js
|
+| [Security](pathname:///security) | docs | |
+| [Blogs](pathname:///blog) | blog | |
+| [Client feature matrix](pathname:///client-feature-matrix) | docs | - client-feature-matrix/
- data/matrix.js
|
+| Other pages | JSX pages | |
Besides, the site serves multiple static pages generated outside the framework, including API docs, reference docs, and swagger files. You can find them under the `static` folder.
@@ -39,7 +40,7 @@ See the [previewing content](document-preview.md) guide for more details.
### docker-compose.yaml
-The `preview.sh` script use the Docusaurus dev server for testing, which is different from the real Apache Web Server based env that serves the site online.
+The `preview.sh` script uses the Docusaurus dev server for testing, which is different from the real Apache Web Server based env that serves the site online.
To emulate the server-side logics, like `.htaccess` rewrite rules, you can run:
@@ -74,7 +75,7 @@ If you're gonna to update the content, read the [update reference docs](document
If you're gonna to debug the reference generation process, read the [reference-doc-generator](https://github.com/apache/pulsar-site/tree/main/tools/pytools#reference-doc-generator) usage section and its source code.
-### How to update data driven pages?
+### How to update data-driven pages?
The following pages contain data-driven tables:
@@ -106,5 +107,8 @@ The following pages contain data-driven tables:
* [Team](pathname:///team)
* data/team.js
* src/pages/team.js
+* [Client feature matrix](pathname:///client-feature-matrix)
+ * data/matrix.js
+ * client-feature-matrix/index.mdx
Additionally, PMC members can generate the `team.js` file as @lhotari did in https://github.com/apache/pulsar-site/pull/387.
diff --git a/docs/client-libraries-cpp.md b/docs/client-libraries-cpp.md
index 7f583f235c4e..49a6d31fdd38 100644
--- a/docs/client-libraries-cpp.md
+++ b/docs/client-libraries-cpp.md
@@ -26,10 +26,10 @@ You can use a Pulsar C++ client to create Pulsar [producers](concepts-clients.md
- [Producer configurations](@pulsar:apidoc:cpp@/classpulsar_1_1_producer_configuration.html)
- [Consumer configurations](@pulsar:apidoc:cpp@/classpulsar_1_1_consumer_configuration.html)
- [Reader configurations](@pulsar:apidoc:cpp@/classpulsar_1_1_reader_configuration.html)
-- [Release notes](pathname:///release-notes/client-cpp)
+- [Release notes](/release-notes/client-cpp)
- [Code examples](https://github.com/apache/pulsar-client-cpp/tree/main/examples)
- [Supported schema types](https://github.com/apache/pulsar-client-cpp/blob/main/include/pulsar/Schema.h)
-- [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
+- [Client feature matrix](/client-feature-matrix/)
## Changes for 3.0.0 and later versions
diff --git a/docs/client-libraries-dotnet.md b/docs/client-libraries-dotnet.md
index f6e8bb367516..557920f7ad86 100644
--- a/docs/client-libraries-dotnet.md
+++ b/docs/client-libraries-dotnet.md
@@ -21,6 +21,6 @@ You can use the Pulsar C# client (DotPulsar) to create Pulsar [producers](concep
## Reference doc
-- [Release notes](pathname:///release-notes/client-cs)
+- [Release notes](/release-notes/client-cs)
- [DotPulsar documentation](https://github.com/apache/pulsar-dotpulsar/wiki)
-- [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
\ No newline at end of file
+- [Client feature matrix](/client-feature-matrix/)
\ No newline at end of file
diff --git a/docs/client-libraries-go.md b/docs/client-libraries-go.md
index 802c88a2377e..3481affe55cd 100644
--- a/docs/client-libraries-go.md
+++ b/docs/client-libraries-go.md
@@ -26,5 +26,5 @@ You can use a Pulsar [Go client](https://github.com/apache/pulsar-client-go) to
- [Producer configurations](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ProducerOptions)
- [Consumer configurations](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ConsumerOptions)
- [Reader configurations](https://pkg.go.dev/github.com/apache/pulsar-client-go/pulsar#ReaderOptions)
-- [Release notes](pathname:///release-notes/client-go)
-- [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
\ No newline at end of file
+- [Release notes](/release-notes/client-go)
+- [Client feature matrix](/client-feature-matrix/)
\ No newline at end of file
diff --git a/docs/client-libraries-java.md b/docs/client-libraries-java.md
index 549e018f1bd6..f536f5273b10 100644
--- a/docs/client-libraries-java.md
+++ b/docs/client-libraries-java.md
@@ -36,5 +36,5 @@ Package | Description | Maven Artifact
#### More reference
- [Java client configurations](pathname:///reference/#/@pulsar:version_reference@/client/)
-- [Release notes](pathname:///release-notes/client-java)
-- [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
\ No newline at end of file
+- [Release notes](/release-notes/client-java)
+- [Client feature matrix](/client-feature-matrix/)
\ No newline at end of file
diff --git a/docs/client-libraries-node.md b/docs/client-libraries-node.md
index 923ae85a639e..878dffae724d 100644
--- a/docs/client-libraries-node.md
+++ b/docs/client-libraries-node.md
@@ -22,6 +22,6 @@ You can use a Pulsar Node.js client to create Pulsar [producers](concepts-client
## Reference doc
- [Node.js client configurations](client-libraries-node-configs.md)
-- [Release notes](pathname://release-notes/client-node/)
-- [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
+- [Release notes](/release-notes/client-node)
+- [Client feature matrix](/client-feature-matrix/)
- [Type definitions](https://github.com/apache/pulsar-client-node/blob/master/index.d.ts) used in TypeScript (for 1.3.0 or later versions).
\ No newline at end of file
diff --git a/docs/client-libraries-python.md b/docs/client-libraries-python.md
index 4fc639e48d1b..70114ab8fe32 100644
--- a/docs/client-libraries-python.md
+++ b/docs/client-libraries-python.md
@@ -26,5 +26,5 @@ You can use a Pulsar Python client to create Pulsar [producers](concepts-clients
- [Producer configurations](@pulsar:apidoc:python@/pulsar.Client.html#create_producer)
- [Consumer configurations](@pulsar:apidoc:python@/pulsar.Client.html#subscribe)
- [Reader configurations](@pulsar:apidoc:python@/pulsar.Client.html#create_reader)
-- [Release notes](pathname:///release-notes/client-python)
-- [Client feature matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914)
\ No newline at end of file
+- [Release notes](/release-notes/client-python)
+- [Client feature matrix](/client-feature-matrix/)
\ No newline at end of file
diff --git a/docs/client-libraries-websocket.md b/docs/client-libraries-websocket.md
index 937cdec920c7..f02da082099f 100644
--- a/docs/client-libraries-websocket.md
+++ b/docs/client-libraries-websocket.md
@@ -6,7 +6,7 @@ sidebar_label: "WebSocket"
Pulsar [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) API provides a simple way to interact with Pulsar using languages that do not have an official [client library](client-libraries.md). You can use Pulsar WebSocket API with any WebSocket client library. See [Python and Node.js examples](#client-examples) for more details.
-Through WebSocket, you can publish and consume messages and use features available on the [Client Feature Matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914) page.
+Through WebSocket, you can publish and consume messages and use features available on the [Client Feature Matrix](/client-feature-matrix/) page.
## Run the WebSocket service
diff --git a/docs/client-libraries.md b/docs/client-libraries.md
index 13dcab809f0b..5e58164adabf 100644
--- a/docs/client-libraries.md
+++ b/docs/client-libraries.md
@@ -34,7 +34,7 @@ Pulsar supports the following language-agnostic client libraries:
## Feature matrix
-Pulsar client feature matrix for different languages is listed on [Pulsar Feature Matrix (Client and Function)](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=1784579914) page.
+The [Client Feature Matrix](/client-feature-matrix/) page provides an overview of the latest feature supportability on language-specific clients.
## Third-party clients
diff --git a/sidebars.json b/sidebars.json
index 4f539bdd3ae7..de1353c7a88d 100644
--- a/sidebars.json
+++ b/sidebars.json
@@ -219,7 +219,7 @@
},
"items": [
"deploy-aws",
- "deploy-ibm",
+ "deploy-ibm",
{
"type": "category",
"label": "Kubernetes",
@@ -268,9 +268,9 @@
"type": "category",
"label": "Observability",
"items": [
- "administration-stats",
- "reference-metrics",
- "deploy-monitoring"
+ "administration-stats",
+ "reference-metrics",
+ "deploy-monitoring"
]
},
{
@@ -315,6 +315,11 @@
"label": "Client Libraries",
"items": [
"client-libraries",
+ {
+ "type": "link",
+ "href": "/client-feature-matrix/",
+ "label": "Client Feature Matrix"
+ },
{
"type": "category",
"label": "Get started",
@@ -382,7 +387,7 @@
"client-libraries-node-setup",
"client-libraries-node-initialize",
"client-libraries-node-use",
- "client-libraries-node-configs"
+ "client-libraries-node-configs"
]
},
{