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>
+ </>
+}