How-to-release.md 14.8 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 35 36 37 38 39
## Add your GPG public key
1. Add your GPG public key into [SkyWalking GPG KEYS](https://dist.apache.org/repos/dist/release/incubator/skywalking/KEYS) file,
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
```
wu-sheng's avatar
wu-sheng 已提交
51 52
_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._ 
53

wu-sheng's avatar
wu-sheng 已提交
54
## Stage the release 
55
```
56
./mvnw release:perform -DskipTests -Pauto-submodule
57
```
58
1. 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 已提交
59
1. The release will automatically be inserted into a temporary staging repository for you.
60

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

68 69 70 71 72 73 74 75
**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`. 

76

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

wu-sheng's avatar
wu-sheng 已提交
80 81 82 83
## 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 已提交
84 85
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.
wu-sheng's avatar
wu-sheng 已提交
86 87
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
88 89


wu-sheng's avatar
wu-sheng 已提交
90 91
## Upload to Apache svn
1. Use ApacheId to login `https://dist.apache.org/repos/dist/dev/incubator/skywalking/`
wu-sheng's avatar
wu-sheng 已提交
92
1. Create folder, named by release version and round, such as: x.y.z
93 94 95 96 97 98
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
99
    * Create .sha512 package: `shasum -a 512 file > file.sha512`
wu-sheng's avatar
wu-sheng 已提交
100

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
## 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 已提交
116
 * https://github.com/apache/incubator-skywalking/blob/master/CHANGES.md
117 118 119 120

Release Candidate:

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

Maven 2 staging repository:

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

Release Tag :

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

Release CommitID :

136 137 138 139
 * 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)
140
   * oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol https://github.com/apache/incubator-skywalking-query-protocol/tree/(Git Commit ID)
141 142 143 144 145 146 147

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 :

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

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 已提交
155 156
Any PPMC, committer or contributor can test features for releasing, and feedback.
Based on that, PPMC will decide whether start a vote.
157 158 159 160 161 162 163 164 165 166 167 168 169

## 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 已提交
170
 * https://github.com/apache/incubator-skywalking/blob/x.y.z/CHANGES.md
171 172 173 174

Release Candidate:

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

Maven 2 staging repository:

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

Release Tag :

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

Release CommitID :

190 191 192 193
 * 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)
194
   * oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol https://github.com/apache/incubator-skywalking-query-protocol/tree/(Git Commit ID)
195 196 197 198 199 200 201

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 :

202
 * https://github.com/apache/incubator-skywalking/blob/x.y.z/docs/en/guides/How-to-build.md
203 204 205 206 207 208 209 210 211 212 213 214

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 已提交
215
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 已提交
216
are in `https://dist.apache.org/repos/dist/dev/incubator/skywalking/x.y.z` with .asc, .sha512
217
1. `LICENSE` and `NOTICE` are in Source code and distribution package.
wu-sheng's avatar
wu-sheng 已提交
218
1. Check `shasum -c apache-skywalking-apm-incubating-x.y.z-src.tgz.sha512`
wu-sheng's avatar
wu-sheng 已提交
219
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/guides/How-to-build.md#build-from-apache-source-code-release).
220
1. Apache RAT check. Run `./mvnw apache-rat:check`. (No binary in source codes)
wu-sheng's avatar
wu-sheng 已提交
221
1. DISCLAIMER exists
222

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

227
## Call for a vote in Apache IPMC
wu-sheng's avatar
wu-sheng 已提交
228
Call a vote in `general@incubator.apache.org`
wu-sheng's avatar
wu-sheng 已提交
229 230 231 232 233 234 235 236

```
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 已提交
237 238 239 240 241 242
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.

243 244 245
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 已提交
246

wu-sheng's avatar
wu-sheng 已提交
247 248 249 250 251 252 253 254 255 256 257 258 259 260 261
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
262 263 264 265
 * 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 已提交
266 267 268 269 270 271 272

Maven 2 staging repository:

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

Release Tag :

wu-sheng's avatar
wu-sheng 已提交
273
 * (Git Tag) x.y.z
wu-sheng's avatar
wu-sheng 已提交
274 275 276

Release CommitID :

277 278 279 280
 * 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)
281
   * oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol https://github.com/apache/incubator-skywalking-query-protocol/tree/(Git Commit ID)
wu-sheng's avatar
wu-sheng 已提交
282 283 284 285 286 287 288

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 :

289
 * https://github.com/apache/incubator-skywalking/blob/x.y.z/docs/en/guides/How-to-build.md
wu-sheng's avatar
wu-sheng 已提交
290

wu-sheng's avatar
wu-sheng 已提交
291
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 已提交
292 293 294 295
[ ] +1 Release this package.
[ ] +0 No opinion.
[ ] -1 Do not release this package because....
```
296 297 298

## Vote result mail
Close the vote, if
wu-sheng's avatar
wu-sheng 已提交
299 300 301
1. In 72 hours, you got at least 3 (+1 binding), and have more +1 than -1. Vote pass. In IPMC vote, only Incubator project PMC
vote would be considered as +1 binding.
1. Some reviewers found some serious mistakes in this release, the team could decide to cancel vote and prepare a new RC.
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317

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 已提交
318
I will process to publish the release and send ANNOUNCE.
319 320 321
```

## Publish release
wu-sheng's avatar
wu-sheng 已提交
322 323 324
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 已提交
325
> svn mv https://dist.apache.org/repos/dist/dev/incubator/skywalking/x.y.z https://dist.apache.org/repos/dist/release/incubator/skywalking
wu-sheng's avatar
wu-sheng 已提交
326 327 328 329 330 331
....
enter your apache password
....

```
2. Do release in nexus staging repo.
wu-sheng's avatar
wu-sheng 已提交
332 333 334 335 336
3. Public download source and distribution tar/zip locate in `http://www.apache.org/dyn/closer.cgi/incubator/skywalking/x.y.z/xxx`.
We only publish Apache mirror path as release info.
4. Public asc and sha512 locate in `https://www.apache.org/dist/incubator/skywalking/x.y.z/xxx`
5. Public KEYS pointing to  `https://www.apache.org/dist/incubator/skywalking/KEYS`
6. Send ANNOUNCE mail to `general@incubator.apache.org` and `dev@skywalking.apache.org`.
337 338 339 340 341 342 343 344 345 346 347 348
```
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 已提交
349 350
Vote Thread: 

wu-sheng's avatar
wu-sheng 已提交
351
Download Links : http://skywalking.apache.org/downloads/
352 353 354

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

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

357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377
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.
```
378

wu-sheng's avatar
wu-sheng 已提交
379 380 381
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.