How-to-release.md 12.4 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 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
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 已提交
31
## Test your settings
32 33 34 35
```
mvn clean install -Papache-release (this will build artifacts, sources and sign)
```

wu-sheng's avatar
wu-sheng 已提交
36
## Prepare the release
37 38
```
mvn release:clean
wu-sheng's avatar
wu-sheng 已提交
39
mvn release:prepare -DautoVersionSubmodules=true
40 41
```

wu-sheng's avatar
wu-sheng 已提交
42
## Stage the release 
43
```
44
mvn release:perform -DskipTests -Ptravis-ci-submodule
45
```
wu-sheng's avatar
wu-sheng 已提交
46
1. Set version number as x.y.z, and tag as x.y.z-RCx. `x` in `RCx` is based the number of attempts release, aka `RELEASE_ROUND` in this doc, and starts with 1.
wu-sheng's avatar
wu-sheng 已提交
47
1. The release will automatically be inserted into a temporary staging repository for you.
48

wu-sheng's avatar
wu-sheng 已提交
49 50 51
## Build and sign the source code package
```shell
switch to release version tag
52
export RELEASE_VERSION=x.y.z (example: RELEASE_VERSION=5.0.0-alpha)
53
export RELEASE_ROUND=1 (example: RELEASE_ROUND=1)
wu-sheng's avatar
wu-sheng 已提交
54 55 56
cd tools/releasing
sh create_source_release.sh
```
57

wu-sheng's avatar
wu-sheng 已提交
58
`RELEASE_ROUND` must be as same as your setting in `Stage the release` step.
59

wu-sheng's avatar
wu-sheng 已提交
60 61
The `apache-skywalking-apm-incubating-x.y.z-src.tgz` should be found in `tools/releasing` folder,
with .asc, .sha512, .md5
62

wu-sheng's avatar
wu-sheng 已提交
63 64 65 66 67 68 69
## 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
1. Close the repository and wait for all checks pass.
1. Go to `{REPO_URL}/org/apache/skywalking/apache-skywalking-apm-incubating/x.y.z`
1. Download `.tar.gz` and `.zip` with .asc and .sha1
70 71


wu-sheng's avatar
wu-sheng 已提交
72 73
## Upload to Apache svn
1. Use ApacheId to login `https://dist.apache.org/repos/dist/dev/incubator/skywalking/`
wu-sheng's avatar
wu-sheng 已提交
74
1. Create folder, named by release version and round, such as: x.y.z-RCx
75 76 77 78 79 80 81 82
1. Upload Source code package to the folder with .asc, .sha512
    * Package name: apache-skywalking-incubating-x.y.z-src.tar.gz
    * See Section "Build and sign the source code package" for more details 
1. Upload distribution package to the folder with .asc, .sha512
    * Package name: apache-skywalking-incubating-x.y.z.tar.gz, apache-skywalking-incubating-x.y.z.zip
    * See Section "Find and download distribution in Apache Nexus Staging repositories" for more details
    * Create .sha512 package: `shasum -a 512 file > file.sha512`
1. Upload gpg public key, named KEY
wu-sheng's avatar
wu-sheng 已提交
83

84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
## 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:

wu-sheng's avatar
wu-sheng 已提交
99
 * https://github.com/apache/incubator-skywalking/blob/master/CHANGES.md
100 101 102 103

Release Candidate:

 * https://dist.apache.org/repos/dist/dev/incubator/skywalking/xxxx
104 105 106 107
 * sha512 checksums
   - sha512xxxxyyyzzz apache-skywalking-apm-incubating-x.x.x-src.tgz
   - sha512xxxxyyyzzz apache-skywalking-apm-incubating-x.x.x.tar.gz
   - sha512xxxxyyyzzz apache-skywalking-apm-incubating-x.x.x.zip
108 109 110 111 112 113 114

Maven 2 staging repository:

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

Release Tag :

wu-sheng's avatar
wu-sheng 已提交
115
 * (Git Tag) x.y.z-RCx
116 117 118

Release CommitID :

119 120 121 122
 * https://github.com/apache/incubator-skywalking/tree/(Git Commit ID)
 * Git submodule
   * skywalking-ui: https://github.com/apache/incubator-skywalking-ui/tree/(Git Commit ID)
   * apm-protocol/apm-network/src/main/proto: https://github.com/apache/incubator-skywalking-data-collect-protocol/tree/(Git Commit ID)
123 124 125 126 127 128 129 130 131 132 133 134 135 136

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 :

 * https://github.com/apache/incubator-skywalking/blob/master/docs/en/How-to-build.md

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
wu-sheng's avatar
wu-sheng 已提交
137 138
Any PPMC, committer or contributor can test features for releasing, and feedback.
Based on that, PPMC will decide whether start a vote.
139 140 141 142 143 144 145 146 147 148 149 150 151

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

