How-to-release.md 10.5 KB
Newer Older
wu-sheng's avatar
wu-sheng 已提交
1 2
Apache SkyWalking release guide
--------------------
wu-sheng's avatar
wu-sheng 已提交
3
This document guides every committer to release SkyWalking in Apache Way,
4
and also help committers to check the release for vote.
wu-sheng's avatar
wu-sheng 已提交
5

6

wu-sheng's avatar
wu-sheng 已提交
7
## Setup your development environment
8 9 10
Follow [Apache maven deployment environment document](http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env)
to set gpg tool and encrypt passwords

11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Use the following block as a template and place it in ~/.m2/settings.xml

```
<settings>
...
  <servers>
    <!-- To publish a snapshot of some part of Maven -->
    <server>
      <id>apache.snapshots.https</id>
      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
      <password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password>
    </server>
    <!-- To stage a release of some part of Maven -->
    <server>
      <id>apache.releases.https</id>
      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
      <password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password>
    </server>
   ...
  </servers>
</settings>
```

wu-sheng's avatar
wu-sheng 已提交
34
## Add your GPG public key
35
1. Add your GPG public key into [SkyWalking GPG KEYS](https://dist.apache.org/repos/dist/release/skywalking/KEYS) file,
wu-sheng's avatar
wu-sheng 已提交
36 37 38 39
only if you are a committer, use your Apache id and password login this svn, and update file. **Don't override the existing file.**
1. Upload your GPG public key to public GPG site. Such as [MIT's site](http://pgp.mit.edu:11371/). This site should be in 
Apache maven staging repository check list.

wu-sheng's avatar
wu-sheng 已提交
40
## Test your settings
wu-sheng's avatar
wu-sheng 已提交
41
This step is only for test, if your env is set right, don't need to check every time.
42
```
43
./mvnw clean install -Papache-release (this will build artifacts, sources and sign)
44 45
```

wu-sheng's avatar
wu-sheng 已提交
46
## Prepare the release
47
```
48
./mvnw release:clean
49
./mvnw release:prepare -DautoVersionSubmodules=true -Pauto-submodule
50
```
51 52 53

- Set version number as x.y.z, and tag as **v**x.y.z (version tag must start with **v**, you will find the purpose in next step.)

wu-sheng's avatar
wu-sheng 已提交
54 55
_You could do a GPG sign before doing release, if you need input the password to sign, and the maven don't give the chance,
but just failure. Run `gpg --sign xxx` to any file could remember the password for enough time to do release._ 
56

wu-sheng's avatar
wu-sheng 已提交
57
## Stage the release 
58
```
59
./mvnw release:perform -DskipTests -Pauto-submodule
60
```
61 62

- The release will automatically be inserted into a temporary staging repository for you.
63

wu-sheng's avatar
wu-sheng 已提交
64 65
## Build and sign the source code package
```shell
66
export RELEASE_VERSION=x.y.z (example: RELEASE_VERSION=5.0.0-alpha)
wu-sheng's avatar
wu-sheng 已提交
67 68 69
cd tools/releasing
sh create_source_release.sh
```
70

71 72 73 74 75 76 77 78
**NOTICE**, `create_source_release.sh` is just suitable for MacOS. Welcome anyone to contribute Windows bat and Linux shell. 

This scripts should do following things
1. Use `v` + `RELEASE_VERSION` as tag to clone the codes.
1. Make `git submodule init/update` done.
1. Exclude all unnecessary files in the target source tar, such as .git, .github, .gitmodules. See the script for the details.
1. Do `gpg` and `shasum 512`. 

79

80
The `apache-skywalking-apm-x.y.z-src.tgz` should be found in `tools/releasing` folder,
81
with .asc, .sha512.
82

wu-sheng's avatar
wu-sheng 已提交
83 84 85 86
## Find and download distribution in Apache Nexus Staging repositories
1. Use ApacheId to login `https://repository.apache.org/`
1. Go to `https://repository.apache.org/#stagingRepositories`
1. Search `skywalking` and find your staging repository
wu-sheng's avatar
wu-sheng 已提交
87 88
1. Close the repository and wait for all checks pass. In this step, your GPG KEYS will be checked. See [set PGP document](#add-your-gpg-public-key),
if you haven't done it before.
89
1. Go to `{REPO_URL}/org/apache/skywalking/apache-skywalking-apm/x.y.z`
wu-sheng's avatar
wu-sheng 已提交
90
1. Download `.tar.gz` and `.zip` with .asc and .sha1
91 92


wu-sheng's avatar
wu-sheng 已提交
93
## Upload to Apache svn
94
1. Use ApacheId to login `https://dist.apache.org/repos/dist/dev/skywalking/`
wu-sheng's avatar
wu-sheng 已提交
95
1. Create folder, named by release version and round, such as: x.y.z
96
1. Upload Source code package to the folder with .asc, .sha512
97
    * Package name: apache-skywalking-x.y.z-src.tar.gz
98 99
    * See Section "Build and sign the source code package" for more details 
1. Upload distribution package to the folder with .asc, .sha512
100
    * Package name: apache-skywalking-bin-x.y.z.tar.gz, apache-skywalking-bin-x.y.z.zip
101
    * See Section "Find and download distribution in Apache Nexus Staging repositories" for more details
102
    * Create .sha512 package: `shasum -a 512 file > file.sha512`
wu-sheng's avatar
wu-sheng 已提交
103

104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
## Make the internal announcements
Send an announcement mail in dev mail list.

```
Mail title: [ANNOUNCE] SkyWalking x.y.z test build available

Mail content:
The test build of x.y.z is available.

This is our Apache Incubator release.
We welcome any comments you may have, and will take all feedback into
account if a quality vote is called for this build.

Release notes:

119
 * https://github.com/apache/skywalking/blob/master/CHANGES.md
120 121 122

Release Candidate:

123
 * https://dist.apache.org/repos/dist/dev/skywalking/xxxx
124
 * sha512 checksums
125 126 127
   - sha512xxxxyyyzzz apache-skywalking-apm-x.x.x-src.tgz
   - sha512xxxxyyyzzz apache-skywalking-apm-bin-x.x.x.tar.gz
   - sha512xxxxyyyzzz apache-skywalking-apm-bin-x.x.x.zip
128 129 130 131 132 133 134

Maven 2 staging repository:

 * https://repository.apache.org/content/repositories/xxxx/org/apache/skywalking/

Release Tag :

wu-sheng's avatar
wu-sheng 已提交
135
 * (Git Tag) x.y.z
136 137 138

Release CommitID :

139
 * https://github.com/apache/skywalking/tree/(Git Commit ID)
140
 * Git submodule
141 142 143
   * skywalking-ui: https://github.com/apache/skywalking-ui/tree/(Git Commit ID)
   * apm-protocol/apm-network/src/main/proto: https://github.com/apache/skywalking-data-collect-protocol/tree/(Git Commit ID)
   * oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol https://github.com/apache/skywalking-query-protocol/tree/(Git Commit ID)
144 145 146 147 148 149 150

Keys to verify the Release Candidate :

 * http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x2EF5026E70A55777 corresponding to pengys@apache.org

Guide to build the release from source :

151
 * https://github.com/apache/skywalking/blob/x.y.z/docs/en/guides/How-to-build.md
152 153 154 155 156 157

A vote regarding the quality of this test build will be initiated
within the next couple of days.
```

## Wait at least 48 hours for test responses
158 159
Any PMC, committer or contributor can test features for releasing, and feedback.
Based on that, PMC will decide whether start a vote.
160 161 162 163 164

## Call a vote in dev
Call a vote in `dev@skywalking.apache.org`

```
165
Mail title: [VOTE] Release Apache SkyWalking version x.y.z
166 167 168

Mail content:
Hi All,
169
This is a call for vote to release Apache SkyWalking version x.y.z.
170 171 172

Release notes:

173
 * https://github.com/apache/skywalking/blob/x.y.z/CHANGES.md
174 175 176

Release Candidate:

177
 * https://dist.apache.org/repos/dist/dev/skywalking/xxxx
178
 * sha512 checksums
179 180 181
   - sha512xxxxyyyzzz apache-skywalking-apm-x.x.x-src.tgz
   - sha512xxxxyyyzzz apache-skywalking-apm-bin-x.x.x.tar.gz
   - sha512xxxxyyyzzz apache-skywalking-apm-bin-x.x.x.zip
182 183 184 185 186 187 188

Maven 2 staging repository:

 * https://repository.apache.org/content/repositories/xxxx/org/apache/skywalking/

Release Tag :

wu-sheng's avatar
wu-sheng 已提交
189
 * (Git Tag) x.y.z
190 191 192

Release CommitID :

193
 * https://github.com/apache/skywalking/tree/(Git Commit ID)
194
 * Git submodule
195 196 197
   * skywalking-ui: https://github.com/apache/skywalking-ui/tree/(Git Commit ID)
   * apm-protocol/apm-network/src/main/proto: https://github.com/apache/skywalking-data-collect-protocol/tree/(Git Commit ID)
   * oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol https://github.com/apache/skywalking-query-protocol/tree/(Git Commit ID)
198 199 200 201 202 203 204

Keys to verify the Release Candidate :

 * http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x2EF5026E70A55777 corresponding to pengys@apache.org

Guide to build the release from source :

205
 * https://github.com/apache/skywalking/blob/x.y.z/docs/en/guides/How-to-build.md
206

207
Voting will start now (xxxx date) and will remain open for at least 72 hours, Request all PMC members to give their vote.
208 209 210 211 212 213
[ ] +1 Release this package.
[ ] +0 No opinion.
[ ] -1 Do not release this package because....
```

## Vote Check
214
All PMC members and committers should check these before vote +1.
215 216 217

1. Features test.
1. All artifacts in staging repository are published with .asc, .md5, *sha1 files
218 219
1. Source code and distribution package (apache-skywalking-x.y.z-src.tar.gz, apache-skywalking-bin-x.y.z.tar.gz, apache-skywalking-bin-x.y.z.zip)
are in `https://dist.apache.org/repos/dist/dev/skywalking/x.y.z` with .asc, .sha512
220
1. `LICENSE` and `NOTICE` are in Source code and distribution package.
221 222
1. Check `shasum -c apache-skywalking-apm-x.y.z-src.tgz.sha512`
1. Build distribution from source code package (apache-skywalking-x.y.z-src.tar.gz) by following this [doc](https://github.com/apache/skywalking/blob/master/docs/en/guides/How-to-build.md#build-from-apache-source-code-release).
223
1. Apache RAT check. Run `./mvnw apache-rat:check`. (No binary in source codes)
224

225

wu-sheng's avatar
wu-sheng 已提交
226
Vote result should follow these.
227
1. PMC vote is +1 binding, all others is +1 no binding.
wu-sheng's avatar
wu-sheng 已提交
228 229
1. In 72 hours, you get at least 3 (+1 binding), and have more +1 than -1. Vote pass. 

230 231

## Publish release
232
1. Move source codes tar balls and distributions to `https://dist.apache.org/repos/dist/release/skywalking/`.
wu-sheng's avatar
wu-sheng 已提交
233 234
```
> export SVN_EDITOR=vim
235
> svn mv https://dist.apache.org/repos/dist/dev/skywalking/x.y.z https://dist.apache.org/repos/dist/release/skywalking
wu-sheng's avatar
wu-sheng 已提交
236 237 238 239 240 241
....
enter your apache password
....

```
2. Do release in nexus staging repo.
242
3. Public download source and distribution tar/zip locate in `http://www.apache.org/dyn/closer.cgi/skywalking/x.y.z/xxx`.
wu-sheng's avatar
wu-sheng 已提交
243
We only publish Apache mirror path as release info.
244 245 246
4. Public asc and sha512 locate in `https://www.apache.org/dist/skywalking/x.y.z/xxx`
5. Public KEYS pointing to  `https://www.apache.org/dist/skywalking/KEYS`
6. Send ANNOUNCE mail to `dev@skywalking.apache.org`.
247
```
248
Mail title: [ANNOUNCE] Release Apache SkyWalking version x.y.z
249 250 251 252

Mail content:
Hi all,

253
Apache SkyWalking  Team is glad to announce the first release of Apache SkyWalking Incubating x.y.z.
254 255 256 257

SkyWalking: APM (application performance monitor) tool for distributed systems, 
especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures. 

wu-sheng's avatar
wu-sheng 已提交
258 259
Vote Thread: 

wu-sheng's avatar
wu-sheng 已提交
260
Download Links : http://skywalking.apache.org/downloads/
261

262
Release Notes : https://github.com/apache/skywalking/blob/x.y.z/CHANGES.md
263

wu-sheng's avatar
wu-sheng 已提交
264 265
Website: http://skywalking.apache.org/

266
SkyWalking Resources:
267 268 269
- Issue: https://github.com/apache/skywalking/issues
- Mailing list: dev@skywalkiing.apache.org
- Documents: https://github.com/apache/skywalking/blob/x.y.z/docs/README.md
270 271


272
- Apache SkyWalking  Team
273
```
274

wu-sheng's avatar
wu-sheng 已提交
275 276 277
7. Update website download page. http://skywalking.apache.org/downloads/ . Include new download source, distribution, sha512, asc and document
links. Links could be found by following above rules(3)-(6).
8. Add an release event on website homepage and even page. Announce the public release with changelog or key features.