How-to-release.md 10.7 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
```
wu-sheng's avatar
wu-sheng 已提交
43
./mvnw clean install -Pall (this will build artifacts, sources and sign)
44 45
```

wu-sheng's avatar
wu-sheng 已提交
46
## Prepare the release
47
```
48
./mvnw release:clean
wu-sheng's avatar
wu-sheng 已提交
49
./mvnw release:prepare -DautoVersionSubmodules=true -Pall
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
```
wu-sheng's avatar
wu-sheng 已提交
59
./mvnw release:perform -DskipTests -Pall
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
## 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.

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:

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

Release Candidate:

122
 * https://dist.apache.org/repos/dist/dev/skywalking/xxxx
123
 * sha512 checksums
124 125 126
   - 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
127 128 129 130 131 132 133

Maven 2 staging repository:

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

Release Tag :

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

Release CommitID :

138
 * https://github.com/apache/skywalking/tree/(Git Commit ID)
139
 * Git submodule
140
   * skywalking-ui: https://github.com/apache/skywalking-rocketbot-ui/tree/(Git Commit ID)
141 142
   * 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)
143 144 145

Keys to verify the Release Candidate :

wu-sheng's avatar
wu-sheng 已提交
146
 * https://dist.apache.org/repos/dist/release/skywalking/KEYS
147 148 149

Guide to build the release from source :

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

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
157 158
Any PMC, committer or contributor can test features for releasing, and feedback.
Based on that, PMC will decide whether start a vote.
159 160 161 162 163

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

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

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

Release notes:

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

Release Candidate:

176
 * https://dist.apache.org/repos/dist/dev/skywalking/xxxx
177
 * sha512 checksums
178 179 180
   - 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
181 182 183 184 185 186 187

Maven 2 staging repository:

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

Release Tag :

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

Release CommitID :

192
 * https://github.com/apache/skywalking/tree/(Git Commit ID)
193
 * Git submodule
194
   * skywalking-ui: https://github.com/apache/skywalking-rocketbot-ui/tree/(Git Commit ID)
195 196
   * 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)
197 198 199

Keys to verify the Release Candidate :

wu-sheng's avatar
wu-sheng 已提交
200
 * https://dist.apache.org/repos/dist/release/skywalking/KEYS
201 202 203

Guide to build the release from source :

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

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

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

1. Features test.
1. All artifacts in staging repository are published with .asc, .md5, *sha1 files
217 218
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
219
1. `LICENSE` and `NOTICE` are in Source code and distribution package.
220 221
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).
222
1. Apache RAT check. Run `./mvnw apache-rat:check`. (No binary in source codes)
223

224

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

229 230

## Publish release
231
1. Move source codes tar balls and distributions to `https://dist.apache.org/repos/dist/release/skywalking/`.
wu-sheng's avatar
wu-sheng 已提交
232 233
```
> export SVN_EDITOR=vim
234
> 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 已提交
235 236 237 238 239 240
....
enter your apache password
....

```
2. Do release in nexus staging repo.
241
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 已提交
242
We only publish Apache mirror path as release info.
243 244
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`
wu-sheng's avatar
wu-sheng 已提交
245 246
6. 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).
wu-sheng's avatar
wu-sheng 已提交
247
7. Add a release event on website homepage and event page. Announce the public release with changelog or key features.
wu-sheng's avatar
wu-sheng 已提交
248
8. Send ANNOUNCE email to `dev@skywalking.apache.org`, `announce@apache.org`, the sender should use Apache email account.
249
```
wu-sheng's avatar
wu-sheng 已提交
250
Mail title: [ANNOUNCE] Apache SkyWalking x.y.z released
251 252 253 254

Mail content:
Hi all,

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

wu-sheng's avatar
wu-sheng 已提交
257 258 259 260 261 262 263 264 265 266
SkyWalking: APM (application performance monitor) tool for distributed systems,
especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures.

This release contains a number of new features, bug fixes and improvements compared to
version a.b.c(last release). The notable changes since x.y.z include:

(Highlight key changes)
1. ...
2. ...
3. ...
267

wu-sheng's avatar
wu-sheng 已提交
268
Please refer to the change log for the complete list of changes:
wu-sheng's avatar
wu-sheng 已提交
269
https://github.com/apache/skywalking/blob/vx.y.z/CHANGES.md
wu-sheng's avatar
wu-sheng 已提交
270

wu-sheng's avatar
wu-sheng 已提交
271 272
Apache SkyWalking website:
http://skywalking.apache.org/
273

wu-sheng's avatar
wu-sheng 已提交
274 275
Downloads:
http://skywalking.apache.org/downloads/
276

wu-sheng's avatar
wu-sheng 已提交
277 278
Twitter:
https://twitter.com/ASFSkyWalking
wu-sheng's avatar
wu-sheng 已提交
279

280
SkyWalking Resources:
wu-sheng's avatar
wu-sheng 已提交
281
- GitHub: https://github.com/apache/skywalking
282 283
- Issue: https://github.com/apache/skywalking/issues
- Mailing list: dev@skywalkiing.apache.org
284 285


A
Alan Lau 已提交
286
- Apache SkyWalking Team
287
```