```
Mail title: [VOTE] Release Apache SkyWalking (incubating) version x.y.z

Mail content:
Hi All,
This is a call for vote to release Apache SkyWalking (Incubating) version x.y.z.

Release notes:

wu-sheng's avatar
wu-sheng 已提交
152
 * https://github.com/apache/incubator-skywalking/blob/x.y.z/CHANGES.md
153 154 155 156

Release Candidate:

 * https://dist.apache.org/repos/dist/dev/incubator/skywalking/xxxx
157 158 159 160
 * sha512 checksums
   - sha512xxxxyyyzzz apache-skywalking-apm-incubating-x.x.x-src.tgz
   - sha512xxxxyyyzzz apache-skywalking-apm-incubating-x.x.x.tar.gz
   - sha512xxxxyyyzzz apache-skywalking-apm-incubating-x.x.x.zip
161 162 163 164 165 166 167

Maven 2 staging repository:

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

Release Tag :

wu-sheng's avatar
wu-sheng 已提交
168
 * (Git Tag) x.y.z-RCx
169 170 171

Release CommitID :

172 173 174 175
 * https://github.com/apache/incubator-skywalking/tree/(Git Commit ID)
 * Git submodule
   * skywalking-ui: https://github.com/apache/incubator-skywalking-ui/tree/(Git Commit ID)
   * apm-protocol/apm-network/src/main/proto: https://github.com/apache/incubator-skywalking-data-collect-protocol/tree/(Git Commit ID)
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195

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 :

 * https://github.com/apache/incubator-skywalking/blob/master/docs/en/How-to-build.md

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

## Vote Check
All PPMC members and committers should check these before vote +1.

1. Features test.
1. All artifacts in staging repository are published with .asc, .md5, *sha1 files
wu-sheng's avatar
wu-sheng 已提交
196
1. Source code and distribution package (apache-skywalking-incubating-x.y.z-src.tar.gz, apache-skywalking-incubating-x.y.z.tar.gz, apache-skywalking-incubating-x.y.z.zip)
wu-sheng's avatar
wu-sheng 已提交
197
are in `https://dist.apache.org/repos/dist/dev/incubator/skywalking/x.y.z` with .asc, .sha512
198
1. `LICENSE` and `NOTICE` are in Source code and distribution package.
wu-sheng's avatar
wu-sheng 已提交
199 200
1. Check `shasum -c apache-skywalking-apm-incubating-x.y.z-src.tgz.sha512`
1. Build distribution from source code package (apache-skywalking-incubating-x.y.z-src.tar.gz) by following this [doc](https://github.com/apache/incubator-skywalking/blob/master/docs/en/How-to-build.md#build-from-apache-source-codes).
wu-sheng's avatar
wu-sheng 已提交
201 202
1. Apache RAT check. Run `mvn apache-rat:check`. (No binary in source codes)
1. DISCLAIMER exists
203 204

## Call for a vote in Apache IPMC
wu-sheng's avatar
wu-sheng 已提交
205
Call a vote in `general@incubator.apache.org`
wu-sheng's avatar
wu-sheng 已提交
206 207 208 209 210 211 212 213

```
Mail title: [VOTE] Release Apache SkyWalking (incubating) version x.y.z

Mail content:
Hi All,
This is a call for vote to release Apache SkyWalking (Incubating) version x.y.z.

wu-sheng's avatar
wu-sheng 已提交
214 215 216 217 218 219
The Apache SkyWalking community has tested, voted and approved the proposed
release of Apache SkyWalking (Incubating) x.y.z

We now kindly request the Incubator PMC members review and vote on this
incubator release.

220 221 222
SkyWalking: APM (application performance monitor) tool for distributed systems, 
especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures. 
Underlying technology is a distributed tracing system.
wu-sheng's avatar
wu-sheng 已提交
223

wu-sheng's avatar
wu-sheng 已提交
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238
Vote Thread:

 * From `list.apache.org`

Result Thread:

 * From the vote thread.

Release notes:

 * https://github.com/apache/incubator-skywalking/blob/x.y.z/CHANGES.md

Release Candidate:

 * https://dist.apache.org/repos/dist/dev/incubator/skywalking/xxxx
239 240 241 242
 * sha512 checksums
   - sha512xxxxyyyzzz apache-skywalking-apm-incubating-x.x.x-src.tgz
   - sha512xxxxyyyzzz apache-skywalking-apm-incubating-x.x.x.tar.gz
   - sha512xxxxyyyzzz apache-skywalking-apm-incubating-x.x.x.zip
wu-sheng's avatar
wu-sheng 已提交
243 244 245 246 247 248 249

Maven 2 staging repository:

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

Release Tag :

wu-sheng's avatar
wu-sheng 已提交
250
 * (Git Tag) x.y.z-RCx
wu-sheng's avatar
wu-sheng 已提交
251 252 253

Release CommitID :

254 255 256 257
 * https://github.com/apache/incubator-skywalking/tree/(Git Commit ID)
 * Git submodule
   * skywalking-ui: https://github.com/apache/incubator-skywalking-ui/tree/(Git Commit ID)
   * apm-protocol/apm-network/src/main/proto: https://github.com/apache/incubator-skywalking-data-collect-protocol/tree/(Git Commit ID)
wu-sheng's avatar
wu-sheng 已提交
258 259 260 261 262 263 264 265 266

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 :

 * https://github.com/apache/incubator-skywalking/blob/master/docs/en/How-to-build.md

wu-sheng's avatar
wu-sheng 已提交
267
Voting will start now (xxxx date) and will remain open for at least 72 hours, Request IPMC to give their vote.
wu-sheng's avatar
wu-sheng 已提交
268 269 270 271
[ ] +1 Release this package.
[ ] +0 No opinion.
[ ] -1 Do not release this package because....
```
272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292

## Vote result mail
Close the vote, if
1. In 72 hours, you got the more than 3 (+1 binding), and no -1. Vote pass.
1. Some reviewers found some serious mistakes in this release, the team decided to stop vote and prepare a new RC.

Send a mail to `general@incubator.apache.org` about vote result and status.
```
Mail title: [Result][VOTE] Release Apache SkyWalking (incubating) version x.y.z

Mail content:
Hi all,

The vote for releasing Apache SkyWalking x.y.z (incubating) is closed, now.

Vote result:
x (+1 binding) (Names of voters)
y -1.

Thank you everyone for taking the time to review the release and help us. 

wu-sheng's avatar
wu-sheng 已提交
293
I will process to publish the release and send ANNOUNCE.
294 295 296
```

## Publish release
wu-sheng's avatar
wu-sheng 已提交
297 298 299
1. Move source codes tar balls and distributions to `https://dist.apache.org/repos/dist/release/incubator/skywalking/`.
```
> export SVN_EDITOR=vim
wu-sheng's avatar
wu-sheng 已提交
300
> svn mv https://dist.apache.org/repos/dist/dev/incubator/skywalking/x.y.z-RCx https://dist.apache.org/repos/dist/release/incubator/skywalking
wu-sheng's avatar
wu-sheng 已提交
301 302 303 304 305 306
....
enter your apache password
....

```
2. Do release in nexus staging repo.
wu-sheng's avatar
wu-sheng 已提交
307 308
3. Public download URLs under `http://www.apache.org/dyn/closer.cgi/incubator/skywalking/x.y.z`.
4. Public KEYS, sigs and sha512 URLs under `https://www.apache.org/dist/incubator/skywalking/xxxx`
wu-sheng's avatar
wu-sheng 已提交
309
5. Re-tag on GitHub, tag `x.y.z-RCx` as `x.y.z`, and publish a GitHub release based on this tag.
310
5. Send ANNOUNCE mail to `general@incubator.apache.org` and `dev@skywalking.apache.org`.
311 312 313 314 315 316 317 318 319 320 321 322
```
Mail title: [ANNOUNCE] Release Apache SkyWalking (incubating) version x.y.z

Mail content:
Hi all,

Apache SkyWalking (incubating) Team is glad to announce the first release of Apache SkyWalking Incubating x.y.z.

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

wu-sheng's avatar
wu-sheng 已提交
323 324
Vote Thread: 

wu-sheng's avatar
wu-sheng 已提交
325
Download Links : http://skywalking.apache.org/downloads/
326 327 328

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

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

331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351
SkyWalking Resources:
- Issue: https://github.com/apache/incubator-skywalking/issues
- Mailing list: dev@skywalkiing.incubator.apache.org
- Documents: https://github.com/apache/incubator-skywalking/blob/x.y.z/docs/README.md


- Apache SkyWalking (incubating) Team

=====
*Disclaimer*

Apache SkyWalking (incubating) is an effort undergoing incubation at The
Apache Software Foundation (ASF), sponsored by the name of Apache
Incubator PMC. Incubation is required of all newly accepted
projects until a further review indicates that the
infrastructure, communications, and decision making process have
stabilized in a manner consistent with other successful ASF
projects. While incubation status is not necessarily a reflection
of the completeness or stability of the code, it does indicate
that the project has yet to be fully endorsed by the ASF.
```
352 353

6. Update skywalking website download page: http://skywalking.apache.org/downloads/