This documentation guides the release manager to release the SkyWalking CLI in the Apache Way, and also helps people to check the release for vote.
- Close(if finished, or move to next milestone otherwise) all issues in the current milestone from skywalking-cli and skywalking, create a new milestone if needed.
- Update CHANGES.md.
-
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
KEYSfile content, only append your key at the end of the file.
Run the release from an empty directory. Build with the Go version CI uses (go-version in
.github/workflows/CI.yaml), not a newer local Go: make release runs the linter, and the release binaries embed the
Go standard library. GOTOOLCHAIN selects that version without installing it separately.
export VERSION=<the version to release>
export GOTOOLCHAIN=go1.26.<latest patch>
mkdir release-cli && cd release-cli
git clone --recurse-submodules git@github.com:apache/skywalking-cli && cd skywalking-cli
git tag -a "$VERSION" -m "Release Apache SkyWalking-CLI $VERSION"
make clean && make release && git push origin "$VERSION"Push the tag only after make release succeeds, which the && chain above enforces. scripts/pre-release.sh runs
these steps and the svn upload below.
In total, six files should be automatically generated in the directory: skywalking-cli-${VERSION}-bin.tgz
, skywalking-cli-${VERSION}-src.tgz, and their corresponding asc, sha512 files.
make release packs both tarballs with COPYFILE_DISABLE=1 tar --no-xattrs, so a release built on macOS carries no
AppleDouble ._* files or extended attributes. It fails if either package still contains ._*, .DS_Store or
__MACOSX entries.
Continue from inside skywalking-cli, where the build step above leaves you: the block first moves up to the release
directory. The svn working copy is removed only after the commit succeeds.
cd ..
svn co https://dist.apache.org/repos/dist/dev/skywalking/
mkdir -p skywalking/cli/"$VERSION"
cp skywalking-cli/skywalking*.tgz skywalking/cli/"$VERSION"
cp skywalking-cli/skywalking*.tgz.asc skywalking/cli/"$VERSION"
cp skywalking-cli/skywalking-cli*.tgz.sha512 skywalking/cli/"$VERSION"
cd skywalking/cli && svn add "$VERSION" && svn commit -m "Draft Apache SkyWalking-CLI release $VERSION" && \
cd ../.. && rm -rf skywalkingSend an announcement email to dev@ mailing list, please check all links before sending the email.
Subject: [ANNOUNCEMENT] SkyWalking CLi $VERSION test build available
Content:
The test build of SkyWalking CLI $VERSION is now 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-cli/blob/$VERSION/CHANGES.md
Release Candidate:
* https://dist.apache.org/repos/dist/dev/skywalking/cli/$VERSION
* sha512 checksums
- sha512xxxxyyyzzz apache-skywalking-cli-bin-x.x.x.tgz
- sha512xxxxyyyzzz apache-skywalking-cli-src-x.x.x.tgz
Release Tag :
* (Git Tag) $VERSION
Release Commit Hash :
* https://github.com/apache/skywalking-cli/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-cli/blob/$VERSION/docs/How-to-release.md
A vote regarding the quality of this test build will be initiated
within the next couple of days.
Any PMC, committer or contributor can test features for releasing, and feedback. Based on that, PMC will decide whether to start a vote or not.
Call for vote in dev@skywalking.apache.org, please check all links before sending the email.
Subject: [VOTE] Release Apache SkyWalking CLI version $VERSION
Content:
Hi the SkyWalking Community:
This is a call for vote to release Apache SkyWalking CLI version $VERSION.
Release notes:
* https://github.com/apache/skywalking-cli/blob/$VERSION/CHANGES.md
Release Candidate:
* https://dist.apache.org/repos/dist/dev/skywalking/cli/$VERSION
* sha512 checksums
- sha512xxxxyyyzzz skywalking-cli-x.x.x-src.tgz
- sha512xxxxyyyzzz skywalking-cli-x.x.x-bin.tgz
Release Tag :
* (Git Tag) $VERSION
Release Commit Hash :
* https://github.com/apache/skywalking-cli/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-cli/blob/$VERSION/docs/How-to-release.md
Voting will start now and will remain open for at least 72 hours, all PMC members are required to give their votes.
[ ] +1 Release this package.
[ ] +0 No opinion.
[ ] -1 Do not release this package because....
Thanks.
[1] https://github.com/apache/skywalking-cli/blob/master/docs/How-to-release.md#vote-check
All PMC members and committers should check these before voting +1:
- Features test.
- All artifacts in staging repository are published with
.ascand.sha512files. - Source codes and distribution packages (
skywalking-cli-$VERSION-{src,bin}.tgz) are inhttps://dist.apache.org/repos/dist/dev/skywalking/cli/$VERSIONwith.asc,.sha512. LICENSEandNOTICEare in source codes and distribution package.- The packages contain no macOS metadata files:
tar -tzf skywalking-cli-$VERSION-src.tgz | grep -E '(^|/)(\._|(\.DS_Store|__MACOSX)(/|$))'prints nothing, and the same for the bin package. On macOS, usetar --options '!mac-ext' -tzf ...instead: the system bsdtar hides AppleDouble._*entries when listing an archive. - Check
shasum -c skywalking-cli-$VERSION-{src,bin}.tgz.sha512. - Check
gpg --verify skywalking-cli-$VERSION-{src,bin}.tgz.asc skywalking-cli-$VERSION-{src,bin}.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 CLI version $VERSION 3 days 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.
Run scripts/release.sh from the skywalking-cli checkout of the release tag, with gh logged in and docker login
done. It does step 1, skipping it when the packages are already in dist/release, and asks before it publishes the
GitHub release and before it pushes the Docker images. Then it lists what is done, reminds you to update the website,
prints the announcement email, and asks before it removes the older releases from dist/release. Rerun it to finish a
skipped or failed step.
-
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/cli/$VERSION https://dist.apache.org/repos/dist/release/skywalking/cli -m"Release SkyWalking CLI $VERSION"
-
Push Docker images.
In order to publish the Docker images, you have to enable BuildKit in the Docker daemon.
make docker.push-
Refer to the previous PR, update the event and download links on the website.
-
Update Github release page, follow the previous convention.
-
Send ANNOUNCE email to
dev@skywalking.apache.organdannounce@apache.org, the sender should use his/her Apache email account, please check all links before sending the email.Subject: [ANNOUNCEMENT] Apache SkyWalking CLI $VERSION Released Content: Hi the SkyWalking Community On behalf of the SkyWalking Team, I’m glad to announce that SkyWalking CLI $VERSION is now released. SkyWalking CLI: A Command Line Interface for Apache SkyWalking. 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-cli/blob/$VERSION/CHANGES.md Website: http://skywalking.apache.org/ SkyWalking CLI Resources: - Issue: https://github.com/apache/skywalking/issues - Mailing list: dev@skywalking.apache.org - Documents: https://github.com/apache/skywalking-cli/blob/$VERSION/README.md The Apache SkyWalking Team -
Add a release on the report system (you can do this only if you are a PMC member).
Please remember to remove all unnecessary releases in the mirror svn (https://dist.apache.org/repos/dist/release/skywalking/), if you don't recommend users to choose those version. For example, you have removed the download and documentation links from the website. If they want old ones, the Archive repository has all of them.