This is an automated email from the ASF dual-hosted git repository.

jark pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss.git


The following commit(s) were added to refs/heads/main by this push:
     new 920eb33b9 [infra] Add release guide documentation and update scripts
920eb33b9 is described below

commit 920eb33b99646dd8f687224feb637dca2bfacd21
Author: Jark Wu <[email protected]>
AuthorDate: Thu Oct 23 20:10:48 2025 +0800

    [infra] Add release guide documentation and update scripts
---
 tools/releasing/create_binary_release.sh           |   2 +-
 ...e_source_release.sh => create_helm_packages.sh} |  36 +-
 tools/releasing/create_source_release.sh           |   2 +-
 tools/releasing/deploy_staging_jars.sh             |  44 +++
 tools/releasing/update_branch_version.sh           |  61 ++++
 ...ded-release.md => creating-a-fluss-release.mdx} | 385 +++++++++++++++++----
 .../creating-a-fluss-shaded-release.md             |  10 +-
 .../how-to-release/release-manager-preparation.md  |  16 +
 ...ded-release.md => verifying-a-fluss-release.md} |  31 +-
 .../verifying-a-fluss-shaded-release.md            |   2 +-
 website/docs/maintenance/operations/upgrading.md   |   4 +-
 11 files changed, 493 insertions(+), 100 deletions(-)

diff --git a/tools/releasing/create_binary_release.sh 
b/tools/releasing/create_binary_release.sh
index d894a88a5..2598e9d95 100755
--- a/tools/releasing/create_binary_release.sh
+++ b/tools/releasing/create_binary_release.sh
@@ -54,7 +54,7 @@ fi
 cd ..
 
 FLUSS_DIR=`pwd`
-RELEASE_DIR=${FLUSS_DIR}/tools/releasing/release
+RELEASE_DIR=${FLUSS_DIR}/tools/release
 mkdir -p ${RELEASE_DIR}
 
 ###########################
diff --git a/tools/releasing/create_source_release.sh 
b/tools/releasing/create_helm_packages.sh
similarity index 64%
copy from tools/releasing/create_source_release.sh
copy to tools/releasing/create_helm_packages.sh
index d83bb9863..f4bc11251 100755
--- a/tools/releasing/create_source_release.sh
+++ b/tools/releasing/create_helm_packages.sh
@@ -56,29 +56,25 @@ fi
 cd ..
 
 FLUSS_DIR=`pwd`
-RELEASE_DIR=${FLUSS_DIR}/tools/releasing/release
-CLONE_DIR=${RELEASE_DIR}/fluss-tmp-clone
+HELM_RELEASE_DIR=${FLUSS_DIR}/tools/release/helm-chart/${RELEASE_VERSION}-rc${RELEASE_CANDIDATE}
 
-echo "Creating source package"
+echo "Creating helm chart package"
 
-mkdir -p ${RELEASE_DIR}
+mkdir -p ${HELM_RELEASE_DIR}
 
-# create a temporary git clone to ensure that we have a pristine source release
-git clone ${FLUSS_DIR} ${CLONE_DIR}
-cd ${CLONE_DIR}
+cd ${HELM_RELEASE_DIR}
 
-rsync -a \
-  --exclude ".git" --exclude ".gitignore" --exclude ".gitattributes" \
-  --exclude ".github" --exclude "target" \
-  --exclude ".idea" --exclude "*.iml" --exclude ".DS_Store" --exclude 
"build-target" \
-  --exclude "website/" \
-  --exclude "*/dependency-reduced-pom.xml" \
-  . fluss-$RELEASE_VERSION
+# create helm package tgz for fluss
+helm package ${FLUSS_DIR}/docker/helm
+# create prov file for helm package
+helm gpg sign fluss-${RELEASE_VERSION}.tgz
 
-tar $TAR_OPTIONS -czf  ${RELEASE_DIR}/fluss-${RELEASE_VERSION}-src.tgz 
fluss-$RELEASE_VERSION
-gpg --armor --detach-sig ${RELEASE_DIR}/fluss-$RELEASE_VERSION-src.tgz
-cd ${RELEASE_DIR}
-$SHASUM fluss-$RELEASE_VERSION-src.tgz > fluss-$RELEASE_VERSION-src.tgz.sha512
+# create sha512 and asc files
+$SHASUM fluss-${RELEASE_VERSION}.tgz > fluss-${RELEASE_VERSION}.tgz.sha512
+$SHASUM fluss-${RELEASE_VERSION}.tgz.prov > 
fluss-${RELEASE_VERSION}.tgz.prov.sha512
+gpg --armor --detach-sig ${HELM_RELEASE_DIR}/fluss-$RELEASE_VERSION.tgz
+gpg --armor --detach-sig ${HELM_RELEASE_DIR}/fluss-$RELEASE_VERSION.tgz.prov
 
-cd ${CURR_DIR}
-rm -rf ${CLONE_DIR}
+# create index.yaml
+cd ..
+helm repo index .
\ No newline at end of file
diff --git a/tools/releasing/create_source_release.sh 
b/tools/releasing/create_source_release.sh
index d83bb9863..3bdc9e563 100755
--- a/tools/releasing/create_source_release.sh
+++ b/tools/releasing/create_source_release.sh
@@ -56,7 +56,7 @@ fi
 cd ..
 
 FLUSS_DIR=`pwd`
-RELEASE_DIR=${FLUSS_DIR}/tools/releasing/release
+RELEASE_DIR=${FLUSS_DIR}/tools/release
 CLONE_DIR=${RELEASE_DIR}/fluss-tmp-clone
 
 echo "Creating source package"
