-
Notifications
You must be signed in to change notification settings - Fork 43
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: Update release process in how-to-release.md
- Loading branch information
Showing
1 changed file
with
36 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,46 +6,46 @@ slug: /how-to-release | |
|
||
All Apache projects are required to follow the [Apache Release Policy](https://www.apache.org/legal/release-policy.html). This guide is intended to help you understand the policy and how to release projects at Apache. | ||
|
||
## Release process | ||
|
||
1. Prepare all the release artifacts. | ||
2. Upload the release artifacts to the svn repository. | ||
3. Verify the release artifacts. | ||
4. Vote on the release. | ||
## Release Process | ||
1. Create a GPG key if you don't have one. | ||
3. Upload release artifacts to svn repository. | ||
4. Start a vote. | ||
5. Announce the vote result and release. | ||
|
||
## Prepare all the release artifacts | ||
|
||
1. Create the RC tag in the git repository and write the release notes. | ||
1. notice 1: Remember to select `Set as a pre-release` before clicking `Publish release`. | ||
2. notice 2: Release notes should choose a tag that is not the branch, such as `v1.2.0-RC1`. | ||
3. Build the release artifacts(bundles, source archives, etc). | ||
4. Sign the release artifacts. | ||
5. Create the checksums for the release artifacts. | ||
|
||
### Sign the release artifacts | ||
|
||
1. Create a GPG key if you don't have one. | ||
2. Add the GPG key to the KEYS file. | ||
3. Sign the release artifacts with the GPG key. **Be careful to check that the binary file is complete to avoid a size of 0.** | ||
## Create a GPG key | ||
Create a GPG key if you don't have one. You can follow the instructions [here](https://www.apache.org/dev/openpgp.html). | ||
|
||
```shell | ||
# create a GPG key, after executing this command, select the first one RSA 和 RSA | ||
# create a GPG key | ||
$ 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 | ||
$ (gpg --list-sigs [email protected] && gpg --export --armor [email protected]) >> KEYS | ||
$ svn ci -m "add gpg key" | ||
``` | ||
|
||
|
||
## Upload the release artifacts to the svn repository | ||
|
||
### Prepare all the release artifacts | ||
|
||
1. Create the RC tag in the git repository and write the release notes. | ||
1. notice 1: Remember to select `Set as a pre-release` before clicking `Publish release`. | ||
2. notice 2: Release notes should choose a tag that is not the branch, such as `v1.2.0-RC1`. | ||
3. Build the release artifacts(bundles, source archives, etc). | ||
|
||
### Sign the release artifacts | ||
|
||
Sign the release artifacts with the GPG key. **Be careful to check that the binary file is complete to avoid a size of 0.** | ||
|
||
```shell | ||
# 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 | ||
``` | ||
|
@@ -57,22 +57,25 @@ $ for i in *.tar.gz; do echo $i; gpg --local-user xxxx --armor --output $i.asc - | |
$ for i in *.tar.gz; do echo $i; sha512sum $i > $i.sha512 ; done | ||
``` | ||
|
||
## Upload the release artifacts to the svn repository | ||
### Upload to the svn repository | ||
> **NOTICE** The repository address where the GPG key is created and the prepository address where the release artifacts are uploaded are not the same. The GPG key is uploaded to the `https://dist.apache.org/repos/dist/release/incubator/answer/` repository, and the release artifacts are uploaded to the `https://dist.apache.org/repos/dist/dev/incubator/answer/` repository. | ||
1. Create a directory for the release artifacts in the svn repository. | ||
```shell | ||
$ svn co https://dist.apache.org/repos/dist/dev/incubator/answer/ | ||
``` | ||
2. Upload the release artifacts to the svn repository. | ||
```shell | ||
$ cp /path/to/release/artifacts/* ./{release-version}/ | ||
$ svn add ./{release-version}/* | ||
``` | ||
3. release-version format: 1.3.1-incubating | ||
|
||
```shell | ||
$ svn commit -m "add Apache Answer release artifacts for {release-version}" | ||
``` | ||
The release artifacts should be uploaded to the `https://dist.apache.org/repos/dist/dev/incubator/answer/{release-version}` directory. | ||
|
||
|
||
```shell | ||
$ svn co https://dist.apache.org/repos/dist/dev/incubator/answer/ | ||
$ cp /path/to/release/artifacts/* ./{release-version}/ | ||
$ svn add ./{release-version}/* | ||
$ svn commit -m "add Apache Answer release artifacts for {release-version}" | ||
``` | ||
|
||
**IMPORTANT** After completion, visit the link `https://dist.apache.org/repos/dist/dev/incubator/answer/{release-version}` to check whether the file upload is correct. | ||
|
||
![correct result](/img/community/release.jpeg) | ||
|