Apache SkyWalking Ruby Release Guide
This documentation guides the release manager to release the SkyWalking Ruby in the Apache Way, and also helps people to check the release for voting.
Prerequisites
- Close (if finished, or move to next milestone otherwise) all issues in the current milestone from skywalking-ruby and skywalking, create a new milestone for the next release.
- Update CHANGELOG.md and
version
in Version.rb.
Add your GPG public key to Apache svn
-
Upload your GPG public key to a public GPG site, such as MIT’s site.
-
Log in id.apache.org and submit your key fingerprint.
-
Add your GPG public key into SkyWalking GPG KEYS file, you can do this only if you are a PMC member. You can ask a PMC member for help. DO NOT override the existed
KEYS
file content, only append your key at the end of the file.
Build and sign the source code package
export VERSION=<the version to release>
git clone --recurse-submodules git@github.com:apache/skywalking-ruby && cd skywalking-ruby
git tag -a "v$VERSION" -m "Release Apache SkyWalking-Ruby $VERSION"
git push --tags
make release
Upload to Apache svn
svn co https://dist.apache.org/repos/dist/dev/skywalking/ruby/ release/skywalking/ruby
mkdir -p release/skywalking/ruby/"$VERSION"
cp skywalking-ruby/skywalking*.tgz release/skywalking/ruby/"$VERSION"
cp skywalking-ruby/skywalking*.tgz.asc release/skywalking/ruby/"$VERSION"
cp skywalking-ruby/skywalking*.tgz.sha512 release/skywalking/ruby/"$VERSION"
cd release/skywalking/ruby && svn add $VERSION && svn commit -m "Draft Apache SkyWalking-Ruby release $VERSION"
Call for vote in dev@ mailing list
First, generate a sha512sum for the source code package generated in last step:
sha512sum release/skywalking/ruby/"$VERSION"/skywalking-ruby-src-"$VERSION".tgz
Call for vote in dev@skywalking.apache.org
.
Subject: [VOTE] Release Apache SkyWalking Ruby version $VERSION
Content:
Hi the SkyWalking Community:
This is a call for vote to release Apache SkyWalking Ruby version $VERSION.
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-ruby/blob/v$VERSION/CHANGELOG.md
Release Candidate:
* https://dist.apache.org/repos/dist/dev/skywalking/ruby/$VERSION
* sha512 checksums
- sha512xxxxyyyzzz skywalking-ruby-src-x.x.x.tgz
Release Tag :
* (Git Tag) v$VERSION
Release Commit Hash :
* https://github.com/apache/skywalking-ruby/tree/<Git Commit Hash>
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-ruby/blob/main/CONTRIBUTING.md#compiling-and-building
A vote regarding the quality of this test build will be initiated
within the next couple of days.
Vote Check
All PMC members and committers should check these before voting +1:
- Features test.
- All artifacts in staging repository are published with
.asc
,.md5
, andsha
files. - Source codes and distribution packages (
skywalking-ruby-src-$VERSION.tgz
) are inhttps://dist.apache.org/repos/dist/dev/skywalking/ruby/$VERSION
with.asc
,.sha512
. LICENSE
andNOTICE
are in source codes and distribution package.- Check
shasum -c skywalking-ruby-src-$VERSION.tgz.sha512
. - Check
gpg --verify skywalking-ruby-src-$VERSION.tgz.asc skywalking-ruby-src-$VERSION.tgz
. - Build distribution from source code package by following this the build guide.
- Licenses check,
make license
.
Vote result should follow these:
-
PMC vote is +1 binding, all others is +1 no binding.
-
Within 72 hours, you get at least 3 (+1 binding), and have more +1 than -1. Vote pass.
-
Send the closing vote mail to announce the result. When count the binding and no binding votes, please list the names of voters. An example like this:
[RESULT][VOTE] Release Apache SkyWalking Ruby version $VERSION 72+ hours passed, we’ve got ($NUMBER) +1 bindings (and ... +1 non-bindings): (list names) +1 bindings: xxx ... +1 non-bindings: xxx ... Thank you for voting, I’ll continue the release process.
Publish release
-
Move source codes tar balls and distributions to
https://dist.apache.org/repos/dist/release/skywalking/
, you can do this only if you are a PMC member.svn mv https://dist.apache.org/repos/dist/dev/skywalking/ruby/"$VERSION" https://dist.apache.org/repos/dist/release/skywalking/ruby/"$VERSION"
-
Refer to the previous PR, update news and links on the website. There are several files need to modify.
-
Update Github release page, follow the previous convention.
-
Publish to rubygems.org, this is optional for Apache releases, but we usually want to do this to let users use it conveniently.
gem build skywalking.gemspec
gem push skywalking.gemspec
NOTE: please double check before publishing to rubygems.org, it’s difficult to unpublish and republish the module at the moment.
-
Send ANNOUNCE email to
dev@skywalking.apache.org
andannounce@apache.org
, the sender should use his/her Apache email account.Subject: [ANNOUNCEMENT] Apache SkyWalking Ruby $VERSION Released Content: Hi the SkyWalking Community On behalf of the SkyWalking Team, I’m glad to announce that SkyWalking Ruby $VERSION is now released. SkyWalking Ruby: The Ruby Agent for Apache SkyWalking, which provides the native tracing abilities for Ruby backend project. SkyWalking: APM (application performance monitor) tool for distributed systems, especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures. Download Links: http://skywalking.apache.org/downloads/ Release Notes : https://github.com/apache/skywalking-ruby/blob/v$VERSION/CHANGELOG.md Website: http://skywalking.apache.org/ SkyWalking Ruby Resources: Issue: https://github.com/apache/skywalking/issues - Mailing list: dev@skywalking.apache.org - Documents: https://github.com/apache/skywalking-ruby/blob/v$VERSION/README.md The Apache SkyWalking Team