diff --git a/tools/releasing/deploy_staging_jars.sh 
b/tools/releasing/deploy_staging_jars.sh
new file mode 100755
index 000000000..458434698
--- /dev/null
+++ b/tools/releasing/deploy_staging_jars.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+#
+# 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.
+#
+
+##
+## Variables with defaults (if not overwritten by environment)
+##
+MVN=${MVN:-mvn}
+
+# fail immediately
+set -o errexit
+set -o nounset
+# print command before executing
+set -o xtrace
+
+CURR_DIR=`pwd`
+if [[ `basename $CURR_DIR` != "tools" ]] ; then
+  echo "You have to call the script from the tools/ dir"
+  exit 1
+fi
+
+###########################
+COMMON_OPTIONS="-Prelease -DskipTests -DretryFailedDeploymentCount=10 "
+
+cd ..
+
+echo "Deploying to repository.apache.org"
+$MVN clean deploy $COMMON_OPTIONS
diff --git a/tools/releasing/update_branch_version.sh 
b/tools/releasing/update_branch_version.sh
new file mode 100755
index 000000000..5c4cba3da
--- /dev/null
+++ b/tools/releasing/update_branch_version.sh
@@ -0,0 +1,61 @@
+#!/usr/bin/env bash
+
+#
+# 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.
+#
+
+##
+## Variables with defaults (if not overwritten by environment)
+##
+MVN=${MVN:-mvn}
+
+# fail immediately
+set -o errexit
+set -o nounset
+# print command before executing
+set -o xtrace
+
+CURR_DIR=`pwd`
+if [[ `basename $CURR_DIR` != "tools" ]] ; then
+  echo "You have to call the script from the tools/ dir"
+  exit 1
+fi
+
+###########################
+
+OLD_VERSION=${OLD_VERSION}
+NEW_VERSION=${NEW_VERSION}
+
+
+if [ -z "${OLD_VERSION}" ]; then
+       echo "OLD_VERSION is unset"
+       exit 1
+fi
+
+if [ -z "${NEW_VERSION}" ]; then
+       echo "NEW_VERSION is unset"
+       exit 1
+fi
+
+cd ..
+
+#change version in all pom files
+find . -name 'pom.xml' -type f -exec perl -pi -e 
's#<version>'$OLD_VERSION'</version>#<version>'$NEW_VERSION'</version>#; 
s#-'$OLD_VERSION'</version>#-'$NEW_VERSION'</version>#' {} \;
+
+git commit -am "Update version to $NEW_VERSION"
+
+echo "Don't forget to push the change."
diff --git 
a/website/community/how-to-release/creating-a-fluss-shaded-release.md 
b/website/community/how-to-release/creating-a-fluss-release.mdx
similarity index 52%
copy from website/community/how-to-release/creating-a-fluss-shaded-release.md
copy to website/community/how-to-release/creating-a-fluss-release.mdx
index 0ca0b6892..4ed4d7acf 100644
--- a/website/community/how-to-release/creating-a-fluss-shaded-release.md
+++ b/website/community/how-to-release/creating-a-fluss-release.mdx
@@ -1,9 +1,13 @@
 ---
-title: Creating a Fluss Shaded Release
+title: Creating a Fluss Release
 sidebar_position: 2
+description: This documentation introduces about how to create a Fluss release.
 ---
 
