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

weitingchen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten-site.git


The following commit(s) were added to refs/heads/main by this push:
     new 97e48a3  Update How to Release procedure (#18)
97e48a3 is described below

commit 97e48a3d2257058b619082838110948f292f3b4a
Author: Wei-Ting Chen <[email protected]>
AuthorDate: Tue Jul 30 13:37:14 2024 +0800

    Update How to Release procedure (#18)
---
 Gemfile                    |   2 +
 Gemfile.lock               |   3 +-
 developers/HowToRelease.md | 247 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 251 insertions(+), 1 deletion(-)

diff --git a/Gemfile b/Gemfile
index a56d585..e527831 100644
--- a/Gemfile
+++ b/Gemfile
@@ -35,3 +35,5 @@ gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]
 gem "webrick", "~> 1.8"
 
 gem "just-the-docs"
+
+gem "jekyll", "~> 3.9"
diff --git a/Gemfile.lock b/Gemfile.lock
index 1aa084f..0c2e367 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -290,6 +290,7 @@ PLATFORMS
 DEPENDENCIES
   github-pages (~> 228)
   http_parser.rb (~> 0.6.0)
+  jekyll (~> 3.9)
   jekyll-feed (~> 0.12)
   just-the-docs
   minima (~> 2.5)
@@ -299,4 +300,4 @@ DEPENDENCIES
   webrick (~> 1.8)
 
 BUNDLED WITH
-   2.5.6
+   2.4.19
diff --git a/developers/HowToRelease.md b/developers/HowToRelease.md
new file mode 100644
index 0000000..8b50e34
--- /dev/null
+++ b/developers/HowToRelease.md
@@ -0,0 +1,247 @@
+---
+layout: page
+title: How To Release
+nav_order: 10
+parent: Developers
+---
+# How to Release
+
+This section outlines the steps for releasing Apache Gluten (incubating) 
according to the Apache release guidelines.
+All projects under the Apache umbrella must adhere to the [Apache Release 
Policy](https://www.apache.org/legal/release-policy.html). This guide is 
designed to assist you in comprehending the policy and navigating the process 
of releasing projects at Apache.
+
+
+## Release Process
+
+1. Prepare the release artifacts.
+
+2. Upload the release artifacts to the SVN repository.
+
+3. Verify the release artifacts.
+
+4. Initiate a release vote.
+
+5. Announce the results and the release.
+
+
+### Prepare the release artifacts.
+
+1. Create a branch from the target git repository.
+
+2. Tag a RC and draft the release notes.
+
+3. Build and Sign the release artifacts (including source archives, binaries, 
...etc).
+
+4. Generate checksums for the artifacts.
+
+
+#### How to Sign the release artifacts.
+
+1. Create a GPG key
+
+2. Add the GPG key to the KEYS file
+
+3. Sign the release artifacts with the GPG key.
+
+```
+# create a GPG key, after executing this command, select the first one RSA 和 
RSA
+$ gpg --full-generate-key
+
+# list the GPG keys
+$ gpg  --keyid-format SHORT --list-keys
+
+# upload the GPG key to the key server, xxx is the GPG key id
+# eg: pub rsa4096/4C21E346 2024-05-06 [SC], 4C21E346 is the GPG key id;
+$ gpg --keyserver keyserver.ubuntu.com --send-key xxx
+
+# append the GPG key to the KEYS file the svn repository
+# [IMPORTANT] Don't replace the KEYS file, just append the GPG key to the KEYS 
file. 
+$ svn co https://dist.apache.org/repos/dist/release/incubator/answer/
+$ (gpg --list-sigs [email protected] && gpg --export --armor [email protected]) >> 
KEYS 
+$ svn ci -m "add gpg key" 
+
+# sign the release artifacts, xxxx is [email protected]
+$ for i in *.tar.gz; do echo $i; gpg --local-user xxxx --armor --output $i.asc 
--detach-sig $i ; done
+```
+
+
+#### How to Generate checksums for the release artifacts.
+
+```
+# create the checksums
+$ for i in *.tar.gz; do echo $i; sha512sum  $i > $i.sha512 ; done
+```
+
+
+### Upload the release artifacts to the SVN repository.
+
+1. Create a project directory in the SVN repository (1st time only).
+`https://dist.apache.org/repos/dist/dev/incubator/gluten/`
+
+2. Create a directory for the release artifacts in the SVN repository.
+`https://dist.apache.org/repos/dist/dev/incubator/gluten/{release-version}`
+release-version format: apache-gluten-#.#.#-rc#
+
+3. Upload the release artifacts to the SVN repository.
+```
+$ svn co https://dist.apache.org/repos/dist/dev/incubator/gluten/
+$ cp /path/to/release/artifacts/* ./{release-version}/
+$ svn add ./{release-version}/*
+$ svn commit -m "add Apache Answer release artifacts for {release-version}"
+```
+
+4. After the upload, please visit the link 
`https://dist.apache.org/repos/dist/dev/incubator/gluten/{release-version}` to 
verify if the file upload is successful or not.
+The upload release artifacts should be include
+```
+* apache-gluten-#.#.#-incubating-src.tar.gz
+* apache-gluten-#.#.#-incubating-src.tar.gz.asc
+* apache-gluten-#.#.#-incubating-src.tar.gz.sha512
+```
+
+
+### Verify the release artifacts.
+
+Please follow below steps to verify the release artifacts.
+
+1. Check if the Download links are valid.
+
+2. Check if the checksums and GPG signatures are valid.
+
+3. Check if the release artifacts name is qualified and match with the current 
release.
+
+4. Check if LICENSE and NOTICE files are correct.
+
+5. Check if the License Headers are included in all files if necessary.
+
+6. No unlicensed compiled archives bundled in source archive.
+
+
+#### How to Verify the Signatures
+
+Please follow below steps to verify the signatures.
+
+```
+# download KEYS
+$ curl https://dist.apache.org/repos/dist/release/incubator/gluten/KEYS > KEYS
+
+# import KEYS and trust the key, please replace the email address with the one 
you want to trust.
+$ gpg --import KEYS
+$ gpg --edit-key [email protected]
+gpg> trust
+gpg> 5
+gpg> y
+gpg> quit
+
+# enter the directory where the release artifacts are located
+$ cd /path/to/release/artifacts
+
+# verify the signature
+$ for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i ; done
+
+# if you see 'Good signature' in the output, it means the signature is valid.
+```
+
+
+#### How to Verify the checksums
+
+Please follow below steps to verify the checksums
+```
+# verify the checksums
+$ for i in *.tar.gz; do echo $i; sha512sum --check  $i.sha512; done
+```
+
+
+### Initiate a release vote.
+
+1. Email a vote request to [email protected], requiring at least 3 PPMC 
+1s.
+
+2. Allow 72 hours or until enough votes are collected.
+
+3. Share the vote outcome on the dev list.
+
+4. If successful, request a vote on [email protected], needing 3 
PMC +1s.
+
+5. Wait 72 hours or for sufficient votes.
+
+6. Announce the results on the general list.
+
+Vote Email Template
+```
+[VOTE] Release Apache Gluten (Incubating) {release-version}
+
+Hello,
+
+    This is a call for vote to release Apache Gluten (Incubating) version 
{release-version}.
+
+    The vote thread:
+        https://lists.apache.org/thread/{id}
+
+    Vote Result:
+        https://lists.apache.org/thread/{id}
+
+    The release candidates:
+        
https://dist.apache.org/repos/dist/dev/incubator/gluten/{release-version}/
+    
+    Release notes:
+        
https://github.com/apache/incubator-gluten/releases/tag/{release-version}
+
+    Git tag for the release:
+        
https://github.com/apache/incubator-gluten/releases/tag/{release-version}
+    
+    Git commit id for the release:
+        https://github.com/apache/incubator-gluten/commit/{id}
+
+    Keys to verify the Release Candidate:
+        https://downloads.apache.org/incubator/gluten/KEYS
+        
+    The vote will be open for at least 72 hours or until the necessary number 
of votes are reached.
+
+    Please vote accordingly:
+
+    [ ] +1 approve
+    [ ] +0 no opinion
+    [ ] -1 disapprove with the reason
+
+    Checklist for reference:
+
+    [ ] Download links are valid.
+    [ ] Checksums and PGP signatures are valid.
+    [ ] Source code distributions have correct names matching the current 
release.
+    [ ] LICENSE and NOTICE files are correct for each Apache Answer repo.
+    [ ] All files have license headers if necessary.
+    [ ] No unlicensed compiled archives bundled in source archive.
+
+    To compile from the source, please refer to:
+    
+    https://github.com/apache/incubator-gluten#building-from-source
+
+Thanks,
+<YOUR NAME>
+```
+
+
+### Announce the results and the release.
+
+
+Announce Email Template
+```
+Hello everyone,
+
+The Apache Gluten (Incubating) {release-version} has been released!
+
+Apache Gluten is a Q&A platform software for teams at any scale.
+Whether it's a community forum, help center, or knowledge management platform, 
you can always count on Apache Answer.
+
+Download Links: https://downloads.apache.org/incubator/gluten/
+
+Release Notes: 
https://github.com/apache/incubator-gluten/releases/tag/{release-version}
+
+Website: https://gluten.apache.org/
+
+Resources:
+- Issue: https://github.com/apache/incubator-gluten/issues
+- Mailing list: [email protected]
+
+Thanks,
+<YOUR NAME>
+
+```


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to