If you're a committer, you can learn how to release SkyWalking in The Apache Way and start the voting process by reading this document.
Follow the steps in the Apache maven deployment environment document to set gpg tool and encrypt passwords.
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>
This step is only for testing purpose. If your env is correctly set, you don't need to check every time.
./mvnw clean install -Pall (this will build artifacts, sources and sign)
./mvnw release:clean ./mvnw release:prepare -DautoVersionSubmodules=true -Darguments='-Dmaven.test.skip' -Pall
You could do a GPG signature before preparing for the release. If you need to input the password to sign, and the maven doesn't provide you with the opportunity to do so, this may lead to failure of the release. To resolve this, you may run gpg --sign xxx in any file. This will allow it to remember the password for long enough to prepare for the release.
./mvnw release:perform -Darguments='-Dmaven.test.skip' -Pall
export RELEASE_VERSION=x.y.z (example: RELEASE_VERSION=5.0.0-alpha) cd tools/releasing bash create_source_release.sh
This script takes care of the following things:
v + RELEASE_VERSION as tag to clone the codes.git submodule init/update..git, .github, and .gitmodules. See the script for more details.gpg and shasum 512.apache-skywalking-apm-x.y.z-src.tgz and files ending with .asc and .sha512 may be found in the tools/releasing folder.
https://repository.apache.org/.https://repository.apache.org/#stagingRepositories.skywalking and find your staging repository.{REPO_URL}/org/apache/skywalking/apache-skywalking-apm/x.y.z..tar.gz and .zip and files ending with .asc and .sha1.https://dist.apache.org/repos/dist/dev/skywalking/.x.y.z.asc and .sha512.apache-skywalking-x.y.z-src.tar.gz.asc and .sha512.apache-skywalking-bin-x.y.z.tar.gz..sha512 package: shasum -a 512 file > file.sha512Send 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: * https://github.com/apache/skywalking/blob/master/docs/en/changes/changes-x.y.z.md Release Candidate: * https://dist.apache.org/repos/dist/dev/skywalking/xxxx * sha512 checksums - sha512xxxxyyyzzz apache-skywalking-apm-x.x.x-src.tgz - sha512xxxxyyyzzz apache-skywalking-apm-bin-x.x.x.tar.gz Maven 2 staging repository: * https://repository.apache.org/content/repositories/xxxx/org/apache/skywalking/ Release Tag : * (Git Tag) vx.y.z Release CommitID : * https://github.com/apache/skywalking/tree/(Git Commit ID) * Git submodule * skywalking-ui: https://github.com/apache/skywalking-booster-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) Keys to verify the Release Candidate : * https://dist.apache.org/repos/dist/release/skywalking/KEYS Guide to build the release from source : * https://github.com/apache/skywalking/blob/vx.y.z/docs/en/guides/How-to-build.md A vote regarding the quality of this test build will be initiated within the next couple of days.
Any PMC member, committer or contributor can test the release features and provide feedback. Based on that, the PMC will decide whether to start the voting process.
Call a vote in dev@skywalking.apache.org
Mail title: [VOTE] Release Apache SkyWalking version x.y.z Mail content: Hi All, This is a call for vote to release Apache SkyWalking version x.y.z. Release notes: * https://github.com/apache/skywalking/blob/master/docs/en/changes/changes-x.y.z.md Release Candidate: * https://dist.apache.org/repos/dist/dev/skywalking/xxxx * sha512 checksums - sha512xxxxyyyzzz apache-skywalking-apm-x.x.x-src.tgz - sha512xxxxyyyzzz apache-skywalking-apm-bin-x.x.x.tar.gz Maven 2 staging repository: * https://repository.apache.org/content/repositories/xxxx/org/apache/skywalking/ Release Tag : * (Git Tag) vx.y.z Release CommitID : * https://github.com/apache/skywalking/tree/(Git Commit ID) * Git submodule * skywalking-ui: https://github.com/apache/skywalking-booster-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) Keys to verify the Release Candidate : * https://dist.apache.org/repos/dist/release/skywalking/KEYS Guide to build the release from source : * https://github.com/apache/skywalking/blob/vx.y.z/docs/en/guides/How-to-build.md Voting will start now (xxxx date) and will remain open for at least 72 hours, Request all PMC members to give their vote. [ ] +1 Release this package. [ ] +0 No opinion. [ ] -1 Do not release this package because....
All PMC members and committers should check these before casting +1 votes.
.asc, .md5, and *sha1 files.apache-skywalking-x.y.z-src.tar.gz, apache-skywalking-bin-x.y.z.tar.gz, apache-skywalking-bin-x.y.z.zip) are found in https://dist.apache.org/repos/dist/dev/skywalking/x.y.z with .asc and .sha512.LICENSE and NOTICE are in the source code and distribution package.shasum -c apache-skywalking-apm-x.y.z-src.tgz.sha512.gpg --verify apache-skywalking-apm-x.y.z-src.tgz.asc apache-skywalking-apm-x.y.z-src.tgzapache-skywalking-x.y.z-src.tar.gz) by following this doc.docker run --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check. (No binaries in source codes)The voting process is as follows:
https://dist.apache.org/repos/dist/release/skywalking/.> export SVN_EDITOR=vim > svn mv https://dist.apache.org/repos/dist/dev/skywalking/x.y.z https://dist.apache.org/repos/dist/release/skywalking .... enter your apache password ....
http://www.apache.org/dyn/closer.cgi/skywalking/x.y.z/xxx. The Apache mirror path is the only release information that we publish.https://www.apache.org/dist/skywalking/x.y.z/xxx.https://www.apache.org/dist/skywalking/KEYS.dev@skywalking.apache.org, announce@apache.org. The sender should use the Apache email account.Mail title: [ANNOUNCE] Apache SkyWalking x.y.z released Mail content: Hi all, Apache SkyWalking Team is glad to announce the first release of Apache SkyWalking 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. 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. ... Please refer to the change log for the complete list of changes: https://github.com/apache/skywalking/blob/master/docs/en/changes/changes-x.y.z.md Apache SkyWalking website: http://skywalking.apache.org/ Downloads: http://skywalking.apache.org/downloads/ Twitter: https://twitter.com/ASFSkyWalking SkyWalking Resources: - GitHub: https://github.com/apache/skywalking - Issue: https://github.com/apache/skywalking/issues - Mailing list: dev@skywalkiing.apache.org - Apache SkyWalking Team
We have a GitHub workflow to automatically publish the Docker images to Docker Hub after you set the version from pre-release to release, all you need to do is to watch that workflow and see whether it succeeds, if it fails, you can use the following steps to publish the Docker images in your local machine.
export SW_VERSION=x.y.z git clone --depth 1 --branch v$SW_VERSION https://github.com/apache/skywalking.git cd skywalking svn co https://dist.apache.org/repos/dist/release/skywalking/$SW_VERSION release # (1) export CONTEXT=release export HUB=apache export OAP_NAME=skywalking-oap-server export UI_NAME=skywalking-ui export TAG=$SW_VERSION export DIST=<the binary package name inside (1), e.g. apache-skywalking-apm-8.8.0.tar.gz> make docker.push
Once the latest release has been published, you should clean up the old releases from the mirror system.