-# Creating a Fluss Shaded Release
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Creating a Fluss Release
 
 :::note
 This is based on the release guide of the [Apache Flink 
project](https://cwiki.apache.org/confluence/display/FLINK/Creating+a+Flink+Release).
@@ -43,67 +47,196 @@ In general, the community prefers to have a rotating set 
of 3-5 Release Managers
 
 ## Prepare for the release
 
-#### 0. One-time Release Manager setup
+### 0. One-time Release Manager setup
 
 Before your first release, you should perform one-time configuration steps. 
This will set up your security keys for signing the release and access to 
various release repositories. Please check the **[Release Manager 
Preparation](release-manager-preparation.md)** guide for details.
 
 To prepare for each release, you should audit the project status in the GitHub 
issue tracker, and do necessary bookkeeping. Finally, you should create a 
release branch from which individual release candidates will be built.
 
-#### 1. Setup environment variables
+### 1. Create a new Milestone in GitHub
+
+When contributors resolve an issue in GitHub, they are tagging it with a 
release milestone that will contain their changes. With the release currently 
underway, new issues should be resolved against a subsequent future release. 
Therefore, you should create a new milestone item for this subsequent release, 
as follows:
+
+In [GitHub Milestones](https://github.com/apache/fluss/milestones) page, add a 
new milestone: choose the next minor version number compared to the one 
currently underway. For example, add `v0.9` milestone if current version is 
`v0.8`. We only track the major and minor version, so no need to create 
milestone for bugfix versions, e.g., `v0.9.1`. 
+
+(Note: Only PMC members have access to the project administration. If you do 
not have access, ask on the mailing list or Slack for assistance.)
+
+### 2. Triage release-blocking issues in GitHub
+
+There could be outstanding release-blocking issues, which should be triaged 
before proceeding to build a release candidate. We track them by assigning a 
specific Fix version field even before the issue resolved.
+
+The list of release-blocking issues is available at the [issue 
page](https://github.com/apache/fluss/issues?q=is%3Aissue%20state%3Aopen%20milestone%3Av0.8)
 (please update the `milestone` condition to the current version name). Triage 
each unresolved issue with one of the following resolutions:
+
+- If the issue has been resolved and issue was not updated, resolve it 
accordingly.
+- If the issue has not been resolved and it is acceptable to defer this until 
the next release, update the `Milestone` field to the new version you just 
created. Please consider discussing this with stakeholders and the dev@ mailing 
list, as appropriate. Use the "Bulk Change" functionality of GitHub Issue to 
update a batch of unresolved issues to new milestone version.
+- **If the issue has not been resolved and it is not acceptable to release 
until it is fixed (i.e., blocker issues), the release cannot proceed.** 
Instead, work with the Fluss community to resolve the issue. Add 
`priority=blocker` label to such issues.
+- Documentation issues for new supported features are treated as **blocker 
issues**. 
+
+### 3. Add Milestone for all resolved issues
+
+Use the [issue 
filter](https://github.com/apache/fluss/issues?q=is%3Aissue%20state%3Aclosed%20reason%3Acompleted%20no%3Amilestone%20(-label%3Aduplicate%20AND%20-label%3Ainvalid%20AND%20-label%3Aquestion%20AND%20-label%3Awontfix%20AND%20-label%3A%22help%20wanted%22%20))
 to list all the closed issues without tagging Milestone during this version.
+
+Then, review each issue and apply labels (`invalid` or `question` or `wontfix` 
or `help wanted`) to those that were not actually resolved in this version 
(e.g., closed as non-issues or support requests). For the remaining genuinely 
resolved issues, use the “Bulk Change” feature to assign them to the current 
release milestone.
+
+This ensures the milestone accurately reflects all the issues delivered in the 
release.
+
+### 4. Verify Java and Maven Version
+
+Run `mvn -v` and `java -version` on your local machine. All of the following 
steps require to use **Maven 3.8.6** and **Java 11**. Modify your `PATH` 
environment variable accordingly if needed.
+
+
+### 5. Clone Fluss into a fresh workspace
+
+Clone the Fluss repository into a fresh workspace. This is important to ensure 
that you are working with a clean state.
+
+```bash
+git clone [email protected]:apache/fluss.git
+```
+
+### 6. Setup local environment variables
 
 Set up a few environment variables to simplify commands that follow. (We use 
bash Unix syntax in this guide.)
 
 ```bash
-RELEASE_VERSION="1.0-incubating"
-RELEASE_VERSION_SHORT="1.0"
-NEXT_VERSION="2.0-incubating"
+RELEASE_VERSION="0.8.0-incubating"
+SHORT_RELEASE_VERSION="0.8"
+CURRENT_SNAPSHOT_VERSION="$SHORT_RELEASE_VERSION-SNAPSHOT"
+NEXT_SNAPSHOT_VERSION="0.9-SNAPSHOT"
+SHORT_NEXT_SNAPSHOT_VERSION="0.9"
+```
+
+### 7. Create a release branch
+
+<Tabs groupId="release-tabs">
+  <TabItem value="major" label="Major release" default>
+Create a release branch from the `main` branch in the cloned Fluss repository. 
This branch will be used to build the release candidate.
+
+```bash
+$ git checkout main
+$ git checkout -b release-${RELEASE_VERSION_SHORT}
+$ git push origin release-${RELEASE_VERSION_SHORT}
 ```
 
-#### 2. Verify Java and Maven Version
+Update the version in the Helm Chart in: 
+- `docker/helm/Chart.yaml`
+- `docker/helm/values.yaml`
+- `docker/helm/README.md`
 
-All of the following steps require to use **Maven 3.8.6** and **Java 8**. 
Modify your `PATH` environment variable accordingly if needed.
+For example, if you are releaseing a major version `0.8.0`, you should replace 
all the snapshot version `0.8-SNAPSHOT` to the release version `0.8.0`. 
 
-#### 3. Clone fluss-shaded into a fresh workspace
 
-Clone the Fluss repository into a fresh workspace. This is important to ensure 
that you are working with a clean state.
+And commit/push the version bump:
 
 ```bash
-git clone [email protected]:apache/fluss-shaded.git
+$ git commit -m "Bump version to x.y.z" docker/helm/Chart.yaml 
docker/helm/values.yaml docker/helm/README.md
+$ git push origin release-${RELEASE_VERSION_SHORT}
 ```
 
-#### 4. Create a release branch
+  </TabItem>
 
-Create a release branch from the `main` branch. This branch will be used to 
build the release candidate.
+  <TabItem value="bugfix" label="Bugfix release">
+If you're creating a new bugfix release (e.g., 0.9.1 instead of 0.9.0), you do 
not need to create a release branch. You can skip this step can check out the 
the already existing branch for that version:
 
 ```bash
-$ cd tools
-tools $ git checkout main
-tools $ git checkout -b release-${RELEASE_VERSION_SHORT}
-tools $ git push origin release-${RELEASE_VERSION_SHORT}
+$ git checkout release-$SHORT_RELEASE_VERSION
+```
+
+Update the version in the Helm Chart in: 
+- `docker/helm/Chart.yaml`
+- `docker/helm/values.yaml`
+- `docker/helm/README.md`
+
+For example, if you are releaseing a bugfix version `0.8.1`, you should 
replace all the previous version `0.8.0` to the new version `0.8.1`. 
+
+
+And commit/push the version bump:
+
+```bash
+$ git commit -m "Bump version to x.y.z" docker/helm/Chart.yaml 
docker/helm/values.yaml docker/helm/README.md
+$ git push origin release-${RELEASE_VERSION_SHORT}
 ```
 
-#### 5. Bump version for the main branch
+  </TabItem>
+</Tabs>
+
+
+
 
+### 8. Bump version for the main branch
+
+<Tabs groupId="release-tabs">
+  <TabItem value="major" label="Major release" default>
 After creating the release branch, you should bump the version of the main 
branch to the next version. This is important to ensure that the next 
development cycle starts with the correct version.
 
 ```bash
+$ cd tools
 tools $ git checkout main
-tools $ OLD_VERSION=$RELEASE_VERSION NEW_VERSION=$NEXT_VERSION 
releasing/update_branch_version.sh
+tools $ OLD_VERSION=$CURRENT_SNAPSHOT_VERSION NEW_VERSION=$NEXT_VERSION 
releasing/update_branch_version.sh
 tools $ git push origin main
 ```
 
-The newly created branch and updated master branch need to be pushed to the 
official repository.
+Besides, in the `main` branch, create a new "Upgrade Notes" markdown file for 
the next version. The file name should be `upgrade-notes-x.y.md` (replace the 
`x.y` to the next version number, e.g., `0.9`) under path 
`website/docs/maintenance/operations/` with following initial content.
+
+```
+---
+title: Upgrade Notes
+sidebar_position: 3
+---
+
+# Upgrade Notes from v0.x to v0.y
+```
+
+Additionally, for the upgrade notes page of the version currently being 
released (e.g., `upgrade-notes-0.8.md`), add `sidebar_class_name: hidden` front 
matter to hide it from the sidebar.
+
+Commit the documentation changes, and push to the official repository.
+
+```bash
+$ git commit -m "[docs] Create upgrade notes for $NEXT_VERSION"
+$ git push origin main
+```
+  </TabItem>
+
+  <TabItem value="bugfix" label="Bugfix release">
+If you're creating a new bugfix release, you can skip this step. 
+  </TabItem>
+</Tabs>
+
+### 9. Pull Requests for Release Blog and Downloads
+
+<Tabs groupId="release-tabs">
+  <TabItem value="major" label="Major release" default>
+
+Create a pull request for the release announcement blog for this version, see 
the [previous release blogs](https://fluss.apache.org/blog/tags/releases/).
+
+Besides, Create a pull request to add download links for the release on the 
Download page `website/src/pages/downloads.md`.
+
+  </TabItem>
+
+  <TabItem value="bugfix" label="Bugfix release">
+Create a pull request to update the download links on the Downloads page 
(`website/src/pages/downloads.md`) to point to the newly released bugfix 
version.
+  </TabItem>
+</Tabs>
+
+**Don’t merge the PRs before finalizing the release.**
+
+
+-------------
+
 
 **Checklist to proceed to the next step**
 
 - Release Manager’s GPG key is published to 
[dist.apache.org](https://dist.apache.org/repos/dist/release/incubator/fluss/KEYS)
 - Release Manager’s GPG key is configured in git configuration
 - Release Manager's GPG key is configured as the default gpg key.
-- Release Manager has `org.apache.fluss` listed under `Staging Profiles` in 
Nexus
+- Release Manager has `org.apache.fluss` listed under `Staging Profiles` in 
[Apache Nexus repository](https://repository.apache.org/).
 - Release Manager’s Nexus User Token is configured in `settings.xml`
 - There are no release blocking GitHub issues
-- Release branch (`release-x.0`) has been created and pushed
-- Main branch has been updated to the next version and pushed
+- Update compatibility table between versions 
(`website/docs/maintenance/operations/upgrading.md`).
+- (major only) Update upgrade notes for the current and next version 
(`website/docs/maintenance/operations/upgrade-notes-x.y.md`)
+- (major only) Release branch (`release-x.y`) has been created and pushed
+- (major only) Main branch has been updated to the next version and pushed
+- (major only) Pull request for the release announcement blog
+- Pull request for updating download links
 
 ## Build a release candidate
 
@@ -132,7 +265,7 @@ Tag the release commit:
 git tag -s ${TAG} -m "${TAG}"
 ```
 
-### 2. Stage source release files
+### 2. Create source release files
 
 First, we build the source release:
 
@@ -142,7 +275,47 @@ tools $ RELEASE_VERSION=$RELEASE_VERSION 
releasing/create_source_release.sh
 
 This command creates a source tarball and signs it under `tools/release` 
directory.
 
-Next, copy the source release files to the dev repository of dist.apache.org.
+
+### 3. Create binary release files
+
+Then, we create the binary convenience release files:
+
+```bash
+tools $ RELEASE_VERSION=$RELEASE_VERSION releasing/create_binary_release.sh
+```
+
+This command creates a binary tarball and signs it under `tools/release` 
directory.
+
+### 4. Create Helm Chart package
+
+Then, we create the Helm Chart packages:
+
+```bash
+tools $ RELEASE_VERSION=$RELEASE_VERSION RELEASE_CANDIDATE=$RC_NUM 
releasing/create_helm_packages.sh
+```
+
+This command creates a helm tgz and prov files under 
`tools/release/helm-chart` directory like following:
+
+```bash
+$ tree tools/release/helm-chart
+tools/release/helm-chart
+├── 0.8.0-incubating-rc1
+│   ├── fluss-0.8.0-incubating.tgz
+│   ├── fluss-0.8.0-incubating.tgz.asc
+│   ├── fluss-0.8.0-incubating.tgz.prov
+│   ├── fluss-0.8.0-incubating.tgz.prov.asc
+│   ├── fluss-0.8.0-incubating.tgz.prov.sha512
+│   └── fluss-0.8.0-incubating.tgz.sha512
+└── index.yaml
+
+2 directories, 7 files
+```
+
+
+### 4. Stage source & binary & helm releases
+
+
+Next, copy the source and binary release files to the dev repository of 
dist.apache.org.
 
 (1) If you have not already, check out the Fluss section of the dev repository 
on dist.apache.org via Subversion. In a fresh directory (e.g., `tools/target`):
 
@@ -155,27 +328,68 @@ tools/target $ svn checkout 
https://dist.apache.org/repos/dist/dev/incubator/flu
 (2) Make a directory for the new release:
 
 ```bash
-mkdir fluss/fluss-shaded-${RELEASE_VERSION}-rc${RC_NUM}
+tools/target $ mkdir fluss/fluss-${RELEASE_VERSION}-rc${RC_NUM}
 ```
 
-(3) Copy fluss-shaded source distributions, hashes, and GPG signature:
+(3) Copy fluss source and binary distributions, hashes, and GPG signature:
 
 ```bash
-tools/target $ mv ../release/* 
fluss/fluss-shaded-${RELEASE_VERSION}-rc${RC_NUM}
+tools/target $ mv ../release/fluss-* fluss/fluss-${RELEASE_VERSION}-rc${RC_NUM}
 ```
 
-(4) Add and commit all the files.
+(4) Make a directory for the new helm packages:
 
 ```bash
-cd fluss
-svn add fluss-shaded-${RELEASE_VERSION}-rc${RC_NUM}
-svn commit -m "Add fluss-shaded-${RELEASE_VERSION}-rc${RC_NUM}"
+tools/target $ mkdir -p fluss/helm-chart
+```
+
+(5) Copy fluss helm packages, hashes, and GPG signature:
+
+```bash
+tools/target $ mv ../release/helm-chart/* fluss/helm-chart
 ```
 
-(5) Verify the files are present: 
https://dist.apache.org/repos/dist/dev/incubator/fluss/
+(6) Add and commit all the files.
 
+```bash
+tools/target $ cd fluss
+tools/target/fluss $ svn add fluss-${RELEASE_VERSION}-rc${RC_NUM}
+tools/target/fluss $ svn commit -m "Add fluss-${RELEASE_VERSION}-rc${RC_NUM}"
+```
+
+(7) Verify the files are present: 
https://dist.apache.org/repos/dist/dev/incubator/fluss/
+
+
+### 5. Push the staging Docker images
+
+:::note
+Make sure that you are authenticated with your Docker ID, and that your Docker 
ID has access to `apache/fluss`: `docker login -u <username>`. If you do not 
have access, you should seek help via the dev mailing list.
+:::
 
-### 3. Stage maven artifacts
+Next, we need to build and push Docker images for the release candidates. This 
will enable users to easily test the new functionality using the Quickstart 
guide in the [Fluss 
documentation](https://fluss.apache.org/docs/quickstart/flink/) improving 
accessibility and feedback during the release validation phase.
+
+From the root directory of the source code, run the following commands to 
build and push the fluss Docker image. 
+
+```bash
+$ rm -rf docker/fluss/build-target/
+$ mkdir docker/fluss/build-target/ 
+$ cp -r build-target/* docker/fluss/build-target
+
+$ cd docker/fluss
+docker/fluss $ docker buildx build --push --platform 
linux/arm64/v8,linux/amd64 --tag apache/fluss:${RELEASE_VERSION}-rc${RC_NUM} .
+```
+
+Then, run the following commands to build and push the flink — a customized 
Apache Flink image that includes all necessary libraries and JARs for the Fluss 
Quickstart guide:
+
+```bash
+docker/fluss $ cd ../quickstart-flink
+docker/quickstart-flink $ ./prepare_build.sh
+docker/quickstart-flink $ docker buildx build --push --platform 
linux/arm64/v8,linux/amd64 --tag 
apache/fluss-quickstart-flink:1.20-${RELEASE_VERSION}-rc${RC_NUM} .
+```
+
+Verify the RC images are present: https://hub.docker.com/r/apache/fluss/tags
+
+### 6. Stage maven artifacts
 
 
 Next, we stage the maven artifacts:
@@ -184,25 +398,25 @@ Next, we stage the maven artifacts:
 tools $ releasing/deploy_staging_jars.sh
 ```
 
-Review all staged artifacts in the staging 
repositories(https://repository.apache.org/#stagingRepositories). They should 
contain all relevant parts for each module, including pom.xml, jar, test jar, 
source, test source, javadoc, etc. Carefully review any new artifacts. 
(fluss-shaded doesn’t deploy test jar, source jar, and javadoc jar, see the 
[issue](https://github.com/apache/fluss-shaded/blob/main/README.md#sources) for 
more details)
+Review all staged artifacts in the staging 
repositories(https://repository.apache.org/#stagingRepositories). They should 
contain all relevant parts for each module, including pom.xml, jar, test jar, 
source, test source, javadoc, etc. Carefully review any new artifacts.
 
 Close the staging repository on Apache Nexus. When prompted for a description, 
enter `Apache Fluss (Incubating), version X, release candidate Y`. You can find 
the staging repository URL 
(`https://repository.apache.org/content/repositories/orgapachefluss-[STAGING_ID]/`)
 once the staging repository is closed successfully.
 
 ![](../assets/nexus-staging.png)
 
-
-### 4. Push the RC tag
+### 7. Push the RC tag
 
 ```bash
-git push <remote> refs/tags/{$TAG}
+git push origin refs/tags/{$TAG}
 ```
 
+-------------
 
 **Checklist to proceed to the next step**
 
 - Maven artifacts deployed to the staging repository of 
[repository.apache.org](https://repository.apache.org/content/repositories/)
-- Source distribution deployed to the dev repository of 
[dist.apache.org](https://dist.apache.org/repos/dist/dev/incubator/fluss/)
-- RC tag pushed to the [official 
repository](https://github.com/apache/fluss-shaded/tags)
+- Source and binary distribution deployed to the dev repository of 
[dist.apache.org](https://dist.apache.org/repos/dist/dev/incubator/fluss/)
+- RC tag pushed to the [official 
repository](https://github.com/apache/fluss/tags)
 
 
 ## Vote on the release candidate
@@ -218,19 +432,52 @@ Start the review-and-vote thread on the dev@ mailing 
list. Here’s an email tem
 ```
 From: Release Manager
 To: [email protected]
-Subject: [VOTE] Release fluss-shaded 1.0-incubating (RC3)
+Subject: [VOTE] Release Fluss 0.8.0-incubating (RC1)
 
 Hi everyone,
 
-Please review and vote on the release candidate #3 for the fluss-shaded 
version 1.0-incubating, as follows:
+Please review and vote on the release candidate #1 for the Apache Fluss 
version 0.8.0-incubating, as follows:
 [ ] +1, Approve the release
 [ ] -1, Do not approve the release (please provide specific comments)
 
 
-The complete staging area is available for your review, which includes:
-* the official Apache source release and binary convenience releases to be 
deployed to dist.apache.org [1], which are signed with the key with fingerprint 
FFFFFFFF [2],
-* all artifacts to be deployed to the Maven Central Repository [3],
-* source code tag "release-1.0-incubating-rc3" [4],
+The complete staging area is available for your review, includes:
+
+The official source release and binary convenience releases to be deployed to:
+* https://dist.apache.org/repos/dist/dev/incubator/fluss/x.y.z
+
+Helm charts are available on:
+* https://dist.apache.org/repos/dist/dev/incubator/fluss/helm-chart
+(NB: you have to build the Docker images locally with the version 
0.8.0-incubating in order to test Helm charts)
+
+All the files are signed with the key with fingerprint FFFFFFFF, you can find 
the KEYS file here:
+* https://dist.apache.org/repos/dist/release/incubator/fluss/KEYS
+
+All artifacts to be deployed to the Maven Central Repository:
+* https://repository.apache.org/content/repositories/orgapachefluss-<ID>/
+
+Git tag for the release:
+* https://github.com/apache/fluss/releases/tag/v0.8.0-incubating-rc1
+
+Git commit for the release:
+* https://github.com/apache/fluss/commit/<COMMIT>
+
+Website pull request for the release announcement blog post
+* https://github.com/apache/fluss/pull/<ID>
+
+Website pull request for listing the new release on the download page
+* https://github.com/apache/fluss/pull/<ID>
+
+Upgrade note for the new release: 
+* 
https://github.com/apache/fluss/blob/release-0.8/website/docs/maintenance/operations/upgrade-notes-0.8.md
+
+Docker images for the release candidate:
+* fluss
+* quickstart
+
+Please download, verify and test. To learn more about how to verify: 
+https://fluss.apache.org/community/how-to-release/verifying-a-fluss-release/
+
 
 The vote will be open for at least 72 hours. It is adopted by majority 
approval, with at least 3 PPMC affirmative votes.
 
@@ -241,6 +488,9 @@ Release Manager
 [2] https://dist.apache.org/repos/dist/release/incubator/fluss/KEYS
 [3] link
 [4] link
+[5] link
+[6] link
+[7] link
 ```
 
 **If there are any issues found in the release candidate**, reply on the vote 
thread to cancel the vote. There’s no need to wait 72 hours. Proceed to the 
[Fix Issues](#fix-any-issues) step below and address the problem. However, some 
issues don’t require cancellation. For example, if an issue is found in the 
website pull request, just correct it on the spot and the vote can continue 
as-is.
@@ -256,7 +506,7 @@ For cancelling a release, the release manager needs to send 
an email to the rele
 ```
 From: Release Manager
 To: [email protected]
-Subject: [RESULT][VOTE] Release fluss-shaded 1.0-incubating (RC3)
+Subject: [RESULT][VOTE] Release Fluss 0.8.0-incubating (RC1)
 
 I'm happy to announce that we have unanimously approved this release.
 
@@ -280,12 +530,12 @@ Once the Fluss community has approved the release 
candidate, the release manager
 ```
 From: Release Manager
 To: [email protected]
-Subject: [VOTE] Release Apache Fluss Shaded 1.0-incubating (RC3)
+Subject: [VOTE] Release Apache Fluss 0.8.0-incubating (RC1)
 
 Hi everyone,
 
 The Apache Fluss community has voted and approved the release of
-Apache Fluss Shaded 1.0-incubating (rc3). We now kindly request the IPMC
+Apache Fluss 0.8.0-incubating (RC1). We now kindly request the IPMC
 members to review and vote for this release.
 
 Apache Fluss (Incubating) - A streaming storage built for real-time analytics 
which can serve as the real-time data layer for Lakehouse architectures.
@@ -297,10 +547,10 @@ Vote result thread:
 * https://lists.apache.org/thread/<VOTE RESULT>
 
 The release candidate:
-* 
https://dist.apache.org/repos/dist/dev/incubator/fluss/fluss-shaded-1.0-incubating-rc3/
+* 
https://dist.apache.org/repos/dist/dev/incubator/fluss/fluss-0.8.0-incubating-rc1/
 
 Git tag for the release:
-* https://github.com/apache/fluss-shaded/releases/tag/v1.0-incubating-rc3
+* https://github.com/apache/fluss-shaded/releases/tag/v0.8.0-incubating-rc1
 
 Git commit for the release:
 * https://github.com/apache/fluss-shaded/commit/<COMMIT>
@@ -342,7 +592,7 @@ Binding votes are the votes from the IPMC members. Similar 
to the previous vote,
 ```
 From: Release Manager
 To: [email protected]
-Subject: [RESULT][VOTE] Release Apache Fluss Shaded 1.0-incubating (RC3)
+Subject: [RESULT][VOTE] Release Apache Fluss 0.8.0-incubating (RC1)
 
 I'm happy to announce that we have unanimously approved this release.
 
@@ -357,6 +607,8 @@ There are no disapproving votes.
 Thanks everyone!
 ```
 
+-------------
+
 **Checklist to proceed to the finalization step**
 - Community votes to release the proposed candidate, with at least three 
approving PPMC votes
 - Incubator votes to release the proposed candidate, with at least three 
approving IPMC votes
@@ -387,7 +639,7 @@ Use the [Apache Nexus](https://repository.apache.org/) 
repository to release the
 Copy the source and binary releases from the dev repository to the release 
repository at dist.apache.org using Subversion.
 
 ```bash
-svn move -m "Release Fluss Shaded ${RELEASE_VERSION}" 
https://dist.apache.org/repos/dist/dev/incubator/fluss/fluss-shaded-${RELEASE_VERSION}-rc${RC_NUM}
 
https://dist.apache.org/repos/dist/release/incubator/fluss/fluss-shaded-${RELEASE_VERSION}
+svn move -m "Release Fluss ${RELEASE_VERSION}" 
https://dist.apache.org/repos/dist/dev/incubator/fluss/fluss-${RELEASE_VERSION}-rc${RC_NUM}
 
https://dist.apache.org/repos/dist/release/incubator/fluss/fluss-${RELEASE_VERSION}
 ```
 (Note: Only PPMC members have access to the release repository. If you do not 
have access, ask on the mailing list for assistance.)
 
@@ -398,8 +650,8 @@ Remove the old release candidates from 
https://dist.apache.org/repos/dist/dev/in
 ```bash
 svn checkout https://dist.apache.org/repos/dist/dev/incubator/fluss 
--depth=immediates
 cd fluss
-svn remove fluss-shaded-${RELEASE_VERSION}-rc*
-svn commit -m "Remove old release candidates for Apache Fluss Shaded 
${RELEASE_VERSION}"
+svn remove fluss-${RELEASE_VERSION}-rc*
+svn commit -m "Remove old release candidates for Apache Fluss 
${RELEASE_VERSION}"
 ```
 
 #### Git tag
@@ -407,10 +659,14 @@ svn commit -m "Remove old release candidates for Apache 
Fluss Shaded ${RELEASE_V
 Create and push a new Git tag for the released version by copying the tag for 
the final release candidate, as follows:
 
 ```bash
-git tag -s "v${RELEASE_VERSION}" refs/tags/${TAG}^{} -m "Release Fluss Shaded 
${RELEASE_VERSION}"
-git push <remote> refs/tags/v${RELEASE_VERSION}
+git tag -s "v${RELEASE_VERSION}" refs/tags/${TAG}^{} -m "Release Fluss 
${RELEASE_VERSION}"
+git push origin refs/tags/v${RELEASE_VERSION}
 ```
 
+#### TODO Docker
+
+#### TODO Helm Charts
+
 **Checklist to proceed to the next step**
 - Maven artifacts released and indexed in the Maven Central Repository 
(usually takes about a day to show up)
 - Source & binary distributions available in the release repository of 
https://dist.apache.org/repos/dist/release/incubator/fluss/
@@ -430,18 +686,21 @@ Announce the release on the [email protected] mailing 
list.
 ```
 From: Release Manager
 To: [email protected], [email protected], [email protected]
-Subject: [ANNOUNCE] Apache Fluss Shaded 1.0-incubating released
+Subject: [ANNOUNCE] Apache Fluss 0.8.0-incubating released
 
-The Apache Fluss community is very happy to announce the release of Apache 
Fluss Shaded 1.0-incubating.
+The Apache Fluss community is very happy to announce the release of Apache 
Fluss 0.8.0-incubating.
 
 Apache Fluss is a streaming storage built for real-time analytics which can 
serve as the real-time data layer for Lakehouse architectures.
 
 The release is available for download at:
-https://downloads.apache.org/incubator/fluss/fluss-shaded-1.0-incubating/
+https://downloads.apache.org/incubator/fluss/fluss-0.8.0-incubating/
+
+Maven artifacts for Fluss can be found at:
 
-Maven artifacts for Fluss Shaded can be found at:
+https://central.sonatype.com/search?q=g%3Aorg.apache.fluss&smo=true
 
-https://central.sonatype.com/search?q=g%3Aorg.apache.fluss+shade&smo=true
+Please check out the release blog post for an overview of this release:
+https://fluss.apache.org/blog/releases/0.8/
 
 We would like to thank all contributors of the Apache Fluss community who made 
this release possible!
 
diff --git 
a/website/community/how-to-release/creating-a-fluss-shaded-release.md 
b/website/community/how-to-release/creating-a-fluss-shaded-release.md
index 0ca0b6892..c8f838d4b 100644
--- a/website/community/how-to-release/creating-a-fluss-shaded-release.md
+++ b/website/community/how-to-release/creating-a-fluss-shaded-release.md
@@ -1,6 +1,6 @@
 ---
 title: Creating a Fluss Shaded Release
-sidebar_position: 2
+sidebar_position: 4
 ---
 
 # Creating a Fluss Shaded Release
@@ -61,7 +61,7 @@ NEXT_VERSION="2.0-incubating"
 
 #### 2. Verify Java and Maven Version
 
-All of the following steps require to use **Maven 3.8.6** and **Java 8**. 
Modify your `PATH` environment variable accordingly if needed.
+Run `mvn -v` and `java -version` on your local machine. All of the following 
steps require to use **Maven 3.8.6** and **Java 11**. Modify your `PATH` 
environment variable accordingly if needed.
 
 #### 3. Clone fluss-shaded into a fresh workspace
 
@@ -99,10 +99,10 @@ The newly created branch and updated master branch need to 
be pushed to the offi
 - Release Manager’s GPG key is published to 
[dist.apache.org](https://dist.apache.org/repos/dist/release/incubator/fluss/KEYS)
 - Release Manager’s GPG key is configured in git configuration
 - Release Manager's GPG key is configured as the default gpg key.
-- Release Manager has `org.apache.fluss` listed under `Staging Profiles` in 
Nexus
+- Release Manager has `org.apache.fluss` listed under `Staging Profiles` in 
[Apache Nexus repository](https://repository.apache.org/).
 - Release Manager’s Nexus User Token is configured in `settings.xml`
 - There are no release blocking GitHub issues
-- Release branch (`release-x.0`) has been created and pushed
+- Release branch (`release-x.y`) has been created and pushed
 - Main branch has been updated to the next version and pushed
 
 ## Build a release candidate
@@ -186,7 +186,7 @@ tools $ releasing/deploy_staging_jars.sh
 
 Review all staged artifacts in the staging 
repositories(https://repository.apache.org/#stagingRepositories). They should 
contain all relevant parts for each module, including pom.xml, jar, test jar, 
source, test source, javadoc, etc. Carefully review any new artifacts. 
(fluss-shaded doesn’t deploy test jar, source jar, and javadoc jar, see the 
[issue](https://github.com/apache/fluss-shaded/blob/main/README.md#sources) for 
more details)
 
-Close the staging repository on Apache Nexus. When prompted for a description, 
enter `Apache Fluss (Incubating), version X, release candidate Y`. You can find 
the staging repository URL 
(`https://repository.apache.org/content/repositories/orgapachefluss-[STAGING_ID]/`)
 once the staging repository is closed successfully.
+Close the staging repository on Apache Nexus. When prompted for a description, 
enter `Apache Fluss Shaded (Incubating), version X, release candidate Y`. You 
can find the staging repository URL 
(`https://repository.apache.org/content/repositories/orgapachefluss-[STAGING_ID]/`)
 once the staging repository is closed successfully.
 
 ![](../assets/nexus-staging.png)
 
diff --git a/website/community/how-to-release/release-manager-preparation.md 
b/website/community/how-to-release/release-manager-preparation.md
index e189e8751..c00eadc32 100644
--- a/website/community/how-to-release/release-manager-preparation.md
+++ b/website/community/how-to-release/release-manager-preparation.md
@@ -20,6 +20,22 @@ This release process is suggested to operate on MacOS or 
Linux systems, and the
 - GnuPG 2.x
 - Git
 - SVN
+- [Helm](https://helm.sh/docs/intro/install/) and 
[helm-gpg](https://github.com/technosophos/helm-gpg) plugin
+- [Docker](https://docs.docker.com/get-started/get-docker/)
+
+:::note
+If you encounter issues installing `helm-gpg` using the command  
+```bash
+helm plugin install https://github.com/technosophos/helm-gpg
+```  
+you can install it manually by cloning the repository to a local directory and 
then running:  
+```bash
+helm plugin install /path/to/your/helm-gpg
+```  
+
+This approach bypasses potential network or Git submodule issues during plugin 
installation.
+:::
+
 
 ## GPG Key
 
diff --git 
a/website/community/how-to-release/verifying-a-fluss-shaded-release.md 
b/website/community/how-to-release/verifying-a-fluss-release.md
similarity index 71%
copy from website/community/how-to-release/verifying-a-fluss-shaded-release.md
copy to website/community/how-to-release/verifying-a-fluss-release.md
index 23f418d98..ec12ed191 100644
--- a/website/community/how-to-release/verifying-a-fluss-shaded-release.md
+++ b/website/community/how-to-release/verifying-a-fluss-release.md
@@ -1,9 +1,9 @@
 ---
-title: Verifying a Fluss Shaded Release
+title: Verifying a Fluss Release
 sidebar_position: 3
 ---
 
-# Verifying a Fluss Shaded Release
+# Verifying a Fluss Release
 
 ## Validating distributions
 
@@ -33,7 +33,7 @@ for i in *.tgz; do echo $i; gpg --verify $i.asc $i; done
 If the verification is successful, you will see a message like this:
 
 ```
-fluss-shaded-1.0-incubating-src.tgz
+fluss-0.8.0-incubating-src.tgz
 gpg: Signature made Mon 01 Jan 2024 12:00:00 PM UTC
 gpg:                using RSA key E2C45417BED5C104154F341085BACB5AEFAE3202
 gpg: Good signature from "Jark Wu (CODE SIGNING KEY) <[email protected]>"
@@ -50,13 +50,13 @@ for i in *.tgz; do echo $i; sha512sum --check  $i.sha512*; 
done
 If the verification is successful, you will see a message like this:
 
 ```
-fluss-shaded-1.0-incubating-src.tgz
-fluss-shaded-1.0-incubating-src.tgz: OK
+fluss-0.8.0-incubating-src.tgz
+fluss-0.8.0-incubating-src.tgz: OK
 ```
 
 ## Verifying build
 
-Unzip the source release archive (`fluss-shaded-1.0-incubating-src.tgz`), and 
verify that the source release builds correctly (may with different Java 
version and Maven version), you can run the following commands:
+Unzip the source release archive (`fluss-0.8.0-incubating-src.tgz`), and 
verify that the source release builds correctly (may with different Java 
version and Maven version), you can run the following commands:
 
 ```bash
 mvn clean package -DskipTests
@@ -80,7 +80,7 @@ Update the root `pom.xml` of the maven project (like the 
apache/fluss project) t
 ```xml
 <repositories>
     <repository>
-        <id>fluss-shaded-staging</id>
+        <id>fluss-staging</id>
         <name>Temporary Staging Repo</name>
         
<url>https://repository.apache.org/content/repositories/orgapachefluss-${STAGED_REPO_ID}/</url>
     </repository>
@@ -89,6 +89,23 @@ Update the root `pom.xml` of the maven project (like the 
apache/fluss project) t
 
 And then you can use the staged maven artifacts as dependencies in the project 
and verify the new dependencies work.
 
+
+## Testing Features
+
+For any user-facing feature included in a release, we aim to ensure it is 
functional, usable, and well-documented for the Fluss community.
+
+To support this, release managers can create and assign cross-team testing 
issues that outline key scenarios to validate. These issues are open to—and 
encouraged for—all community members to pick up and help verify.
+
+A great way to get started is by walking through the official Quickstart 
Guide: https://fluss.apache.org/docs/quickstart/flink/ (please switch to the 
documentation version currently under release).
+
+
+## Incubator Release Checklist
+
+The ASF Incubator has also prepared a release checklist, which you can refer 
to when verifying the release:
+
+https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist
+
+
 ## Voting
 
 Votes are cast by replying on the vote email on the dev mailing list, with 
either +1, 0, -1.
diff --git 
a/website/community/how-to-release/verifying-a-fluss-shaded-release.md 
b/website/community/how-to-release/verifying-a-fluss-shaded-release.md
index 23f418d98..a7d242e92 100644
--- a/website/community/how-to-release/verifying-a-fluss-shaded-release.md
+++ b/website/community/how-to-release/verifying-a-fluss-shaded-release.md
@@ -1,6 +1,6 @@
 ---
 title: Verifying a Fluss Shaded Release
-sidebar_position: 3
+sidebar_position: 5
 ---
 
 # Verifying a Fluss Shaded Release
diff --git a/website/docs/maintenance/operations/upgrading.md 
b/website/docs/maintenance/operations/upgrading.md
index 0b635ec27..f78d23282 100644
--- a/website/docs/maintenance/operations/upgrading.md
+++ b/website/docs/maintenance/operations/upgrading.md
@@ -80,10 +80,10 @@ Once this process is complete, the server upgrade will be 
finished.
 The compatibility between the Fluss client and the Fluss server is described 
in the following table:
 
 
-|            | Server 0.6 | Server 0.7 | Limitations |
+|            | Server 0.7 | Server 0.8 | Limitations |
 |------------|------------|------------|-------------|
-| Client 0.6 | ✔️         | ✔️         |             |
 | Client 0.7 | ✔️         | ✔️         |             |
+| Client 0.8 | ✔️         | ✔️         |             |
 
 ## Upgrading Fluss datalake tiering service
 


Reply via email to