This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 0866c3a6a73 [cleanup][doc] Remove resources moved to pulsar-site
(#18267)
0866c3a6a73 is described below
commit 0866c3a6a734b39402a6bc8349bab13edab00488
Author: tison <[email protected]>
AuthorDate: Mon Oct 31 19:03:30 2022 +0800
[cleanup][doc] Remove resources moved to pulsar-site (#18267)
---
site2/README.md | 39 +-
site2/doc-guides/assets/contribution-1.png | Bin 71797 -> 0 bytes
site2/doc-guides/assets/contribution-2.png | Bin 52487 -> 0 bytes
site2/doc-guides/assets/contribution-3.png | Bin 64610 -> 0 bytes
site2/doc-guides/assets/naming-1.png | Bin 117563 -> 0 bytes
site2/doc-guides/assets/preview-1.png | Bin 139893 -> 0 bytes
site2/doc-guides/assets/preview-2.png | Bin 126997 -> 0 bytes
site2/doc-guides/assets/syntax-1.png | Bin 160167 -> 0 bytes
site2/doc-guides/assets/syntax-10.png | Bin 149702 -> 0 bytes
site2/doc-guides/assets/syntax-11.png | Bin 106124 -> 0 bytes
site2/doc-guides/assets/syntax-12.png | Bin 44427 -> 0 bytes
site2/doc-guides/assets/syntax-13.png | Bin 172770 -> 0 bytes
site2/doc-guides/assets/syntax-2.png | Bin 38032 -> 0 bytes
site2/doc-guides/assets/syntax-3.png | Bin 358193 -> 0 bytes
site2/doc-guides/assets/syntax-4.png | Bin 243160 -> 0 bytes
site2/doc-guides/assets/syntax-5.png | Bin 53777 -> 0 bytes
site2/doc-guides/assets/syntax-6.png | Bin 315928 -> 0 bytes
site2/doc-guides/assets/syntax-7.png | Bin 83816 -> 0 bytes
site2/doc-guides/assets/syntax-8.png | Bin 161006 -> 0 bytes
site2/doc-guides/assets/syntax-9.png | Bin 151067 -> 0 bytes
site2/doc-guides/contribution.md | 215 ----------
site2/doc-guides/label.md | 19 -
site2/doc-guides/naming.md | 211 ---------
site2/doc-guides/preview.md | 164 -------
site2/doc-guides/syntax.md | 295 -------------
wiki/assets/release-note-guide-1.png | Bin 273286 -> 0 bytes
wiki/release/create-gpg-keys.md | 163 -------
wiki/release/release-candidate-validation.md | 611 ---------------------------
wiki/release/release-note-guide.md | 78 ----
wiki/release/release-process.md | 574 -------------------------
30 files changed, 2 insertions(+), 2367 deletions(-)
diff --git a/site2/README.md b/site2/README.md
index 7b1ec17dfea..29759d07a9a 100644
--- a/site2/README.md
+++ b/site2/README.md
@@ -1,38 +1,3 @@
-# Pulsar Documentation Contribution Overview
-
-As you start your Pulsar journey, you might don’t understand something or make
mistakes. Don’t worry and take it easy. The Pulsar community is a joint effort
based on respect, openness, friendliness, discussions, and consensus. Everyone
is encouraged to contribute and any help is appreciated!
-
-The **Pulsar Documentation Contribution Overview** provides a set of guides
offering best-practice suggestions for contributing documentation to Pulsar. It
provides detailed instructions on the contribution workflow and conventions.
Please follow these guidelines to keep the documentation structure, style, and
syntax consistent.
-
-## Before writing docs
-
-* [Pulsar Documentation Contribution Guide](./doc-guides/contribution.md)
- * Doc structure and project organization
- * Workflow of submitting various docs
-
-## Writing docs
-
-* [Pulsar Documentation Writing Syntax Guide](./doc-guides/syntax.md)
-
-* [Pulsar Documentation Writing Style
Guide](https://docs.google.com/document/d/1lc5j4RtuLIzlEYCBo97AC8-U_3Erzs_lxpkDuseU0n4/edit#)
-
-* [Pulsar Design Style
Guide](https://docs.google.com/document/d/16Hp7Sc86MQtL0m8fc2w_TrcKXAuglwRwHmdmwfk00mI/edit#heading=h.b8ogodj5sj0)
-
-* [Pulsar API Documentation
Guide](https://docs.google.com/document/d/1-I1oQp1_HUaQopqilU-JdC-ksrLAgYNi93FZVnECwV8/edit#heading=h.wu6ygjne8e35)
-## Testing docs
-
-* [Pulsar Content Preview Guide](./doc-guides/preview.md)
-
-## Preparing to submit doc PRs
-
-* [Pulsar Pull Request Naming Convention Guide](./doc-guides/naming.md)
-
-* [Pulsar Documentation Label Guide](./doc-guides/label.md)
-
-## References
-
-In addition, the following resources can help you craft and contribute to docs.
-
-* [Google Technical Writing
Courses](https://developers.google.com/tech-writing/overview)
-
+# Pulsar Documentation Contribution Overview
+Read https://pulsar.apache.org/contribute/documentation/overview for more
information.
diff --git a/site2/doc-guides/assets/contribution-1.png
b/site2/doc-guides/assets/contribution-1.png
deleted file mode 100644
index 7363851e8bd..00000000000
Binary files a/site2/doc-guides/assets/contribution-1.png and /dev/null differ
diff --git a/site2/doc-guides/assets/contribution-2.png
b/site2/doc-guides/assets/contribution-2.png
deleted file mode 100644
index 998747a6ef5..00000000000
Binary files a/site2/doc-guides/assets/contribution-2.png and /dev/null differ
diff --git a/site2/doc-guides/assets/contribution-3.png
b/site2/doc-guides/assets/contribution-3.png
deleted file mode 100644
index bf4c5fc180e..00000000000
Binary files a/site2/doc-guides/assets/contribution-3.png and /dev/null differ
diff --git a/site2/doc-guides/assets/naming-1.png
b/site2/doc-guides/assets/naming-1.png
deleted file mode 100644
index 1e6bdc44207..00000000000
Binary files a/site2/doc-guides/assets/naming-1.png and /dev/null differ
diff --git a/site2/doc-guides/assets/preview-1.png
b/site2/doc-guides/assets/preview-1.png
deleted file mode 100644
index 3c60383177f..00000000000
Binary files a/site2/doc-guides/assets/preview-1.png and /dev/null differ
diff --git a/site2/doc-guides/assets/preview-2.png
b/site2/doc-guides/assets/preview-2.png
deleted file mode 100644
index b291fc6c825..00000000000
Binary files a/site2/doc-guides/assets/preview-2.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-1.png
b/site2/doc-guides/assets/syntax-1.png
deleted file mode 100644
index 17dbb33b4fe..00000000000
Binary files a/site2/doc-guides/assets/syntax-1.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-10.png
b/site2/doc-guides/assets/syntax-10.png
deleted file mode 100644
index e01122a5ca0..00000000000
Binary files a/site2/doc-guides/assets/syntax-10.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-11.png
b/site2/doc-guides/assets/syntax-11.png
deleted file mode 100644
index d8ba64d99bd..00000000000
Binary files a/site2/doc-guides/assets/syntax-11.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-12.png
b/site2/doc-guides/assets/syntax-12.png
deleted file mode 100644
index d50bfb00716..00000000000
Binary files a/site2/doc-guides/assets/syntax-12.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-13.png
b/site2/doc-guides/assets/syntax-13.png
deleted file mode 100644
index 56a8cdfd79a..00000000000
Binary files a/site2/doc-guides/assets/syntax-13.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-2.png
b/site2/doc-guides/assets/syntax-2.png
deleted file mode 100644
index 7a2a11cd1cb..00000000000
Binary files a/site2/doc-guides/assets/syntax-2.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-3.png
b/site2/doc-guides/assets/syntax-3.png
deleted file mode 100644
index b1026a6eb6d..00000000000
Binary files a/site2/doc-guides/assets/syntax-3.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-4.png
b/site2/doc-guides/assets/syntax-4.png
deleted file mode 100644
index f13005e39c4..00000000000
Binary files a/site2/doc-guides/assets/syntax-4.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-5.png
b/site2/doc-guides/assets/syntax-5.png
deleted file mode 100644
index 19cdbfc261c..00000000000
Binary files a/site2/doc-guides/assets/syntax-5.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-6.png
b/site2/doc-guides/assets/syntax-6.png
deleted file mode 100644
index aec5e6bb13b..00000000000
Binary files a/site2/doc-guides/assets/syntax-6.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-7.png
b/site2/doc-guides/assets/syntax-7.png
deleted file mode 100644
index 15ad9b013ab..00000000000
Binary files a/site2/doc-guides/assets/syntax-7.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-8.png
b/site2/doc-guides/assets/syntax-8.png
deleted file mode 100644
index 401222d3278..00000000000
Binary files a/site2/doc-guides/assets/syntax-8.png and /dev/null differ
diff --git a/site2/doc-guides/assets/syntax-9.png
b/site2/doc-guides/assets/syntax-9.png
deleted file mode 100644
index 6c38d48f8eb..00000000000
Binary files a/site2/doc-guides/assets/syntax-9.png and /dev/null differ
diff --git a/site2/doc-guides/contribution.md b/site2/doc-guides/contribution.md
deleted file mode 100644
index 14d5e8dcaec..00000000000
--- a/site2/doc-guides/contribution.md
+++ /dev/null
@@ -1,215 +0,0 @@
-# Pulsar Documentation Contribution Guide
-
-> 👩🏻🏫 **Summary**
->
-> This guide explains the organization of Pulsar documentation and website
repos and the workflow of updating various Pulsar docs.
-
-
-**TOC**
-
-<!-- TOC -->
-
-- [Pulsar Documentation Contribution
Guide](#pulsar-documentation-contribution-guide)
- - [Documentation and website repos](#documentation-and-website-repos)
- - [Intro to doc and website repos](#intro-to-doc-and-website-repos)
- - [Relationships between doc and website
repos](#relationships-between-doc-and-website-repos)
- - [Update versioned docs](#update-versioned-docs)
- - [Update reference docs](#update-reference-docs)
- - [Update Pulsar configuration docs](#update-pulsar-configuration-docs)
- - [Update client configuration docs](#update-client-configuration-docs)
- - [Update CLI tool docs](#update-cli-tool-docs)
- - [Update client/function matrix](#update-clientfunction-matrix)
- - [References](#references)
-
-<!-- /TOC -->
-
-## Documentation and website repos
-
-This chapter shows the organization of Pulsar documentation and website repos.
-
-### Intro to doc and website repos
-
-The Pulsar website consists of two parts:
-
-* **Documentation**
-
- Pulsar documentation repo:
[pulsar/site2](https://github.com/apache/pulsar/tree/master/site2)
-
- 
-
-* **Website**
-
- Pulsar website repo: [pulsar-site](https://github.com/apache/pulsar-site)
-
- 
-
-### Relationships between doc and website repos
-
-Type|Repo|Description|PR example
-|---|---|---|---
-Documentation|[pulsar/site2](https://github.com/apache/pulsar/tree/master/site2)|All
files related to Pulsar documentation (English) are stored in this
repo.|[[feat][doc] add docs for shedding
strategy](https://github.com/apache/pulsar/pull/13811)
-Website|[pulsar-site](https://github.com/apache/pulsar-site)|- All files
related to the Pulsar website are stored in the **main** branch in this repo.
<br><br> - The website is built and put in in the **asf-site-next** branch in
this repo.|- [[feat][workflow] add links of doc contribution guides to Pulsar
contribution page](https://github.com/apache/pulsar-site/pull/114) <br><br> -
[[improve][website] add download links for previous
versions](https://github.com/apache/pulsar-site/pull/108)
-
-Files in [pulsar/site2 (master
branch)](https://github.com/apache/pulsar/tree/master/site2) are synced to
[pulsar-site/website-next (main
branch)](https://github.com/apache/pulsar-site/tree/main/site2/website-next)
every 6 hours. You can check the sync status and progress at [pulsar-site
Actions](https://github.com/apache/pulsar-site/actions/workflows/ci-pulsar-website-docs-sync.yaml).
-
-> **Summary**
->
-> * pulsar/site2/**website** = pulsar-site site2/**website-next**
->
-> * pulsar/site2/**docs** = pulsar-site/site2/**website-next/docs**
-
-## Update versioned docs
-
-If you want to update versioned docs, go to
[pulsar/site2/website/versioned_docs/](https://github.com/apache/pulsar/tree/master/site2/website/versioned_docs)
to find your desired one.
-
->❗️**BREAKING CHANGE**
->
-> If you want to update docs for 2.8.x and later versions, follow the steps
below.
-
-1. Update the correct doc set.
-
- For example,
[version-2.8.x](https://github.com/apache/pulsar/tree/master/site2/website/versioned_docs/version-2.8.x),
[version-2.9.x](https://github.com/apache/pulsar/tree/master/site2/website/versioned_docs/version-2.9.x),
or
[version-2.10.x](https://github.com/apache/pulsar/tree/master/site2/website/versioned_docs/version-2.10.x).
-
- For why and how we make this change, see [PIP-190: Simplify documentation
release and maintenance
strategy](https://github.com/apache/pulsar/issues/16637).
-
-2. Add specific instructions.
-
- For example, if you want to add docs for an improvement introduced in
2.8.2, you can add the following instructions.
-
- ```
- :::note
-
- This <feature / configuration / xx> is available for 2.8.2 and later
versions.
-
- :::
- ```
-
-## Update reference docs
-
-If you want to update [Pulsar configuration
docs](https://pulsar.apache.org/reference/#/latest/), pay attention to the doc
source files.
-
-- Some docs are generated from code **automatically**. If you want to update
the docs, you need to update the source code files.
-
-- Some configuration docs are updated **manually** using .md files.
-
-### Update Pulsar configuration docs
-
-<table>
- <tr>
- <td><strong>Components</strong>
- </td>
- <td><strong>Update where…</strong>
- </td>
- <td><strong>Notes</strong>
- </td>
- </tr>
- <tr>
- <td>Broker
- </td>
- <td>org.apache.pulsar.broker.ServiceConfiguration
- </td>
- <td rowspan="5" >These components are <strong>internal</strong>.
-<p>
-These configuration docs are generated from code
<strong>automatically</strong>.
- </td>
- </tr>
- <tr>
- <td>Client
- </td>
- <td>org.apache.pulsar.client.impl.conf.ClientConfigurationData
- </td>
- </tr>
- <tr>
- <td>WebSocket
- </td>
- <td>org.apache.pulsar.websocket.service.WebSocketProxyConfiguration
- </td>
- </tr>
- <tr>
- <td>Proxy
- </td>
- <td>org.apache.pulsar.proxy.server.ProxyConfiguration
- </td>
- </tr>
- <tr>
- <td>Standalone
- </td>
- <td>org.apache.pulsar.broker.ServiceConfiguration
- </td>
- </tr>
- <tr>
- <td>BookKeeper
- </td>
- <td><a
href="https://github.com/apache/pulsar/blob/master/site2/docs/reference-configuration-bookkeeper.md">reference-configuration-bookkeeper.md</a>
- </td>
- <td rowspan="4" >These components are <strong>external</strong>.
-<p>
-These configuration docs are updated <strong>manually</strong>.
- </td>
- </tr>
- <tr>
- <td>Log4j
- </td>
- <td><a
href="https://github.com/apache/pulsar/blob/master/site2/docs/reference-configuration-log4j.md">reference-configuration-log4j.md</a>
- </td>
- </tr>
- <tr>
- <td>Log4j shell
- </td>
- <td><a
href="https://github.com/apache/pulsar/blob/master/site2/docs/reference-configuration-log4j-shell.md">reference-configuration-log4j-shell.md</a>
- </td>
- </tr>
- <tr>
- <td>ZooKeeper
- </td>
- <td><a
href="https://github.com/apache/pulsar/blob/master/site2/docs/reference-configuration-zookeeper.md">reference-configuration-zookeeper.md</a>
- </td>
- </tr>
-</table>
-
-### Update client configuration docs
-
-Pulsar Java configuration docs are generated from code automatically.
-
-Components|Update where…
-|---|---
-Client|org.apache.pulsar.client.impl.conf.ClientConfigurationData
-Producer|org.apache.pulsar.client.impl.conf.ProducerConfigurationData
-Consumer|org.apache.pulsar.client.impl.conf.ConsumerConfigurationData
-Reader|org.apache.pulsar.client.impl.conf.ReaderConfigurationData
-
-### Update CLI tool docs
-
-Components|Update where…
-|---|---
-pulsar-admin|
[pulsar/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/](https://github.com/apache/pulsar/tree/master/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli)
-pulsar| Different commands are updated in different code files.<br>Details see
[pulsar/bin/pulsar](https://github.com/apache/pulsar/blob/master/bin/pulsar).
-pulsar-client|[pulsar/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/](https://github.com/apache/pulsar/tree/master/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli)
-pulsar-perf|- `websocket-producer`:
[pulsar/pulsar-testclient/src/main/java/org/apache/pulsar/proxy/socket/client/](https://github.com/apache/pulsar/tree/master/pulsar-testclient/src/main/java/org/apache/pulsar/proxy/socket/client)<br><br>
- Other commands:
[pulsar/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/](https://github.com/apache/pulsar/tree/master/pulsar-testclient/src/main/java/org/apache/pulsar/testclient)
-pulsar-shell| reference-cli-pulsar-shell.md
-pulsar-daemon|reference-cli-pulsar-daemon.md <br><br> (It's almost not updated
and only contains 3 commands, so it's managed in `md` file rather than being
generated automatically)
-bookkeeper|reference-cli-bookkeeper.md
-
-## Update client/function 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.
-
-> ❗️ **Note**
->
-> - It’s public and everyone has access to edit it. Feel free to reach out to
`[email protected]` if you have problems in editing.
->
-> - This matrix will be moved to the Pulsar website (instead of the
spreadsheet) in the future.
-
-If you want to update the Pulsar Feature Matrix, follow the steps below.
-
-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.
-
- 
-
-## References
-
-For more guides on how to make contributions to Pulsar docs, see [Pulsar
Documentation Contribution Overview](./../README.md).
\ No newline at end of file
diff --git a/site2/doc-guides/label.md b/site2/doc-guides/label.md
deleted file mode 100644
index 816c5aec8cf..00000000000
--- a/site2/doc-guides/label.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Pulsar Documentation Label Guide
-
-> 👩🏻🏫 **Summary**
->
-> This guide instructs you on how to label your doc PR.
-
-When submitting an issue or PR, you must [provide doc label
information](https://github.com/apache/pulsar/blob/master/.github/PULL_REQUEST_TEMPLATE.md#documentation)
by **selecting the checkbox**, so that the Bot can label the PR correctly.
-
-Label name|Usage
-|---|---
-`doc-required`|Use this label to indicate this issue or PR impacts
documentation.<br><br> **You have not updated the docs yet**. The docs will be
submitted later.
-`doc-not-needed`| The code changes in this PR do not impact documentation.
-`doc`|This PR contains changes that impact documentation, **no matter whether
the changes are in markdown or code files**.
-`doc-complete`|Use this label to indicate the documentation updates are
complete.
-`doc-label-missing`|The Bot applies this label when there is no doc label
information in the PR if one of the following conditions is met:. <br><br> -
You do not provide a doc label. <br><br> - You provide multiple doc labels.
<br><br> - You delete backticks (``) in doc labels. <br>For example,<br> [x]
`doc-required` ✅ <br> [x] doc-required ❌ <br><br> - You add blanks in square
brackets. <br>For example, <br> [x] `doc-required` ✅ <br>[ x ] `doc-required` ❌
-
-## References
-
-For more guides on how to make contributions to Pulsar docs, see [Pulsar
Documentation Contribution Overview](./../README.md).
\ No newline at end of file
diff --git a/site2/doc-guides/naming.md b/site2/doc-guides/naming.md
deleted file mode 100644
index f46f7d3a02d..00000000000
--- a/site2/doc-guides/naming.md
+++ /dev/null
@@ -1,211 +0,0 @@
-# Pulsar Pull Request Naming Convention Guide
-
-> 👩🏻🏫 **Summary**
->
-> This guide explains why you need good PR titles and how you do that with
various self-explanatory examples.
-
-**TOC**
-
-<!-- TOC -->
-
-- [Pulsar Pull Request Naming Convention
Guide](#pulsar-pull-request-naming-convention-guide)
- - [Why do PR titles matter?](#why-do-pr-titles-matter)
- - [How to write good PR titles?](#how-to-write-good-pr-titles)
- - [💡Quick examples](#💡quick-examples)
- - [`type`](#type)
- - [`scope`](#scope)
- - [Pulsar](#pulsar)
- - [Client](#client)
- - [`Summary`](#summary)
- - [Full examples](#full-examples)
- - [References](#references)
-
-<!-- /TOC -->
-
-## Why do PR titles matter?
-
-Engineers and writers submit or review PRs almost every day.
-
-A PR title is a summary of your changes.
-
-* Vague, boring, and unclear PR titles decrease team efficiency and
productivity.
-
-* PR titles should be engaging, easy to understand, and readable.
-
-Good titles often bring many benefits, including but not limited to the
following:
-
-* Speed up the review process.
-
- You can tell from the title what changes the PR introduces.
-
-* Facilitate understanding of PR changes.
-
- * PR titles are shown on Pulsar release notes as items. Concise PR titles
make your changes easier to understand.
-
- * Especially when you read commit logs in command-line tools, clear commit
messages show PR changes quickly.
-
-* Increase search efficiency.
-
- You can skim through hundreds of commits and locate desired information
quickly.
-
-* Remind you to think about your PR.
-
- If you can not write a PR title in a simple way (for example,
[[type](#type)] [[scope](#scope)] [summary](#summary)), or you need to use
several types / scopes, consider whether your PR contains **too many** changes
across various scopes. If so, consider splitting this big PR into several small
PRs. In this way, you might get your PRs reviewed faster.
-
-## How to write good PR titles?
-
-A PR title should be structured as follows:
-
-
-
-
-> 💡 **Rule**
->
-> A good title = clear format ([type](#type) and [scope](#scope)) +
self-explanatory [summary](#summary)
-
-
-### 💡Quick examples
-
-Here are some examples of unclear and good PR titles for your quick reference.
Good PR titles are concise and self-explanatory since they tell you the changes
in a clear and direct way.
-
-For more examples with correct formats, see [Full examples](#full-examples).
-
-🙌 **Examples**
-
-Vague ❌|Clear ✅
-|---|---
-Producer getting producer busy is removing existing producer from
list|[fix][broker] Active producers with the same name are no longer removed
from the topic map
-Forbid to read other topic's data in managedLedger layer|[improve][broker]
Consumers are not allowed to read data on topics to which they are not
subscribed
-Fix kinesis sink backoff class not found|[improve][connector] xx connectors
can now use the Kinesis Backoff class
-K8s Function Name Length Check Allows Invalid StatefulSet |[improve][function]
Function name length cannot exceed 52 characters when using Kubernetes runtime
-
-> 💡 **Steps**
->
-> How to write a good PR title?
->
-> 1. Select a [type](#type).
->
-> 2. Select a [scope](#scope).
->
-> 3. Write a [summary](#summary).
-
-### `type`
-
-`type` is "what actions do you take".
-
-It must be one of the following.
-
-type|Pulsar PR label|What actions do you take?
-|---|---|---
-cleanup|
[type/cleanup](https://github.com/apache/pulsar/labels/type%2Fcleanup)|Remove
unused code or doc.
-improve|[type/improvement](https://github.com/apache/pulsar/labels/type%2Fimprovement)|Submit
enhancements that are neither new features nor bug fixes.
-feat|[type/feature](https://github.com/apache/pulsar/labels/type%2Ffeature)|Submit
new features.
-fix|[type/fix](https://github.com/apache/pulsar/labels/type%2Ffix)|Submit bug
fixes.
-refactor|[type/refactor](https://github.com/apache/pulsar/labels/type%2Frefactor)|Restructure
existing code while preserving its external behavior.
-revert|To be created|Revert changes
-
->❗️ **Note**
->
-> - Choose correct labels for your PR so that your PR will automatically go to
the correct chapter in release notes. If you do not specify a type label, the
PR might go to the wrong place or not be included in the release notes at all.
->
-> - For more information about release note automation for Pulsar and clients,
see [PIP 112: Generate Release Notes
Automatically](https://docs.google.com/document/d/1Ul2qIChDe8QDlDwJBICq1VviYZhdk1djKJJC5wXAGsI/edit).
-
-### `scope`
-
-`scope` is "where do you make changes".
-
-Pulsar and clients have separate release notes, so they have different scopes.
-
->❗️ **Note**
->
-> If your PR affects several scopes, do not choose several scope labels at the
same time since different scopes go to different chapters in release notes.
Instead, choose the most affected label (scope), or else your PR goes to
several chapters in release notes, which causes redundancies. Choose only one
label as much as possible.
-
-#### Pulsar
-
-`scope` and PR labels must be one of the following.
-
-scope |Pulsar PR label|Where do you make changes?
-|---|---|---
-admin|- scope/admin <br>- scope/topic-policy | - pulsar-admin <br> - REST API
<br> - Java admin API
-broker | - scope/broker | It’s difficult to maintain an exhaustive list since
many changes belong to brokers. <br><br> Here just lists some frequently
updated areas, it includes but not limited to:<br> - key_shared <br> -
replication <br> - metadata <br> - compaction
-cli|- scope/tool| Pulsar CLI tools. <br> It includes: <br> - pulsar <br> -
pulsar-client <br> - pulsar-daemon <br> - pulsar-perf <br> - bookkeeper<br> -
broker-tool
-io<br>(connector)|- scope/connector <br> - scope/connect <br> -
scope/kafka|Connector
-fn<br>(function)| - scope/function|Function
-meta<br>(metadata)|- scope/zookeepeer|Metadata
-monitor|- scope/metrics - scope/stats|Monitoring
-proxy| - scope/proxy| Proxy
-schema| - scope/schema <br> - scope/schemaregistry|Schema
-sec<br>(security)| - scope/security <br> - scope/authentication <br> -
scope/authorization|Security
-sql|- scope/sql|Pulsar SQL
-storage| - scope/bookkeeper storage|Managed ledge
-offload<br>(tiered storage)|- scope/tieredstorage|Tiered storage
-txn| - scope/transaction<br> - scope/transaction-coordinator|Transaction
-test|- scope/test|Code tests
-ci|- scope/ci|CI workflow changes or debugging
-build|- scope/build| - Dependency (Maven) <br> - Docker <br> - Build or
release script
-misc|- scope/misc| Changes that do not belong to any scopes above.
-doc|- doc|Documentation
-site<br>(website)|- website|Website
-
-#### Client
-
-The following changes are shown on the client release notes.
-
-`scope` and PR label must be one of the following.
-
-scope | Pulsar PR label | Where do you make changes?
-|---|---|---
-client<br>(Java client)|scope/client-java|Java client
-ws<br>(WebSocket)|scope/client-websocket|[WebSocket
API](https://pulsar.apache.org/docs/next/client-libraries-websocket/)
-
-### `Summary`
-
-`Summary` is a single line that best sums up the changes made in the commit.
-
-Follow the best practice below.
-
-* Keep the summary concise and descriptive.
-
-* Use the second person and present tense.
-
-* Write [complete
sentences](https://www.grammarly.com/blog/sentence-fragment/#:~:text=What's%20a%20sentence%20fragment%3F,%2C%20a%20verb%2C%20or%20both.)
rather than fragments.
-
-* Capitalize the first letter.
-
-* No period at the end. ❌
-
-* Do not include back quotes (``).
-
-* Limit the length to 50 characters.
-
-* If you cherry pick changes to branches, name your PR title the same as the
original PR title and label your PR with cherry-pick related labels.
-
-* Do not use [GitHub
keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)
followed by a #<issue-number>. This information should be provided in PR
descriptions or commit messages rather than in PR titles. ❌
-
-### Full examples
-
-As explained in the [How to write good PR
titles](#how-to-write-good-pr-titles) chapter:
-
-> 💡 **Rule**
->
-> A good title = clear format ([type](#type) and [scope](#scope)) +
self-explanatory [summary](#summary)
-
-Here are some format examples. For self-explanatory summary examples, see
[Quick examples](#quick-examples).
-
-Changes|Unclear format ❌|Clear format ✅
----|---|---
-Submit breaking changes|[Breaking change] xxx|[feat][broker]! Support xx
-Submit PIP changes|[PIP-198] Support xx|[feat][broker] PIP-198: Support xx
-Cherry pick changes|[Branch-2.9] Fix xxx issue. | [fix][broker][branch-2.9]
Fix xxx issue
-Revert changes|Revert xxx| [revert][broker] Revert changes about xxx
-Add features| - Adding xx feature <br> - Support delete schema forcefully| -
[feat][java client] Add xx feature <br> - [feat][schema] Support xx
-Fix bugs | [Issue 14633][pulsar-broker] Fixed xxx| [fix][broker] Fix xxx
-Submit improvements|- Enhances xx <br> - Bump netty version to 4.1.75 | -
[improve][sql] Improve xx performance <br> - [improve][build] Bump Netty
version to 4.1.75
-Update tests | reduce xx test flakiness | [improve][test] Reduce xxx flaky
tests
-Update docs| - [Doc] add explanations for xxx <br> - 2.8.3 Release Notes <br>
- Fix typos in xx | - [feat][doc] Add explanations for xxx <br> - [feat][doc]
Add 2.8.3 release note <br> - [fix][doc] Fix typos in xx
-Update website | [Website] adjust xxx | [improve][site] Adjust xxx
-Update instructions/guidelines|Update xxx guideline|[improve][doc] Update xx
guidelines
-
-## References
-
-For more guides on how to make contributions to Pulsar docs, see [Pulsar
Documentation Contribution Overview](./../README.md).
\ No newline at end of file
diff --git a/site2/doc-guides/preview.md b/site2/doc-guides/preview.md
deleted file mode 100644
index ae4c561c6b0..00000000000
--- a/site2/doc-guides/preview.md
+++ /dev/null
@@ -1,164 +0,0 @@
-# Pulsar Content Preview Guide
-
-> 👩🏻🏫 **Summary**
->
-> This guide explains why and how to preview Pulsar content locally with
detailed steps and various examples.
-
-**TOC**
-
-<!-- TOC -->
-
-- [Pulsar Content Preview Guide](#pulsar-content-preview-guide)
- - [Why preview changes locally?](#why-preview-changes-locally)
- - [How to preview changes locally?](#how-to-preview-changes-locally)
- - [Prerequisites](#prerequisites)
- - [Preview doc (markdown) changes](#preview-doc-markdown-changes)
- - [Preview doc (Java API) changes](#preview-doc-java-api-changes)
- - [Preview website changes](#preview-website-changes)
- - [Stop preview](#stop-preview)
- - [Maintenance info](#maintenance-info)
- - [References](#references)
-
-<!-- /TOC -->
-
-## Why preview changes locally?
-
-It is **required** to preview your changes locally and attach the preview
screenshots in your PR description. It brings many benefits, including but not
limited to:
-
-* You can test your writings
-
- It’s a way to check whether you use the correct [Pulsar Documentation
Writing Syntax](./syntax.md) and debug issues. You **must ensure** docs can be
compiled and published correctly.
-
-* You can get your PR merged more quickly.
-
- Reviewers know your changes clearly and can speed up the review process.
-
-## How to preview changes locally?
-
-Pulsar documentation is built using Docusaurus. To preview your changes as you
edit the files, you can run a local development server that serves your website
and reflect the latest changes.
-
-### Prerequisites
-
-To verify docs are built correctly before submitting a contribution, you
should set up your local environment to build and display the docs locally.
-
-* Node >= 16.14
-
-* Yarn >= 1.5
-
-* Although you can use Linux, macOS, or Windows to build locally the Pulsar
documentation, macOS is the preferred build environment as it offers the most
complete support for documentation building.
-
-### Preview doc (markdown) changes
-
-Follow these steps to build the doc (markdown) preview on your local machine.
-
-1. Go to the correct repo.
-
-
- ```
- cd pulsar/site2/website
- ```
-
-2. Run the following command to preview changes.
-
-* Preview **master** changes
-
- If you update master docs, use the following command.
-
- ```
- sh start.sh
- ```
-
-* Preview **historical** changes
-
- If you update versioned docs, use the following command.
-
- It may take a few more minutes to complete the process.
-
- ```
- sh start.sh <version-number> <version-number>
- ```
-
- 
-
-3. By default, a browser window will open at
[http://localhost:3000](http://localhost:3000) to show the changes.
-
- 
-
-### Preview doc (Java API) changes
-
-Follow these steps to build the doc (Java API) preview on your local machine
on the **master** branch.
-
-1. Go to the correct repo.
-
- ```
- cd pulsar/site2/tools
- ```
-
-2. Run the following command to generate the `.html` files.
-
- ```
- sh javadoc-gen.sh
- ```
-
-3. Open the target `.html` file to preview the updates.
-
- For example, if you change the
[ConsumerBuilder.java](http://pulsar-client-api/src/main/java/org/apache/pulsar/client/api/ConsumerBuilder.java)
for [Pulsar Java
docs](https://pulsar.apache.org/api/client/2.11.0/org/apache/pulsar/client/api/ConsumerBuilder.html),
you can navigate to the
`generated-site/api/client/{version}/org/apache/pulsar/client/api/` directory
and open the `ConsumerBuilder.html` file to preview the updates.
-
-### Preview website changes
-
-Pulsar website changes refer to all the changes made to the Pulsar website,
including but not limited to the following pages:
-
-* [Release Notes page](https://pulsar.apache.org/release-notes/) ✅
-* [Ecosystem page](https://pulsar.apache.org/ecosystem) ✅
-* [Case studies page](https://pulsar.apache.org/case-studies) ✅
-* …
-* (except docs ❌)
-
-Follow these steps to build the website preview on your local machine.
-
-1. Go to the correct repo.
-
- ```
- cd pulsar-site/site2/website-next
- ```
-
-2️. Run the following command to preview changes.
-
- * Preview **master** changes
-
- If you submit changes to master, use the following command.
-
-
- ```
- ./preview.sh
- ```
-
- * Preview **historical** changes
-
- ```
- ./preview.sh <version-number> <version-number> …
- ```
-
- > ❗️ **Note**
- >
- > * Use a space between `<version-number> <version-number>`.
- >
- > * If you want to preview multiple version changes, append
`<version-number>` with blanks.
- >
- > For example, `./preview.sh 2.9.1 2.9.2 2.9.3`.
-
-### Stop preview
-
-If you want to stop the preview, use one of the following methods.
-
-* Method 1: Switch to your command-line interface and press **Control+C**.
-
-* Method 2: Switch to your browser and close the preview page.
-
-### Maintenance info
-
-* For the old Pulsar website, using ` yarn start` can preview all (master +
historical) changes. However, to speed up the build process, for the new Pulsar
website, using `./preview.sh `only preview master changes.
-
-## References
-
-For more guides on how to make contributions to Pulsar docs, see [Pulsar
Documentation Contribution Overview](./../README.md).
\ No newline at end of file
diff --git a/site2/doc-guides/syntax.md b/site2/doc-guides/syntax.md
deleted file mode 100644
index 8c1cab39362..00000000000
--- a/site2/doc-guides/syntax.md
+++ /dev/null
@@ -1,295 +0,0 @@
-# Pulsar Documentation Writing Syntax Guide
-
-> 👩🏻🏫 **Summary**
->
-> This guide explains how to write Pulsar documentation using the
MDX-compatible markdown syntax.
-
-**TOC**
-
-<!-- TOC -->
-
-- [Pulsar Documentation Writing Syntax
Guide](#pulsar-documentation-writing-syntax-guide)
- - [Background](#background)
- - [Why use new markdown syntax?](#why-use-new-markdown-syntax)
- - [How to test doc changes?](#how-to-test-doc-changes)
- - [Syntax](#syntax)
- - [Markdown](#markdown)
- - [Tab](#tab)
- - [Code blocks](#code-blocks)
- - [Admonitions](#admonitions)
- - [Assets](#assets)
- - [Indentation & space](#indentation--space)
- - [Metadata](#metadata)
- - [Tables](#tables)
- - [Links](#links)
- - [Anchor links](#anchor-links)
- - [Links to internal documentation](#links-to-internal-documentation)
- - [Links to external documentation](#links-to-external-documentation)
- - [Link to a specific line of code](#link-to-a-specific-line-of-code)
- - [Authoritative sources](#authoritative-sources)
- - [Escape](#escape)
- - [Headings](#headings)
- - [References](#references)
-
-<!-- /TOC -->
-
-## Background
-
-The Pulsar documentation uses
[Markdown](https://www.markdownguide.org/basic-syntax/) as its markup language
and [Docusaurus](https://docusaurus.io/) for generating the documentation and
website.
-
-> 🔴 **BREAKING CHANGE**
->
-> From 2022/5/18, you need to use **Markdown syntax that is compatible with
MDX**. Otherwise, your changes can not be recognized by MDX and rendered
properly. In this case, your PR can not be merged.
-
-### Why use new markdown syntax?
-
-The new Pulsar website is launched on 2022/5/11. It is upgraded to Docusaurus
V2, which uses MDX as the parsing engine. MDX can do much more than just
parsing standard Markdown syntax, like rendering React components inside your
documents as well. However, **some previous documentation using Markdown syntax
is incompatible with MDX**。 Consequently, you need to change the way you write.
-
-### How to test doc changes?
-
-- You can play with the MDX format in **[MDX
Playground](https://mdxjs.com/playground/)** . Write some MDX to find out what
it turns into. You can see the rendered result, the generated code, and the
intermediary ASTs. This can be helpful for debugging or exploring.
-
-- For how to test doc changes locally, see [Pulsar Content Preview
Guide](./preview.md).
-
-## Syntax
-
-> ❗️**Note**
->
-> This guide just highlights **some** important rules and frequently used
syntax that is **different from the Markdown syntax used in the previous
docs**. For the complete syntax guide, see [Docusaurus - Markdown
Features](https://docusaurus.io/docs/next/markdown-features) and [MDX -
Markdown](https://mdxjs.com/docs/what-is-mdx/#markdown).
-
-### Markdown
-
-* **Use Markdown rather than HTML** as much as possible, or else MDX may not
recognize it.
-
- For example, when constructing complex tables, do not use HTML
(`<table>`).
-
-* Use **closing** tags.
-
- `<li></li>` and `<br></br>` are especially useful for constructing complex
tables, such as _creating a list_ and _adding a blank line_.
-
- 🙌 **Examples**
-
- ```
- <li>xxx ❌
- <br>xxx ❌
- <li>xxx</li> ✅
- ```
-
- 
-
- ```
- <br />xxx → wrap text in "next" line ✅
- <br /><br />xxx → wrap text in "next next" line ✅
- ```
-
- 
-
-* If you need to use HTML, use **React** syntax for HTML tags.
-
- 🙌 **Examples**
-
- ```
- <span style="color: #bb3b3e;"></span> ❌
-
- <span style={{color: "#bb3b3e"}}>deleted</span> ✅
- ```
-
-### Tab
-
-The image below shows the differences in writing multiple tabs before and
after. For how to write multiple tabs, see
[Tabs](https://docusaurus.io/docs/next/markdown-features/tabs).
-
-
-
-### Code blocks
-
-For how to use syntax highlighting and supported languages, see [Syntax
highlighting](https://docusaurus.io/docs/next/markdown-features/code-blocks#syntax-highlighting).
-
-### Admonitions
-
-The image below shows the differences to write admonitions before and after.
-
-For how to write admonitions, see
[Admonitions](https://docusaurus.io/docs/next/markdown-features/admonitions).
-
-
-
-### Assets
-
-Add dash `/` before the asset path.
-
-🙌 **Examples**
-
-```
-
-```
-
-### Indentation & space
-
-* Use the same indentation for running texts and code blocks.
-
- 🙌 **Examples**
-
- 
-
-
-* For the content block after an **ordered list**, indent the content block by
only 3 spaces (not 4 spaces).
-
-* For the content block after an **unordered list**, indent the content block
by only 2 spaces.
-
- 🙌 **Examples**
-
- 
-
- > 💡 **Tip**
- >
- > You can set the **Tab Size** in VS Code settings.
- >
- > 
-
-* Insert **only an** empty line (not two empty lines or more) between code
blocks and running texts.
-
- 🙌 **Examples**
-
- 
-
- 
-
- 
-
-### Metadata
-
-If you create a new `.md` file, add quotes for the value of sidebar_label.
-
-🙌 **Examples**
-
-
-
-### Tables
-
-To help tables be easier to maintain, consider adding additional spaces to the
column widths to make them consistent.
-
-🙌 **Examples**
-
-```
-| App name | Description | Requirements |
-|:---------|:---------------------|:---------------|
-| App 1 | Description text 1. | Requirements 1 |
-| App 2 | Description text 2. | None |
-```
-
-To format tables easily, you can install a plugin or extension in your editor
as below:
-
-* Visual Studio Code: [Markdown Table
Prettifier](https://marketplace.visualstudio.com/items?itemName=darkriszty.markdown-table-prettify)
-
-* Sublime Text: [Markdown Table
Formatter](https://packagecontrol.io/packages/Markdown%20Table%20Formatter)
-
-* Atom: [Markdown Table
Formatter](https://atom.io/packages/markdown-table-formatter)
-
-### Links
-
-Use links instead of summarizing to help preserve a single source of truth in
Pulsar documentation.
-
-#### Anchor links
-
-Headings generate anchor links when rendered.
-
-🙌 **Examples**
-
-`## This is an example` generates the anchor `#this-is-an-example`.
-
-> ❗️ **Note**
->
-> * Avoid crosslinking docs to headings unless you need to link to a specific
section of the document. This avoids breaking anchors in the future in case the
heading is changed.
->
-> * If possible, avoid changing headings, because they’re not only linked
internally. There are various links to Pulsar documentation on the internet,
such as tutorials, presentations, StackOverflow posts, and other sources.
-
-#### Links to internal documentation
-
-Internal refers to documentation in the same Pulsar project.
-
-General rules:
-
-* Use relative links rather than absolute URLs.
-
-* Don’t prepend ./ or ../../ to links to files or directories.
-
-🙌 **Examples**
-
-Scenario| ✅| ❌
-|---|---|---
-Crosslink to other markdown file <br><br> (/path/xx/ is not needed)|`[Function
overview](function-overview.md)`|- `[Function overview](functions-overview)`
<br><br> - `[Function
overview](https://pulsar.apache.org/docs/next/functions-overview/)` <br><br> -
`[Function overview](../../function-overview.md)`
-Crosslink to other chapters in the same markdown file <br><br> (# and - are
needed)|`[Install builtin connectors
(optional)](#install-builtin-connectors-optional)`|N/A
-
-#### Links to external documentation
-
-When describing interactions with external software, it’s often helpful to
include links to external documentation. When possible, make sure that you’re
linking to an [authoritative source](#authoritative-sources).
-
-For example, if you’re describing a feature in Microsoft’s Active Directory,
include a link to official Microsoft documentation.
-
-#### Link to a specific line of code
-
-Use a **permalink **when linking to a specific line in a file to ensure users
land on the line you’re referring to though lines of code change over time.
-
-
-
-### Authoritative sources
-
-When citing external information, use sources that are written by the people
who created the item or product in question. These sources are the most likely
to be accurate and remain up to date.
-
-🙌 **Examples**
-
-- Authoritative sources include the following ✅
-
- * Official documentation for a product.
-
- For example, if you’re setting up an interface with the Google OAuth 2
authorization server, include a link to Google’s documentation.
-
- * Official documentation for a project.
-
- For example, if you’re citing NodeJS functionality, refer directly to
[NodeJS documentation](https://nodejs.org/en/docs/).
-
- * Books from an authoritative publisher.
-
-- Authoritative sources do not include the following ❌
-
- * Personal blog posts.
-
- * Documentation from a company that describes another company’s product.
-
- * Non-trustworthy articles.
-
- * Discussions on forums such as Stack Overflow.
-
-While many of these sources to avoid can help you learn skills and or
features, they can become obsolete quickly. Nobody is obliged to maintain any
of these sites. Therefore, we should avoid using them as reference literature.
-
-Non-authoritative sources are acceptable only if there is no equivalent
authoritative source. Even then, focus on non-authoritative sources that are
extensively cited or peer-reviewed.
-
-### Escape
-
-Use the following characters to escape special characters.
-
-🙌 **Examples**
-
-✅ | ❌
-|---|---
-`List<String>` <br><br>This error shows up
|List`<String>`<br><br>Here is an [example
PR](https://github.com/apache/pulsar/pull/15389/files#diff-472b2cb6fc28a0845d2f1d397dc4e6e7fa083dfe4f91d6f9dca88ad01d06a971).
-
-
-### Headings
-
-* Each documentation page begins with a **level 2** heading (##). This becomes
the h1 element when the page is rendered to HTML.
-
-* Do not skip a level. For example: ## > ####.
-
-* Leave one blank line before and after the heading.
-
-* Do not use links as part of heading text.
-
-* When you change the heading text, the anchor link changes. To avoid broken
links:
-
- * Do not use step numbers in headings.
-
- * When possible, do not use words that might change in the future.
-
-## References
-
-For more guides on how to make contributions to Pulsar docs, see [Pulsar
Documentation Contribution Overview](./../README.md).
\ No newline at end of file
diff --git a/wiki/assets/release-note-guide-1.png
b/wiki/assets/release-note-guide-1.png
deleted file mode 100644
index 25120c886e6..00000000000
Binary files a/wiki/assets/release-note-guide-1.png and /dev/null differ
diff --git a/wiki/release/create-gpg-keys.md b/wiki/release/create-gpg-keys.md
deleted file mode 100644
index 66d467a1f22..00000000000
--- a/wiki/release/create-gpg-keys.md
+++ /dev/null
@@ -1,163 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-# Create GPG keys to sign release artifacts
-
-This page provides instructions for Pulsar committers on how to do
-the initial gpg setup.
-
-This is a condensed version of instructions available at
-http://apache.org/dev/openpgp.html.
-
-
-Install GnuPG. For example on MacOS:
-
-```shell
-brew install gnupg
-```
-
-Set configuration to use `SHA512` keys by default.
-
-```shell
-mkdir ~/.gnupg
-cat <<EOL >> ~/.gnupg/gpg.conf
-personal-digest-preferences SHA512
-cert-digest-algo SHA512
-default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5
ZLIB BZIP2 ZIP Uncompressed
-EOL
-chmod 700 ~/.gnupg/gpg.conf
-```
-
-Check the version.
-
-```shell
-gpg --version
-
-gpg (GnuPG) 2.1.22
-libgcrypt 1.8.0
-Copyright (C) 2017 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
-This is free software: you are free to change and redistribute it.
-There is NO WARRANTY, to the extent permitted by law.
-
-Home: /Users/nkurihar/.gnupg
-Supported algorithms:
-Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
-Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
- CAMELLIA128, CAMELLIA192, CAMELLIA256
-Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
-Compression: Uncompressed, ZIP, ZLIB, BZIP2
-```
-
-Generate new GPG key.
-Note that new **RSA** keys generated should be at least **4096** bits.
-
-```shell
-# For 1.x or 2.0.x
-gpg --gen-key
-
-# For 2.1.x
-gpg --full-gen-key
-
-gpg (GnuPG) 2.1.22; Copyright (C) 2017 Free Software Foundation, Inc.
-This is free software: you are free to change and redistribute it.
-There is NO WARRANTY, to the extent permitted by law.
-
-Please select what kind of key you want:
- (1) RSA and RSA (default)
- (2) DSA and Elgamal
- (3) DSA (sign only)
- (4) RSA (sign only)
-Your selection? 1
-RSA keys may be between 1024 and 4096 bits long.
-What keysize do you want? (2048) 4096
-Requested keysize is 4096 bits
-Please specify how long the key should be valid.
- 0 = key does not expire
- <n> = key expires in n days
- <n>w = key expires in n weeks
- <n>m = key expires in n months
- <n>y = key expires in n years
-Key is valid for? (0) 0
-Key does not expire at all
-Is this correct? (y/N) y
-
-GnuPG needs to construct a user ID to identify your key.
-
-Real name: test user
-Email address: [email protected]
-Comment: CODE SIGNING KEY
-You selected this USER-ID:
- "test user (CODE SIGNING KEY) <[email protected]>"
-
-Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
-<Enter passphrase>
-```
-
-#### Appending the key to KEYS files
-
-The GPG key needs to be appended to `KEYS` file that is stored in 2 SVN
locations,
-one for proper releases and one for the release candidates.
-
-The credentials for SVN are the usual Apache account credentials.
-
-```shell
-# Checkout the SVN folder containing the KEYS file
-svn co https://dist.apache.org/repos/dist/dev/pulsar pulsar-dist-dev-keys
--depth empty
-cd pulsar-dist-dev-keys
-svn up KEYS
-
-APACHEID=apacheid
-# Export the key in ascii format and append it to the file
-( gpg --list-sigs [email protected]
- gpg --export --armor [email protected] ) >> KEYS
-
-# Commit to SVN
-svn ci -m "Added gpg key for $APACHEID"
-```
-
-Repeat the same operation for the release KEYS file:
-
-> :warning: You should ask a PMC member to complete this step.
-
-```shell
-# Checkout the SVN folder containing the KEYS file
-svn co https://dist.apache.org/repos/dist/release/pulsar
pulsar-dist-release-keys --depth empty
-cd pulsar-dist-release-keys
-svn up KEYS
-
-APACHEID=apacheid
-# Export the key in ascii format and append it to the file
-( gpg --list-sigs [email protected]
- gpg --export --armor [email protected] ) >> KEYS
-
-# Commit to SVN
-svn ci -m "Added gpg key for $APACHEID"
-```
-
-#### Upload the key to a public key server
-
-Use the key id to publish it to several public key servers:
-```shell
-gpg --send-key 8C75C738C33372AE198FD10CC238A8CAAC055FD2
-gpg --send-key --keyserver=keys.openpgp.org
8C75C738C33372AE198FD10CC238A8CAAC055FD2
-gpg --send-key --keyserver=keyserver.ubuntu.com
8C75C738C33372AE198FD10CC238A8CAAC055FD2
-```
\ No newline at end of file
diff --git a/wiki/release/release-candidate-validation.md
b/wiki/release/release-candidate-validation.md
deleted file mode 100644
index 082cc466da8..00000000000
--- a/wiki/release/release-candidate-validation.md
+++ /dev/null
@@ -1,611 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-# Release Candidate Validation
-
-- [Validate Binary Distribution](#validate-the-binary-distribution)
- * [Download And Verify Binary
Distributions](#download-the-binary-distributions)
- * [Validate Pub/Sub and Java
Functions](#validate-pubsub-and-java-functions)
- * [Validate Connectors](#validate-connectors)
- * [Validate Stateful Functions](#validate-stateful-functions)
-
-The following are manual instructions for reviewing and validating a release
candidate.
-You can automate these steps. Contributions are welcome!
-
-## Validate the binary distribution
-
-### Download And Verify the binary distributions
-
-Download the server distribution `apache-pulsar-<release>-bin.tar.gz` and
extract it. The extracted files are in a directory called
`apache-pulsar-<release>`. All the operations below happen within that
directory.
-
-```shell
-$ cd apache-pulsar-<release>
-$ mkdir connectors
-```
-
-Download the Pulsar IO Connector files
-```
-pulsar-io-aerospike-<release>.nar
-pulsar-io-cassandra-<release>.nar
-pulsar-io-kafka-<release>.nar
-pulsar-io-kinesis-<release>.nar
-pulsar-io-rabbitmq-<release>.nar
-pulsar-io-twitter-<release>.nar
-```
-and place them in the `connectors` directory.
-
-Download the `*.asc` file and verify the GPG signature
-
-```bash
-gpg verify apache-pulsar-<release>-bin.tar.gz.asc
-```
-
-### Validate Pub/Sub and Java Functions
-
-1. Open a terminal to start a standalone cluster.
-
-```shell
-$ bin/pulsar standalone
-```
-
-When you start a standalone cluster, there are a few things to check.
-
-a) The standalone cluster is able to locate all the connectors. The following
logging information should be displayed.
-
-```shell
-Found connector ConnectorDefinition(name=kinesis, description=Kinesis sink
connector, sourceClass=null,
sinkClass=org.apache.pulsar.io.kinesis.KinesisSink) from
/Users/sijie/tmp/apache-pulsar-2.1.0-incubating/./connectors/pulsar-io-kinesis-2.1.0-incubating.nar
-...
-Found connector ConnectorDefinition(name=cassandra, description=Writes data
into Cassandra, sourceClass=null,
sinkClass=org.apache.pulsar.io.cassandra.CassandraStringSink) from
/Users/sijie/tmp/apache-pulsar-2.1.0-incubating/./connectors/pulsar-io-cassandra-2.1.0-incubating.nar
-...
-Found connector ConnectorDefinition(name=aerospike, description=Aerospike
database sink, sourceClass=null,
sinkClass=org.apache.pulsar.io.aerospike.AerospikeStringSink) from
/Users/sijie/tmp/apache-pulsar-2.1.0-incubating/./connectors/pulsar-io-aerospike-2.1.0-incubating.nar
-```
-
-b) (since Pulsar 2.1 release) The standalone starts bookkeeper table service.
The output is similar as follows:
-
-```shell
-12:12:26.099 [main] INFO org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble
- 'default' namespace for table service : namespace_name: "default"
-default_stream_conf {
- key_type: HASH
- min_num_ranges: 24
- initial_num_ranges: 24
- split_policy {
- fixed_range_policy {
- num_ranges: 2
- }
- }
- rolling_policy {
- size_policy {
- max_segment_size: 134217728
- }
- }
- retention_policy {
- time_policy {
- retention_minutes: -1
- }
- }
-}
-```
-
-c) Functions worker is started correctly. The output is similar as follows:
-
-```shell
-14:28:24.101 [main] INFO org.apache.pulsar.functions.worker.WorkerService -
Starting worker c-standalone-fw-localhost-8080...
-14:28:24.907 [main] INFO org.apache.pulsar.functions.worker.WorkerService -
Worker Configs: {
- "workerId" : "c-standalone-fw-localhost-8080",
- "workerHostname" : "localhost",
- "workerPort" : 8080,
- "workerPortTls" : 6751,
- "jvmGCMetricsLoggerClassName" : null,
- "numHttpServerThreads" : 8,
- "connectorsDirectory" : "./connectors",
- "functionMetadataTopicName" : "metadata",
- "functionWebServiceUrl" : null,
- "pulsarServiceUrl" : "pulsar://127.0.0.1:6650",
- "pulsarWebServiceUrl" : "http://127.0.0.1:8080",
- "clusterCoordinationTopicName" : "coordinate",
- "pulsarFunctionsNamespace" : "public/functions",
- "pulsarFunctionsCluster" : "standalone",
- "numFunctionPackageReplicas" : 1,
- "downloadDirectory" : "/tmp/pulsar_functions",
- "stateStorageServiceUrl" : "bk://127.0.0.1:4181",
- "functionAssignmentTopicName" : "assignments",
- "schedulerClassName" :
"org.apache.pulsar.functions.worker.scheduler.RoundRobinScheduler",
- "failureCheckFreqMs" : 30000,
- "rescheduleTimeoutMs" : 60000,
- "initialBrokerReconnectMaxRetries" : 60,
- "assignmentWriteMaxRetries" : 60,
- "instanceLivenessCheckFreqMs" : 30000,
- "clientAuthenticationPlugin" : null,
- "clientAuthenticationParameters" : null,
- "topicCompactionFrequencySec" : 1800,
- "tlsEnabled" : true,
- "tlsCertificateFilePath" : null,
- "tlsKeyFilePath" : null,
- "tlsTrustCertsFilePath" : null,
- "tlsAllowInsecureConnection" : false,
- "tlsRequireTrustedClientCertOnConnect" : false,
- "useTls" : false,
- "tlsHostnameVerificationEnable" : false,
- "authenticationEnabled" : false,
- "authenticationProviders" : null,
- "authorizationEnabled" : false,
- "superUserRoles" : null,
- "properties" : { },
- "threadContainerFactory" : null,
- "processContainerFactory" : {
- "javaInstanceJarLocation" : null,
- "pythonInstanceLocation" : null,
- "logDirectory" : null,
- "extraFunctionDependenciesDir" : null
- },
- "kubernetesContainerFactory" : null,
- "secretsProviderConfiguratorClassName" : null,
- "secretsProviderConfiguratorConfig" : null,
- "functionInstanceMinResources" : null,
- "workerWebAddress" : "http://localhost:8080",
- "functionMetadataTopic" : "persistent://public/functions/metadata",
- "clusterCoordinationTopic" : "persistent://public/functions/coordinate",
- "functionAssignmentTopic" : "persistent://public/functions/assignments"
-}
-```
-
-d) Do sanity check before moving to the next step.
-
-```shell
-// check pulsar binary port is listened correctly
-$ netstat -an | grep 6650 | grep LISTEN
-
-// check function cluster
-$ curl -s http://localhost:8080/admin/v2/worker/cluster
-// example output
-[{"workerId":"c-standalone-fw-localhost-6750","workerHostname":"localhost","port":6750}]
-
-// check brokers
-$ curl -s http://localhost:8080/admin/v2/namespaces/public
-// example outoupt
-["public/default","public/functions"]
-
-// check connectors
-$ curl -s http://localhost:8080/admin/v2/functions/connectors
-// example output
-[{"name":"aerospike","description":"Aerospike database
sink","sinkClass":"org.apache.pulsar.io.aerospike.AerospikeStringSink"},{"name":"cassandra","description":"Writes
data into
Cassandra","sinkClass":"org.apache.pulsar.io.cassandra.CassandraStringSink"},{"name":"kafka","description":"Kafka
source and sink
connector","sourceClass":"org.apache.pulsar.io.kafka.KafkaStringSource","sinkClass":"org.apache.pulsar.io.kafka.KafkaStringSink"},{"name":"kinesis","description":"Kinesis
sink connect [...]
-
-// check table services
-$ nc -vz4 localhost 4181
-```
-
-2. Open another terminal to submit a Java Exclamation function.
-
-a) Create tenant and namespace.
-
-```shell
-$ bin/pulsar-admin tenants create test
-$ bin/pulsar-admin namespaces create test/test-namespace
-```
-
-b) Create function.
-
-```shell
-$ bin/pulsar-admin functions create --function-config-file
examples/example-function-config.yaml --jar examples/api-examples.jar
-```
-
-The following information is returned.
-`Created Successfully`
-
-3. At the same terminal as step 2, retrieve the function configuration.
-
-```shell
-$ bin/pulsar-admin functions get --tenant test --namespace test-namespace
--name example
-```
-
-The output is similar as follows:
-
-```shell
-{
- "tenant": "test",
- "namespace": "test-namespace",
- "name": "example",
- "className": "org.apache.pulsar.functions.api.examples.ExclamationFunction",
- "userConfig": "{\"PublishTopic\":\"test_result\"}",
- "autoAck": true,
- "parallelism": 1,
- "source": {
- "topicsToSerDeClassName": {
- "test_src": ""
- },
- "typeClassName": "java.lang.String"
- },
- "sink": {
- "topic": "test_result",
- "typeClassName": "java.lang.String"
- },
- "resources": {}
-}
-```
-
-4. At the same terminal as step 3, retrieve the function status.
-
-```shell
-$ bin/pulsar-admin functions status --tenant test --namespace test-namespace
--name example
-```
-The output is similar as follows:
-
-```shell
-{
- "numInstances" : 1,
- "numRunning" : 1,
- "instances" : [ {
- "instanceId" : 0,
- "status" : {
- "running" : true,
- "error" : "",
- "numRestarts" : 0,
- "numReceived" : 0,
- "numSuccessfullyProcessed" : 0,
- "numUserExceptions" : 0,
- "latestUserExceptions" : [ ],
- "numSystemExceptions" : 0,
- "latestSystemExceptions" : [ ],
- "averageLatency" : 0.0,
- "lastInvocationTime" : 0,
- "workerId" : "c-standalone-fw-localhost-8080"
- }
- } ]
-}
-```
-
-5. At the same terminal as step 4, subscribe the output topic `test_result`.
-
-```shell
-$ bin/pulsar-client consume -s test-sub -n 0 test_result
-```
-
-6. Open a new terminal to produce messages into the input topic `test_src`.
-
-```shell
-$ bin/pulsar-client produce -m "test-messages-`date`" -n 10 test_src
-```
-
-7. At the terminal of step 5, the messages produced by the Exclamation
function is returned. The output is similar as follows:
-
-```shell
------ got message -----
-test-messages-Thu Jul 19 11:59:15 PDT 2018!
------ got message -----
-test-messages-Thu Jul 19 11:59:15 PDT 2018!
------ got message -----
-test-messages-Thu Jul 19 11:59:15 PDT 2018!
------ got message -----
-test-messages-Thu Jul 19 11:59:15 PDT 2018!
------ got message -----
-test-messages-Thu Jul 19 11:59:15 PDT 2018!
------ got message -----
-test-messages-Thu Jul 19 11:59:15 PDT 2018!
------ got message -----
-test-messages-Thu Jul 19 11:59:15 PDT 2018!
------ got message -----
-test-messages-Thu Jul 19 11:59:15 PDT 2018!
------ got message -----
-test-messages-Thu Jul 19 11:59:15 PDT 2018!
------ got message -----
-test-messages-Thu Jul 19 11:59:15 PDT 2018!
-```
-
-### Validate Connectors
-
-> Make sure you have docker available at your laptop. If you haven't installed
docker, you can skip this section.
-
-1. Set up a cassandra cluster.
-
-```shell
-$ docker run -d --rm --name=cassandra -p 9042:9042 cassandra
-```
-
-Make sure that the cassandra cluster is running.
-
-```shell
-// run docker ps to find the docker process for cassandra
-$ docker ps
-```
-
-```shell
-// check if the cassandra is running as expected
-$ docker logs cassandra
-```
-
-```shell
-// check the cluster status
-$ docker exec cassandra nodetool status
-Datacenter: datacenter1
-=======================
-Status=Up/Down
-|/ State=Normal/Leaving/Joining/Moving
--- Address Load Tokens Owns (effective) Host ID
Rack
-UN 172.17.0.2 103.67 KiB 256 100.0%
af0e4b2f-84e0-4f0b-bb14-bd5f9070ff26 rack1
-```
-
-2. Create keyspace and table.
-
-Run cqlsh:
-```shell
-$ docker exec -ti cassandra cqlsh localhost
-Connected to Test Cluster at localhost:9042.
-[cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
-Use HELP for help.
-cqlsh>
-```
-
-In the cqlsh, create the `pulsar_test_keyspace` keyspace and the
`pulsar_test_table` table.
-
-```shell
-cqlsh> CREATE KEYSPACE pulsar_test_keyspace WITH replication =
{'class':'SimpleStrategy', 'replication_factor':1};
-cqlsh> USE pulsar_test_keyspace;
-cqlsh:pulsar_test_keyspace> CREATE TABLE pulsar_test_table (key text PRIMARY
KEY, col text);
-
-```
-
-3. Prepare a cassandra sink yaml file and put it under examples directory as
`cassandra-sink.yml`.
-
-```shell
-$ cat examples/cassandra-sink.yml
-configs:
- roots: "localhost:9042"
- keyspace: "pulsar_test_keyspace"
- columnFamily: "pulsar_test_table"
- keyname: "key"
- columnName: "col"
-```
-
-4. Submit a cassandra sink.
-
-```shell
-$ bin/pulsar-admin sink create --tenant public --namespace default --name
cassandra-test-sink --sink-type cassandra --sink-config-file
examples/cassandra-sink.yml --inputs test_cassandra
-"Created successfully"
-```
-
-```shell
-// get the sink info
-$ bin/pulsar-admin sink get --tenant public --namespace default --name
cassandra-test-sink
-{
- "tenant": "public",
- "namespace": "default",
- "name": "cassandra-test-sink",
- "className": "org.apache.pulsar.io.cassandra.CassandraStringSink",
- "inputSpecs": {
- "test_cassandra": {
- "isRegexPattern": false
- }
- },
- "configs": {
- "roots": "localhost:9042",
- "keyspace": "pulsar_test_keyspace",
- "columnFamily": "pulsar_test_table",
- "keyname": "key",
- "columnName": "col"
- },
- "parallelism": 1,
- "processingGuarantees": "ATLEAST_ONCE",
- "retainOrdering": false,
- "autoAck": true,
- "archive": "builtin://cassandra"
-}
-```
-
-```shell
-// get the running status
-$ bin/pulsar-admin sink status --tenant public --namespace default --name
cassandra-test-sink
-{
- "numInstances" : 1,
- "numRunning" : 1,
- "instances" : [ {
- "instanceId" : 0,
- "status" : {
- "running" : true,
- "error" : "",
- "numRestarts" : 0,
- "numReadFromPulsar" : 0,
- "numSystemExceptions" : 0,
- "latestSystemExceptions" : [ ],
- "numSinkExceptions" : 0,
- "latestSinkExceptions" : [ ],
- "numWrittenToSink" : 0,
- "lastReceivedTime" : 0,
- "workerId" : "c-standalone-fw-localhost-8080"
- }
- } ]
-}
-```
-
-5. Produce messages to the source topic.
-```shell
-$ for i in {0..10}; do bin/pulsar-client produce -m "key-$i" -n 1
test_cassandra; done
-```
-
-6. Check the sink status, and 11 messages are processed.
-
-```shell
-$ bin/pulsar-admin sink status --tenant public --namespace default --name
cassandra-test-sink
-{
- "numInstances" : 1,
- "numRunning" : 1,
- "instances" : [ {
- "instanceId" : 0,
- "status" : {
- "running" : true,
- "error" : "",
- "numRestarts" : 0,
- "numReadFromPulsar" : 11,
- "numSystemExceptions" : 0,
- "latestSystemExceptions" : [ ],
- "numSinkExceptions" : 0,
- "latestSinkExceptions" : [ ],
- "numWrittenToSink" : 11,
- "lastReceivedTime" : 1554833501277,
- "workerId" : "c-standalone-fw-localhost-8080"
- }
- } ]
-}
-```
-
-7. Check results in cassandra.
-
-```shell
-$ docker exec -ti cassandra cqlsh localhost
-Connected to Test Cluster at localhost:9042.
-[cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
-Use HELP for help.
-cqlsh> use pulsar_test_keyspace;
-cqlsh:pulsar_test_keyspace> select * from pulsar_test_table;
-
- key | col
---------+--------
- key-5 | key-5
- key-0 | key-0
- key-9 | key-9
- key-2 | key-2
- key-1 | key-1
- key-3 | key-3
- key-6 | key-6
- key-7 | key-7
- key-4 | key-4
- key-8 | key-8
- key-10 | key-10
-
-(11 rows)
-```
-
-8. Delete the sink.
-
-```shell
-$ bin/pulsar-admin sink delete --tenant public --namespace default --name
cassandra-test-sink
-"Deleted successfully"
-```
-
-### Validate Stateful Functions
-
-Since Pulsar 2.1 release, Pulsar enables bookkeeper table service for stateful
Pulsar functions (as a developer preview).
-
-The following are instructions to validate counter functions.
-
-1. Create a wordcount function.
-
-```shell
-$ bin/pulsar-admin functions create --function-config-file
examples/example-function-config.yaml --jar examples/api-examples.jar --name
word_count --className
org.apache.pulsar.functions.api.examples.WordCountFunction --inputs
test_wordcount_src --output test_wordcount_dest
-"Created successfully"
-```
-
-2. Get function information and status.
-
-```shell
-$ bin/pulsar-admin functions get --tenant test --namespace test-namespace
--name word_count
-{
- "tenant": "test",
- "namespace": "test-namespace",
- "name": "word_count",
- "className": "org.apache.pulsar.functions.api.examples.WordCountFunction",
- "inputSpecs": {
- "test_wordcount_src": {
- "isRegexPattern": false
- }
- },
- "output": "test_wordcount_dest",
- "processingGuarantees": "ATLEAST_ONCE",
- "retainOrdering": false,
- "userConfig": {
- "PublishTopic": "test_result"
- },
- "runtime": "JAVA",
- "autoAck": true,
- "parallelism": 1,
- "resources": {
- "cpu": 1.0,
- "ram": 1073741824,
- "disk": 10737418240
- },
- "cleanupSubscription": true
-}
-```
-
-```shell
-$ bin/pulsar-admin functions status --tenant test --namespace test-namespace
--name word_count
-{
- "numInstances" : 1,
- "numRunning" : 1,
- "instances" : [ {
- "instanceId" : 0,
- "status" : {
- "running" : true,
- "error" : "",
- "numRestarts" : 0,
- "numReceived" : 0,
- "numSuccessfullyProcessed" : 0,
- "numUserExceptions" : 0,
- "latestUserExceptions" : [ ],
- "numSystemExceptions" : 0,
- "latestSystemExceptions" : [ ],
- "averageLatency" : 0.0,
- "lastInvocationTime" : 0,
- "workerId" : "c-standalone-fw-localhost-8080"
- }
- } ]
-}
-```
-
-3. Query the state table for the function: watching on a key called "hello"
-
-```shell
-$ bin/pulsar-admin functions querystate --tenant test --namespace
test-namespace --name word_count -k hello -w
-key 'hello' doesn't exist.
-key 'hello' doesn't exist.
-key 'hello' doesn't exist
-```
-
-4. Produce the messages to source topic `test_wordcount_src`.
-
-Produce 10 messages "hello" to the `test_wordcount_src` topic. The value of
"hello" is updated to 10.
-
-```shell
-$ bin/pulsar-client produce -m "hello" -n 10 test_wordcount_src
-```
-
-Checkout the result in the terminal of step 3.
-
-```shell
-{
- "key": "hello",
- "numberValue": 10,
- "version": 9
-}
-```
-
-Produce another 10 messages "hello". The result is updated to 20.
-
-```shell
-$ bin/pulsar-client produce -m "hello" -n 10 test_wordcount_src
-```
-
-The result in the terminal of step 3 is updated to `20`.
-
-```shell
- "key": "hello",
- "numberValue": 20,
- "version": 19
-```
diff --git a/wiki/release/release-note-guide.md
b/wiki/release/release-note-guide.md
deleted file mode 100644
index 2ae6a51be26..00000000000
--- a/wiki/release/release-note-guide.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# Pulsar Release Note Guide
-
-This guide explains everything about Pulsar release notes.
-
-<!-- TOC -->
-- [Intro to release notes](#intro-to-release-notes)
- - [Basic info](#basic-info)
- - [Maintenance info](#maintenance-info)
-- [Submit release notes](#submit-release-notes)
-
-<!-- /TOC -->
-
-## Intro to release notes
-
-This chapter gives an overview of Pulsar release notes.
-
-### Basic info
-
-[Pulsar release notes](https://pulsar.apache.org/release-notes/) consist of
the following parts.
-
-Release note | Component
----|---
-[Pulsar core](https://pulsar.apache.org/release-notes/#pulsar-release-notes)|
Pulsar
-[Pulsar clients](../../site2/docs/client-libraries.md) |- Java <br><br> -
WebSocket <br><br> - C++ <br><br> - Python <br><br> - Go <br><br> - NodeJs
<br><br> - C#
-
-### Maintenance info
-
-For the [Pulsar Release Note page](https://pulsar.apache.org/release-notes/):
-
-- It is generated automatically using
[release-json-gen.sh](https://github.com/apache/pulsar-site/blob/main/site2/tools/release-json-gen.sh).
-
- For implementation details, see [PIP 112: Generate Release Notes
Automatically](https://github.com/apache/pulsar/wiki/PIP-112:-Generate-Release-Notes-Automatically).
-
-- The info is fetched from the [Pulsar Releases Page -
GitHub](https://github.com/apache/pulsar/releases).
-
-- It is updated when one of the following conditions is met:
-
- - A commit is pushed to the [pulsar-site
repo](https://github.com/apache/pulsar-site).
-
- - A [Pulsar site sync
job](https://github.com/apache/pulsar-site/actions/workflows/ci-pulsar-website-docs-sync.yaml)
is performed (every 6 hours).
-
-## Submit release notes
-
-Follow the steps below to submit release notes for Pulsar and clients (**Java
and WebSocket**).
-
-> **Note**
->
-> For **C++, Python, Go, Node.js, and C#**, you do not need to take care of
them since their release notes are synced from their repos to the [Pulsar
Release Note page](https://pulsar.apache.org/release-notes).
-
-1. Submit a PR to add **separate** release notes for Pulsar and clients
(**Java and WebSocket**) to
[pulsar-site/site2/website-next/release-notes/versioned/](https://github.com/apache/pulsar-site/tree/main/site2/website-next/release-notes/versioned).
-
- Get this PR reviewed and merged.
-
-2. Copy the release note to the [Pulsar Releases Page -
GitHub](https://github.com/apache/pulsar/releases).
-
- <table>
- <thead>
- <tr>
- <th colspan="2">Component</th>
- <th>Step</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td colspan="2">Pulsar core</td>
- <td>Copy the release note content.</td>
- </tr>
- <tr>
- <td rowspan="2">Pulsar clients</td>
- <td> - Java<br><br> - WebSocket <br><br>
- <td>Create independent sections for each client and copy release note
content.<br><br>Example<br><br><img title="Java client release note example"
alt="Java client release note example"
src="../assets/release-note-guide-1.png"></td>
- </tr>
- </tbody>
- </table>
-
- After the new release is published, all the information about the release
is automatically added to the [Pulsar Release Note
page](https://pulsar.apache.org/release-notes/).
-
-3. Check whether the release information is shown on the [Pulsar Release Note
page](https://pulsar.apache.org/release-notes/) after the website is updated
and built successfully.
\ No newline at end of file
diff --git a/wiki/release/release-process.md b/wiki/release/release-process.md
deleted file mode 100644
index d7146192856..00000000000
--- a/wiki/release/release-process.md
+++ /dev/null
@@ -1,574 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-# Release Process
-
-This page contains instructions for Pulsar committers on how to perform a
release.
-
-> **NOTE**: The term `major/minor releases` used throughout this document is
defined as follows:
->
-> * Major releases refer to feature releases, such as 2.10.0, 2.11.0, and so
on.
->
-> * Minor releases refer to bug-fix releases, such as 2.10.1, 2.10.2, and so
on.
-
-
-## Preparation
-
-Open a discussion in [email protected] to notify others that you volunteer to be
the release manager of a specific release. If there are no disagreements, you
can start the release process.
-
-For major releases, you should create a new branch named `branch-2.X.0` once
all PRs with the 2.X.0 milestone are merged. If some PRs with the 2.X.0
milestone are still working in progress and might take much time to complete,
you can move them to the next milestone if they are not important. In this
case, you'd better notify the author in the PR.
-
-For minor releases, if there are no disagreements, you should cherry-pick all
merged PRs with the `release/X.Y.Z` labels into `branch-X.Y`. After these PRs
are cherry-picked, you should add the `cherry-picked/branch-X.Y` labels.
-
-Sometimes some PRs cannot be cherry-picked cleanly, you might need to create a
separate PR and move the `release/X.Y.Z` label from the original PR to it. In
this case, you can ask the author to help create the new PR.
-
-For PRs that are still open, you can choose to delay them to the next release
or ping others to review so that they can be merged.
-
-To verify the release branch is not broken, you can synchronize the branch in
your private repo and open a PR to trigger the CI. Example:
https://github.com/BewareMyPower/pulsar/pull/3
-
-> You can use the following command to catch basic compilation or checkstyle
errors in your local env before cherry-picking.
->
-> ```bash
-> mvn -Pcore-modules,-main -T 1C clean install -DskipTests -Dspotbugs.skip=true
-> ```
-
-## Requirements
-
-If you haven't already done it, [create and publish the GPG
key](https://github.com/apache/pulsar/blob/master/wiki/release/create-gpg-keys.md)
to sign the release artifacts.
-
-Before you start the next release steps, make sure you have installed the
**JDK8** and maven **3.6.1** for Pulsar 2.6 and Pulsar 2.7, and **JDK11** and
Maven **3.6.1** for Pulsar 2.8 onwards. And **clean up the bookkeeper's local
compiled** to make sure the bookkeeper dependency is fetched from the Maven
repo, details to see
https://lists.apache.org/thread/gsbh95b2d9xtcg5fmtxpm9k9q6w68gd2
-
-## Create the release branch
-
-We are going to create a branch from `master` to `branch-v2.X`
-where the tag will be generated and where new fixes will be
-applied as part of the maintenance for the release.
-
-The branch needs only to be created when creating major releases,
-and not for minor releases like `2.3.1`. For minor releases, go to the next
step.
-
-For example, when you create the `v2.3.0` release, the branch `branch-2.3`
will be created; but for `v2.3.1`, we
-keep using the old `branch-2.3`.
-
-In these instructions, I'm referring to a fictitious release `2.X.0`. Change
the release version in the examples accordingly with the real version.
-
-It is recommended to create a fresh clone of the repository to avoid any local
files interfering in the process:
-
-```shell
-git clone [email protected]:apache/pulsar.git
-cd pulsar
-git checkout -b branch-2.X origin/master
-```
-
-Alternatively, you can use a git workspace to create a new, clean directory on
your machine without needing to re-download the project.
-
-```shell
-git worktree add ../pulsar.branch-2.X branch-2.X
-```
-
-If you created a new branch, update the `CI - OWASP Dependency Check` workflow
so that it will run on the new branch. At the time of writing, here is the file
that should be updated:
https://github.com/apache/pulsar/blob/master/.github/workflows/ci-owasp-dependency-check.yaml.
-
-Note also that you should stop the GitHub action for Pulsar versions that are
EOL.
-
-Also, if you created a new branch, please update the `Security Policy and
Supported Versions` page on the website. This page has a table for support
timelines based on when minor releases take place.
-
-## Update project version and tag
-
-During the release process, you are going to initially create
-"candidate" tags, that after verification and approval will
-get promoted to the "real" final tag.
-
-In this process, the maven version of the project will always
-be the final one.
-
-```shell
-# Bump to the release version
-./src/set-project-version.sh 2.X.0
-
-# Some version may not update the right parent version of
`protobuf-shaded/pom.xml`, please double check it.
-
-# Commit
-git commit -m 'Release 2.X.0' -a
-
-# Create a "candidate" tag
-# If you don't sign your commits already, use the following
-export GPG_TTY=$(tty)
-git tag -u [email protected] v2.X.0-candidate-1 -m 'Release v2.X.0-candidate-1'
-# If you already sign your commits using your apache.org email, use the
following
-git tag -s v2.X.0-candidate-1 -m 'Release v2.X.0-candidate-1'
-
-# Verify that you signed your tag before pushing it:
-git tag -v v2.X.0-candidate-1
-
-# Push both the branch and the tag to Github repo
-git push origin branch-2.X
-git push origin v2.X.0-candidate-1
-```
-
-For minor releases, the tag is like `2.3.1`.
-
-## Build and inspect the artifacts
-
-```shell
-mvn clean install -DskipTests
-```
-
-After the build, there will be 4 generated artifacts:
-
-* `distribution/server/target/apache-pulsar-2.X.0-bin.tar.gz`
-* `target/apache-pulsar-2.X.0-src.tar.gz`
-* `distribution/offloaders/target/apache-pulsar-offloaders-2.X.0-bin.tar.gz`
-* directory `distribution/io/target/apache-pulsar-io-connectors-2.x.0-bin`
contains all io connect nars
-
-Inspect the artifacts:
-* Check that the `LICENSE` and `NOTICE` files cover all included jars for the
-bin package)
- - Use script to cross-validate `LICENSE` file with included jars:
- ```
- src/check-binary-license
distribution/server/target/apache-pulsar-2.x.0-bin.tar.gz
- ```
-* Unpack src package: `target/apache-pulsar-2.X.0-src.tar.gz`
- - Run Apache RAT to verify the license headers in the `src` package:
- ```shell
- cd apache-pulsar-2.X.0
- mvn apache-rat:check
- ```
-* Unpack bin package:
`distribution/server/target/apache-pulsar-2.X.0-bin.tar.gz`, Check that the
standalone Pulsar service starts correctly:
- ```shell
- cd apache-pulsar-2.X.0
- cp -r ../../../io/target/apache-pulsar-io-connectors-2.X.0-bin connectors
- bin/pulsar standalone
- ```
-
-* Use instructions in
[Release-Candidate-Validation](https://github.com/apache/pulsar/blob/master/wiki/release/release-candidate-validation.md)
to do some sanity checks on the produced binary distributions.
-
-### Build RPM and DEB packages
-
-```shell
-pulsar-client-cpp/pkg/rpm/docker-build-rpm.sh
-
-pulsar-client-cpp/pkg/deb/docker-build-deb.sh
-```
-
-> For 2.11.0 or higher, you can set the environment variable `BUILD_IMAGE` to
build the base image locally instead of pulling from the DockerHub.
-> Since only a few members have the permission to push the image to DockerHub,
the image might not be the latest, if you failed to build the RPM and DEB
packages, you can run `export BUILD_IMAGE=1` before running these commands.
-
-This will leave the RPM/YUM and DEB repo files in
`pulsar-client-cpp/pkg/rpm/RPMS/x86_64` and
-`pulsar-client-cpp/pkg/deb/BUILD/DEB` directory.
-
-> **NOTE**: If you get error `c++: internal compiler error: Killed (program
cc1plus)` when run `pulsar-client-cpp/pkg/deb/docker-build-deb.sh`. You may
need to expand your docker memory greater than 2GB.
-
-## Sign and stage the artifacts
-
-The `src` and `bin` artifacts need to be signed and uploaded to the dist SVN
-repository for staging.
-
-Before running the script, make sure that the `[email protected]` code signing
key is the default gpg signing key.
-One way to ensure this is to create/edit file `~/.gnupg/gpg.conf` and add a
line
-```
-default-key <key fingerprint>
-```
-where `<key fingerprint>` should be replaced with the private key fingerprint
for the `[email protected]` key. The key fingerprint can be found in `gpg -K`
output.
-
-```shell
-svn co https://dist.apache.org/repos/dist/dev/pulsar pulsar-dist-dev
-cd pulsar-dist-dev
-
-# '-candidate-1' needs to be incremented in case of multiple iteration in
getting
-# to the final release)
-svn mkdir pulsar-2.X.0-candidate-1
-
-cd pulsar-2.X.0-candidate-1
-$PULSAR_PATH/src/stage-release.sh .
-
-svn add *
-svn ci -m 'Staging artifacts and signature for Pulsar release 2.X.0'
-```
-
-## Stage artifacts in maven
-
-Upload the artifacts to ASF Nexus:
-
-```shell
-# remove CPP client binaries (they would file the license/RAT check in
"deploy")
-cd pulsar-client-cpp
-git clean -xfd
-cd ..
-
-export APACHE_USER=$USER
-export APACHE_PASSWORD=$MY_PASSWORD
-export GPG_TTY=$(tty)
-# src/settings.xml from master branch to /tmp/mvn-apache-settings.xml since
it's missing in some branches
-curl -s -o /tmp/mvn-apache-settings.xml
https://raw.githubusercontent.com/apache/pulsar/master/src/settings.xml
-# publish artifacts
-mvn deploy -DskipTests -Papache-release --settings /tmp/mvn-apache-settings.xml
-# publish org.apache.pulsar.tests:integration and it's parent pom
org.apache.pulsar.tests:tests-parent
-mvn deploy -DskipTests -Papache-release --settings
/tmp/mvn-apache-settings.xml -f tests/pom.xml -pl
org.apache.pulsar.tests:tests-parent,org.apache.pulsar.tests:integration
-```
-
-> **NOTE**: The `GPG_TTY` environment variable must be set for all the
following steps. Otherwise, some operations might fail by `gpg failed to sign
the data`.
-
-This will ask for the GPG key passphrase and then upload it to the staging
repository.
-
-> If you have deployed before, re-deploying might fail on
pulsar-presto-connector-original.
->
-> See https://github.com/apache/pulsar/issues/17047.
->
-> You can run `mvn clean deploy` instead of `mvn deploy` as a workaround.
-
-Log in to the ASF Nexus repository at https://repository.apache.org
-
-Click on "Staging Repositories" on the left sidebar and then select the current
-Pulsar staging repo. This should be called something like
`orgapachepulsar-XYZ`.
-
-Use the "Close" button to close the repository. This operation will take few
-minutes. Once complete click "Refresh" and now a link to the staging repository
-should be available, something like
-https://repository.apache.org/content/repositories/orgapachepulsar-XYZ
-
-## Publish release candidate docker images
-
-Run the following commands:
-
-```shell
-cd $PULSAR_HOME/docker
-./build.sh
-DOCKER_USER=<your-username> DOCKER_PASSWORD=<your-password>
DOCKER_ORG=<your-username> ./publish.sh
-```
-
-After that, the following images will be built and pushed to your own
DockerHub account.
-- pulsar
-- pulsar-all
-- pulsar-grafana
-- pulsar-standalone
-
-
-## Run the vote
-
-Send an email to the Pulsar Dev mailing list:
-
-```
-To: [email protected]
-Subject: [VOTE] Pulsar Release 2.X.0 Candidate 1
-
-This is the first release candidate for Apache Pulsar, version 2.X.0.
-
-It fixes the following issues:
-https://github.com/apache/pulsar/milestone/8?closed=1
-
-*** Please download, test and vote on this release. This vote will stay open
-for at least 72 hours ***
-
-Note that we are voting upon the source (tag), binaries are provided for
-convenience.
-
-Source and binary files:
-https://dist.apache.org/repos/dist/dev/pulsar/pulsar-2.X.0-candidate-1/
-
-SHA-512 checksums:
-028313cbbb24c5647e85a6df58a48d3c560aacc9
apache-pulsar-2.X.0-SNAPSHOT-bin.tar.gz
-f7cc55137281d5257e3c8127e1bc7016408834b1
apache-pulsar-2.x.0-SNAPSHOT-src.tar.gz
-
-Maven staging repo:
-https://repository.apache.org/content/repositories/orgapachepulsar-169/
-
-The tag to be voted upon:
-v2.X.0-candidate-1 (21f4a4cffefaa9391b79d79a7849da9c539af834)
-https://github.com/apache/pulsar/releases/tag/v2.X.0-candidate-1
-
-Pulsar's KEYS file containing PGP keys you use to sign the release:
-https://dist.apache.org/repos/dist/dev/pulsar/KEYS
-
-Docker images:
-
-<link of the pulsar images>
-
-<link of the pulsar-all image>
-
-Please download the source package, and follow the README to build
-and run the Pulsar standalone service.
-```
-
-The vote should be open for at least 72 hours (3 days). Votes from Pulsar PMC
members
-will be considered binding, while anyone else is encouraged to verify the
release and
-vote as well.
-
-If the release is approved here, you can then proceed to the next step.
Otherwise, you should repeat the previous steps and prepare another candidate
release to vote.
-
-## Move master branch to next version
-
-> **NOTE**: This step is for major releases only.
-
-You need to move the master version to the next iteration `Y` (`X + 1`).
-
-```shell
-git checkout master
-./src/set-project-version.sh 2.Y.0-SNAPSHOT
-
-git commit -m 'Bumped version to 2.Y.0-SNAPSHOT' -a
-```
-
-Since this needs to be merged into `master`, you need to follow the regular
process
-and create a Pull Request on GitHub.
-
-## Promote the release
-
-Create the final git tag:
-
-```shell
-git tag -u [email protected] v2.X.0 -m 'Release v2.X.0'
-git push origin v2.X.0
-```
-
-Promote the artifacts on the release location(repo
https://dist.apache.org/repos/dist/release limited to PMC, You may need a PMC
member's help if you are not one):
-```shell
-svn move -m "Release Apache Pulsar 2.X.Y"
https://dist.apache.org/repos/dist/dev/pulsar/pulsar-2.X.0-candidate-1 \
- https://dist.apache.org/repos/dist/release/pulsar/pulsar-2.X.0
-```
-
-Promote the Maven staging repository for release. Login to
`https://repository.apache.org` and
-select the staging repository associated with the RC candidate that was
approved. The naming
-will be like `orgapachepulsar-XYZ`. Select the repository and click on
"Release". Artifacts
-will now be made available on Maven central.
-
-## Publish Docker Images
-
-Copy the approved candidate docker images from your personal account to
apachepulsar org.
-
-```bash
-PULSAR_VERSION=2.x.x
-OTHER_DOCKER_USER=otheruser
-for image in pulsar pulsar-all pulsar-grafana pulsar-standalone; do
- docker pull "${OTHER_DOCKER_USER}/$image:${PULSAR_VERSION}" && {
- docker tag "${OTHER_DOCKER_USER}/$image:${PULSAR_VERSION}"
"apachepulsar/$image:${PULSAR_VERSION}"
- echo "Pushing apachepulsar/$image:${PULSAR_VERSION}"
- docker push "apachepulsar/$image:${PULSAR_VERSION}"
- }
-done
-```
-
-If you don't have the permission, you can ask someone with access to
apachepulsar org to do that.
-
-## Release Helm Chart
-
-**This step can be skipped if the major version number is not the latest.**
-
-1. Bump the image version in the Helm Chart:
[charts/pulsar/values.yaml](https://github.com/apache/pulsar-helm-chart/blob/master/charts/pulsar/values.yaml)
-
-2. Bump the chart version and `appVersion` in the Helm Chart to the released
version:
[charts/pulsar/Chart.yaml](https://github.com/apache/pulsar-helm-chart/blob/master/charts/pulsar/Chart.yaml)
-
-3. Send a pull request for reviews and get it merged.
-
-4. Once it is merged, the chart will be automatically released to Github
releases at https://github.com/apache/pulsar-helm-chart and updated to
https://pulsar.apache.org/charts.
-
-## Publish Python Clients
-
-> **NOTES**:
->
-> 1. You need to create an account on PyPI: https://pypi.org/account/register/
->
-> 2. Ask anyone that has been a release manager before to add you as a
maintainer for pulsar-docker on PyPI
->
-> 3. Once you have completed the following steps in this section, you can
check if the wheels are uploaded successfully in [Download
files](https://pypi.org/project/pulsar-client/#files). Remember to switch to
the correct version in [Release
history](https://pypi.org/project/pulsar-client/#history)).
-
-### Linux
-
-There is a script that builds and packages the Python client inside Docker
images.
-
-> Make sure you run following command at the release tag!!
-
-```shell
-pulsar-client-cpp/docker/build-wheels.sh
-```
-
-The wheel files will be left under `pulsar-client-cpp/python/wheelhouse`. Make
sure all the files have `manylinux` in the filenames. Otherwise, those files
will not be able to upload to PyPI.
-
-Run the following command to push the built wheel files.
-
-```shell
-cd pulsar-client-cpp/python/wheelhouse
-pip install twine
-twine upload pulsar_client-*.whl
-```
-
-### MacOS
-
-There is a script that builds and packages the Python client inside Docker
images.
-
-```shell
-pulsar-client-cpp/python/build-mac-wheels.sh
-```
-
-The wheel files will be generated at each platform directory under
`pulsar-client-cpp/python/pkg/osx/`.
-Then you can run `twin upload` to upload those wheel files.
-
-## Update Python Client docs
-
-After publishing the python client docs, run the following script from the
apache/pulsar-site `main` branch:
-
-```shell
-PULSAR_VERSION=2.X.Y ./site2/tools/api/python/build-docs-in-docker.sh
-```
-
-Note that it builds the docs within a docker image, so you'll need to have
docker running.
-
-Once the docs are generated, you can add them and submit them in a PR. The
expected doc output is `site2/website/static/api/python`.
-
-## Publish Homebrew libpulsar package
-
-**This step can be skipped if the major version number is not the latest.**
-
-Release a new version of libpulsar for Homebrew, You can follow the example
[here](https://github.com/Homebrew/homebrew-core/pull/53514).
-
-## Update swagger file
-
-> For major releases, the swagger file update happen under `master` branch.
-> while for minor releases, swagger file is created from branch-2.x, and need
copy to a new branch based on master.
-
-```shell
-git checkout branch-2.X
-mvn -am -pl pulsar-broker install -DskipTests -Pswagger
-git checkout master
-git checkout -b fix/swagger-file
-mkdir -p site2/website/static/swagger/2.X.0
-cp pulsar-broker/target/docs/*.json site2/website/static/swagger/2.X.0
-```
-Send out a PR request for review.
-
-## Write release notes
-
-See [Pulsar Release Notes Guide](./release-note-guide.md).
-
-## Update the site
-
-> **NOTE**: This step is for major releases only.
-
-For major releases, such as 2.10.0, the website is updated based on the
`master` branch.
-
-1. Create a new branch off master.
-
-```shell
-git checkout -b doc_release_<release-version>
-```
-
-2. Go to the website directory.
-
-```shell
-cd site2/website
-```
-
-3. Generate a new version of the documentation.
-
-```shell
-yarn install
-yarn run version <release-version>
-```
-
-After you run this command, a new folder `version-<release-version>` is added
in the `site2/website/versioned_docs` directory, a new sidebar file
`version-<release-version>-sidebars.json` is added in the
`site2/website/versioned_sidebars` directory, and the new version is added in
the `versions.json` file, shown as follows:
-
- ```shell
- versioned_docs/version-<release-version>
- versioned_sidebars/version-<release-version>-sidebars.json
- ```
-
-> **NOTE**: You can move the latest version under the old version in the
`versions.json` file. Make sure the Algolia index works before moving 2.X.0 as
the current stable.
-
-4. Update the `releases.json` file by adding `<release-version>` to the second
of the list (this is to make the search work. After your PR is merged, the
Pulsar website is built and tagged for search, you can change it to the first
list).
-
-5. Send out a PR request for review.
-
- After your PR is approved and merged to master, the website is published
automatically after the new website is built. The website is built every 6
hours.
-
-6. Check the new website after the website is built.
- Open https://pulsar.apache.org in your browsers to verify all the changes
are alive. If the website build succeeds but the website is not updated, you
can try to sync the git repository. Navigate to https://selfserve.apache.org/
and click the "Synchronize Git Repositories" and then select apache/pulsar.
-
-7. Publish the release on GitHub, and copy the same release notes:
https://github.com/apache/pulsar/releases.
-
-8. Update the deploy version to the current release version in
`deployment/terraform-ansible/deploy-pulsar.yaml`.
-
-9. Generate the doc set and sidebar file for the next major release `2.X.x`
based on the `site2/docs` folder. You can follow steps 1, 2, and 3, and submit
those files to the `apache/pulsar` repository. This step is a preparation for
the `2.X.x` release.
-
-> **NOTE**: Starting from 2.8.0, you don't need to generate an independent doc
set or update the Pulsar site for minor releases, such as 2.8.1, 2.8.2, and so
on. Instead, the generic doc set 2.8.x is used.
-
-## Announce the release
-
-Once the release artifacts are available in the Apache Mirrors and the website
is updated,
-we need to announce the release.
-
-Send an email to these lines:
-
-```
-To: [email protected], [email protected], [email protected]
-Subject: [ANNOUNCE] Apache Pulsar 2.X.0 released
-
-The Apache Pulsar team is proud to announce Apache Pulsar version 2.X.0.
-
-Pulsar is a highly scalable, low latency messaging platform running on
-commodity hardware. It provides simple pub-sub semantics over topics,
-guaranteed at-least-once delivery of messages, automatic cursor management for
-subscribers, and cross-datacenter replication.
-
-For Pulsar release details and downloads, visit:
-
-https://pulsar.apache.org/download
-
-Release Notes are at:
-https://pulsar.apache.org/release-notes
-
-We would like to thank the contributors that made the release possible.
-
-Regards,
-
-The Pulsar Team
-```
-
-Send the email in plain text mode since the [email protected] mailing list
will reject messages with text/html content.
-In Gmail, there's an option to set `Plain text mode` in the `⋮`/ `More
options` menu.
-
-
-## Write a blog post for the release (optional)
-
-It is encouraged to write a blog post to summarize the features introduced in
this release,
-especially for feature releases.
-You can follow the example [here](https://github.com/apache/pulsar/pull/2308)
-
-## Remove old releases
-
-Remove the old releases (if any). You only need the latest release there, and
older releases are
-available through the Apache archive:
-
-```shell
-# Get the list of releases
-svn ls https://dist.apache.org/repos/dist/release/pulsar
-
-# Delete each release (except for the last one)
-svn rm https://dist.apache.org/repos/dist/release/pulsar/pulsar-2.Y.0
-```
-
-## Move release branch to next version
-
-Run the following commands in the release branches.
-
-```shell
-./src/set-project-version.sh 2.X.Y-SNAPSHOT
-
-git commit -m 'Bumped version to 2.X.Y-SNAPSHOT' -a
-git push origin branch-2.X
-```