Skip to content

Commit

Permalink
chore: Update release process in how-to-release.md
Browse files Browse the repository at this point in the history
  • Loading branch information
robinv8 committed Sep 9, 2024
1 parent 09f17fe commit 18d10f0
Showing 1 changed file with 36 additions and 33 deletions.
69 changes: 36 additions & 33 deletions community/contributing/how-to-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```
Expand All @@ -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)
Expand Down

0 comments on commit 18d10f0

Please sign in to comment.