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

twice pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/kvrocks-website.git


The following commit(s) were added to refs/heads/main by this push:
     new 2e57ffb  Add the release doc for the Kvrocks controller (#227)
2e57ffb is described below

commit 2e57ffb2e4279a9604fa0c99e315ef3cd9aa9c65
Author: hulk <[email protected]>
AuthorDate: Sun Jun 16 23:04:19 2024 +0800

    Add the release doc for the Kvrocks controller (#227)
    
    * Draft release doc for the Kvrocks controller
    
    * Add the download page for Kvrocks controller
---
 community/create-a-kvrocks-controller-release.md | 212 +++++++++++++++++++++++
 community/verify-a-release-candidate.md          |  10 ++
 download/kvrocks-controller.mdx                  |  20 +++
 sidebarsCommunity.js                             |   1 +
 src/components/Releases/kvrocks-controller.tsx   |  47 +++++
 5 files changed, 290 insertions(+)

diff --git a/community/create-a-kvrocks-controller-release.md 
b/community/create-a-kvrocks-controller-release.md
new file mode 100644
index 0000000..48c4609
--- /dev/null
+++ b/community/create-a-kvrocks-controller-release.md
@@ -0,0 +1,212 @@
+---
+id: create-a-kvrocks-controller-release
+title: Create a kvrocks controller release
+---
+
+This document mainly introduces how the Release Manager releases a new version 
in accordance with the Apache requirements.
+
+## Introduction
+
+Apache Kvrocks™ Controller is a cluster management tool for Apache Kvrocks™. 
And the release process and policy of Apache Kvrocks Controller is similar to 
Apache Kvrocks™:
+
+* Source Release is the key point which Apache values, also, is necessary for 
a release;
+* Binary Release is optional. Apache Kvrocks™ Controller can choose whether to 
release the binary package to the Apache repository or not.
+
+Note that for binary distribution packages, it is necessary to check that the 
new version does not contain third-party dependencies.
+
+Please remember that publishing software has legal consequences. This guide 
complements the foundation-wide policies and guides:
+
+* [Release Policy](https://www.apache.org/legal/release-policy.html)
+* [Release Distribution Policy](https://infra.apache.org/release-distribution)
+* [Release Creation Process](https://infra.apache.org/release-publishing.html)
+
+For the first release manager, you need to add your PGP key to the KEYS file 
in the repository, please refer to [Adding GPG 
KEY](https://kvrocks.apache.org/community/create-a-release/#adding-gpg-key).
+
+## Create source releases and stage
+
+1. Checkout to the RELEASE BRANCH and cherry-pick commits to release
+2. Use `./x.py package source -v ${release_version} -rc ${candidate_number}` 
to create release tarball
+3. Make sure it compiles good and push tag to GitHub
+
+## Upload artifacts to SVN dist repo
+
+:::info
+
+SVN is required for this step.
+
+:::
+
+The svn repository of the dev branch is: 
https://dist.apache.org/repos/dist/dev/kvrocks/kvrocks-controller
+
+First, checkout Kvrocks controller to local directory:
+
+```shell
+# As this step will copy all the versions, it will take some time. If the 
network is broken, please use svn cleanup to delete the lock before re-execute 
it.
+svn co https://dist.apache.org/repos/dist/dev/kvrocks/kvrocks-controller 
kvrocks-controller-dist-dev
+```
+
+Then, upload the artifacts:
+
+```shell
+cd kvrocks-controller-dist-dev
+mkdir ${release_version} # create a directory named by version
+cp ${repo_dir}/apache-kvrocks-controller-${release_version}-src.tar.gz* 
${release_version}/ # copy source code and signature package to the versioned 
directory
+svn status # check svn status
+svn add ${release_version} # add to svn
+svn status # check svn status
+svn commit -m "Prepare for ${release_version}"     # commit to SVN remote 
server
+```
+
+## Draft release note
+
+[Draft a new release 
note](https://github.com/apache/kvrocks-controller/releases/new).
+
+You should choose the current release candidate tag. GitHub can automatically 
generate the content of release note, but you need to group it.
+
+For some important content, highlight it at the beginning.
+
+## Voting
+
+### Kvrocks community vote
+
+Kvrocks community vote,send email to: `[email protected]`:
+
+```text
+[VOTE] Release Apache Kvrocks Controller ${release_version}
+
+Hello Apache Kvrocks PMC and Community,
+
+    This is a call for a vote to release Apache Kvrocks Controller version 
${release_version}.
+
+    The tag to be voted on is ${release_version}-rc${candidate_number}.
+
+    The release candidate:
+
+    
https://dist.apache.org/repos/dist/dev/kvrocks/kvrocks-controller/${release_version}/
+
+
+    Keys to verify the release candidate:
+
+    https://downloads.apache.org/kvrocks/KEYS
+
+
+    Git tag for the release:
+
+    
https://github.com/apache/kvrocks-controller/releases/tag/${release_version}-rc${candidate_number}
+
+    Please download, verify, and test.
+
+    The VOTE will remain open for at least 72 hours.
+
+    [ ] +1 approve
+    [ ] +0 no opinion
+    [ ] -1 disapprove with the reason
+
+    To learn more about apache kvrocks, please see
+    https://kvrocks.apache.org/
+
+    Checklist for reference:
+
+      [ ] Download links are valid.
+      [ ] Checksums and signatures.
+      [ ] LICENSE/NOTICE files exist
+      [ ] No unexpected binary files
+      [ ] All source files have ASF headers
+      [ ] Can compile from source
+      [ ] All Tests Passed
+
+      More detailed checklist  please refer to:
+      https://kvrocks.apache.org/community/verify-a-release-candidate
+
+Thanks
+```
+
+After at least 72 hours with at least 3 +1 binding vote (from Kvrocks PMC 
member) and no veto, claim the vote result:
+
+```text
+[RESULT][VOTE] Release Apache Kvrocks Controller ${release_version}
+
+The vote to release Apache Kvrocks Controller ${release_version} has passed.
+
+The vote PASSED with xxx binding +1 and 0 -1 votes:
+
+Binding votes:
+- XXX
+- XXX
+- XXX
+
+No Binding votes:
+- XXX
+- XXX
+- XXX
+
+Vote thread:
+
+${vote_thread_url}
+
+Thank you to all the above members to help us to verify and vote for the
+${release_version} release.
+
+Thanks
+```
+
+## Officially released
+
+### Publish artifacts to SVN RELEASE branch
+
+```shell
+svn mv 
https://dist.apache.org/repos/dist/dev/kvrocks/kvrocks-controller/${release_version}
 
https://dist.apache.org/repos/dist/release/kvrocks/kvrocks-controller/${release_version}
 -m "Release ${release_version}"
+```
+
+### Publish release note
+
+Edit the title of the draft release note and use the new ${release_version} 
tag, which github will create automatically.
+
+Then, publish release.
+
+### Update website links
+
+Update [releases data 
file](https://github.com/apache/kvrocks-website/blob/main/src/components/Releases/kvrocks-controller.tsx).
+
+### Send the announcement
+
+Send the release announcement to `[email protected]` and CC 
`[email protected]`:
+
+> You have to use `${name}@apache.org` post email to `[email protected]`
+
+```html
+[ANNOUNCE] Release Apache Kvrocks Controller ${release_version}
+
+Hi all,
+
+The Apache Kvrocks community is pleased to announce
+that Apache Kvrocks Controller ${release_version} has been released!
+
+Apache Kvrocks Controller is a cluster management tool for Apache Kvrocks, 
including the following key features:
+
+- Failover - controller will failover or remove the master/slave node when 
probing failed
+- Scale out the cluster in one line command
+- Manage many clusters in one controller cluster
+- Support multi metadata storages like etcd and so on
+
+This release contains a number of new features, bug fixes and
+improvements compared to the last version released before.
+The notable changes since ${release_version} include:
+1. xxxxx
+2. yyyyyy
+3. zzzzzz
+
+Please refer to the change log for the complete list of changes:
+https://github.com/apache/kvrocks-controller/releases/tag/v${release_version}
+
+Apache Kvrocks website: https://kvrocks.apache.org/
+
+Download Links: https://kvrocks.apache.org/download/kvrocks-controller
+
+Kvrocks Resources:
+- Issue: https://github.com/apache/kvrocks-controller/issues
+- Mailing list: [email protected]
+
+Thanks
+On behalf of Apache Kvrocks community
+```
diff --git a/community/verify-a-release-candidate.md 
b/community/verify-a-release-candidate.md
index 7c26516..3ae30ff 100644
--- a/community/verify-a-release-candidate.md
+++ b/community/verify-a-release-candidate.md
@@ -24,10 +24,18 @@ However, you should clearly state which checks you did. The 
release manager need
 
 Use the following command to download all artifacts, replace 
"${release_version}-${rc_version}" with the version ID of the version to be 
released:
 
+### Kvrocks
+
 ```shell
 svn co 
https://dist.apache.org/repos/dist/dev/kvrocks/${release_version}-${rc_version}/
 ```
 
+### Kvrocks Controller
+
+```shell
+svn co 
https://dist.apache.org/repos/dist/dev/kvrocks/kvrocks-controller/${release_version}-${rc_version}/
+```
+
 ## Verify signature and hash
 
 Start the verification process, which includes but is not limited to the 
following content and verification methods.
@@ -140,6 +148,8 @@ fi
 ```
 2. verify the sign and checksum
 
+### Kvrocks
+
 ```shell
 ./release-verify.sh apache-kvrocks-${release_version}-src.tar.gz
 ```
diff --git a/download/kvrocks-controller.mdx b/download/kvrocks-controller.mdx
new file mode 100644
index 0000000..2a9514f
--- /dev/null
+++ b/download/kvrocks-controller.mdx
@@ -0,0 +1,20 @@
+---
+title: Kvrocks Controller Official Download
+---
+
+## Apache Kvrocks™ Controller Downloads
+
+Apache Kvrocks™ Controller is released as a source artifact. We are pleased to 
announce our release as below.
+
+### Kvrocks Controller Source Releases
+
+````mdx-code-block
+import Releases from "../src/components/Releases/kvrocks-controller";
+
+<Releases/>
+````
+
+Choose a source distribution in the *tar* format, and 
[verify](https://www.apache.org/dyn/closer.cgi#verify) using the corresponding 
*pgp* signature (using the committer file in 
[KEYS](https://downloads.apache.org/kvrocks/KEYS)).  If you cannot do that, the 
*sha512* hash file may be used to check that the download has completed OK.
+
+For fast downloads, current source distributions are hosted on mirror servers; 
older source distributions are in the
+[archive](https://archive.apache.org/dist/kvrocks/kvrocks-controller). If a 
download from a mirror fails, retry, and the second download will likely 
succeed.
diff --git a/sidebarsCommunity.js b/sidebarsCommunity.js
index 476935f..0fdae38 100644
--- a/sidebarsCommunity.js
+++ b/sidebarsCommunity.js
@@ -23,6 +23,7 @@ const sidebars = {
       },
       items: [
         'create-a-release',
+        'create-a-kvrocks-controller-release',
         'verify-a-release-candidate',
       ]
     },
diff --git a/src/components/Releases/kvrocks-controller.tsx 
b/src/components/Releases/kvrocks-controller.tsx
new file mode 100644
index 0000000..9fec5df
--- /dev/null
+++ b/src/components/Releases/kvrocks-controller.tsx
@@ -0,0 +1,47 @@
+import React from "react";
+
+const controller_versions = []
+
+type ReleaseData = {
+    name: string,
+    archive: string,
+    checksum: string,
+    signature: string,
+}
+
+function createReleaseData(version: string, vtag?: string): ReleaseData {
+    const fixedVTag = vtag ?? version;
+    const archive = 
`https://downloads.apache.org/kvrocks/kvrocks-controller/${version}/apache-kvrocks-controller-${fixedVTag}-src.tar.gz`
+    return {
+        name: fixedVTag,
+        archive: archive,
+        checksum: `${archive}.sha512`,
+        signature: `${archive}.asc`,
+    };
+}
+
+export default function Releases(): JSX.Element {
+    const releases = controller_versions.map(({ version, vtag }) => 
createReleaseData(version, vtag))
+    return <>
+        <table>
+            <thead>
+            <tr>
+                <th><b>Name</b></th>
+                <th><b>Archive</b></th>
+                <th><b>Checksum</b></th>
+                <th><b>Signature</b></th>
+            </tr>
+            </thead>
+            <tbody>
+            {releases.map(v => (
+                <tr key={v.name}>
+                    <td>{v.name}</td>
+                    <td><a href={v.archive}>tarball</a></td>
+                    <td><a href={v.checksum}>sha512</a></td>
+                    <td><a href={v.signature}>asc</a></td>
+                </tr>
+            ))}
+            </tbody>
+        </table>
+    </>
+}

Reply via email to