How-to-release.md 13.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
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
## Test your settings
35
```
36
./mvnw clean install -Papache-release (this will build artifacts, sources and sign)
37 38
```

wu-sheng's avatar
wu-sheng 已提交
39
## Prepare the release
40
```
41
./mvnw release:clean
42
./mvnw release:prepare -DautoVersionSubmodules=true -Pauto-submodule
43 44
```

wu-sheng's avatar
wu-sheng 已提交
45
## Stage the release 
46
```
47
./mvnw release:perform -DskipTests -Pauto-submodule
48
```
49
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 已提交
50
1. The release will automatically be inserted into a temporary staging repository for you.
51

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

59 60 61 62 63 64 65 66
**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`. 

67

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

wu-sheng's avatar
wu-sheng 已提交
71 72 73 74 75 76 77
## 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
78 79


wu-sheng's avatar
wu-sheng 已提交
80 81
## Upload to Apache svn
1. Use ApacheId to login `https://dist.apache.org/repos/dist/dev/incubator/skywalking/`
wu-sheng's avatar
wu-sheng 已提交
82
1. Create folder, named by release version and round, such as: x.y.z
83 84 85 86 87 88
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
89
    * Create .sha512 package: `shasum -a 512 file > file.sha512`
90
1. Add your gpg public key into the [KEYS](https://dist.apache.org/repos/dist/release/incubator/skywalking/KEYS) file. **Don't override the existing file.**
wu-sheng's avatar
wu-sheng 已提交
91

92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
## 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 已提交
107
 * https://github.com/apache/incubator-skywalking/blob/master/CHANGES.md
108 109 110 111

Release Candidate:

 * https://dist.apache.org/repos/dist/dev/incubator/skywalking/xxxx
112 113 114 115
 * 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
116 117 118 119 120 121 122

Maven 2 staging repository:

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

Release Tag :

wu-sheng's avatar
wu-sheng 已提交
123
 * (Git Tag) x.y.z
124 125 126

Release CommitID :

127 128 129 130
 * 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)
131
   * 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)
132 133 134 135 136 137 138

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 :

139
 * https://github.com/apache/incubator-skywalking/blob/x.y.z/docs/en/guides/How-to-build.md
140 141 142 143 144 145

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 已提交
146 147
Any PPMC, committer or contributor can test features for releasing, and feedback.
Based on that, PPMC will decide whether start a vote.
148 149 150 151 152 153 154 155 156 157 158 159 160

## 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 已提交
161
 * https://github.com/apache/incubator-skywalking/blob/x.y.z/CHANGES.md
162 163 164 165

Release Candidate:

 * https://dist.apache.org/repos/dist/dev/incubator/skywalking/xxxx
166 167 168 169
 * 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
170 171 172 173 174 175 176

Maven 2 staging repository:

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

Release Tag :

wu-sheng's avatar
wu-sheng 已提交
177
 * (Git Tag) x.y.z
178 179 180

Release CommitID :

181 182 183 184
 * 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)
185
   * 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)
186 187 188 189 190 191 192

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 :

193
 * https://github.com/apache/incubator-skywalking/blob/x.y.z/docs/en/guides/How-to-build.md
194 195 196 197 198 199 200 201 202 203 204 205

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 已提交
206
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 已提交
207
are in `https://dist.apache.org/repos/dist/dev/incubator/skywalking/x.y.z` with .asc, .sha512
208
1. `LICENSE` and `NOTICE` are in Source code and distribution package.
wu-sheng's avatar
wu-sheng 已提交
209 210
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).
211
1. Apache RAT check. Run `./mvnw apache-rat:check`. (No binary in source codes)
wu-sheng's avatar
wu-sheng 已提交
212
1. DISCLAIMER exists
213 214

## Call for a vote in Apache IPMC
wu-sheng's avatar
wu-sheng 已提交
215
Call a vote in `general@incubator.apache.org`
wu-sheng's avatar
wu-sheng 已提交
216 217 218 219 220 221 222 223

```
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 已提交
224 225 226 227 228 229
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.

230 231 232
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 已提交
233

wu-sheng's avatar
wu-sheng 已提交
234 235 236 237 238 239 240 241 242 243 244 245 246 247 248
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
249 250 251 252
 * 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 已提交
253 254 255 256 257 258 259

Maven 2 staging repository:

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

Release Tag :

wu-sheng's avatar
wu-sheng 已提交
260
 * (Git Tag) x.y.z
wu-sheng's avatar
wu-sheng 已提交
261 262 263

Release CommitID :

264 265 266 267
 * 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)
268
   * 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 已提交
269 270 271 272 273 274 275

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 :

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

wu-sheng's avatar
wu-sheng 已提交
278
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 已提交
279 280 281 282
[ ] +1 Release this package.
[ ] +0 No opinion.
[ ] -1 Do not release this package because....
```
283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303

## 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 已提交
304
I will process to publish the release and send ANNOUNCE.
305 306 307
```

## Publish release
wu-sheng's avatar
wu-sheng 已提交
308 309 310
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 已提交
311
> 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 已提交
312 313 314 315 316 317
....
enter your apache password
....

```
2. Do release in nexus staging repo.
wu-sheng's avatar
wu-sheng 已提交
318 319
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`
320
5. Send ANNOUNCE mail to `general@incubator.apache.org` and `dev@skywalking.apache.org`.
321 322 323 324 325 326 327 328 329 330 331 332
```
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 已提交
333 334
Vote Thread: 

wu-sheng's avatar
wu-sheng 已提交
335
Download Links : http://skywalking.apache.org/downloads/
336 337 338

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

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

341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361
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.
```
362 363

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