Apache SkyWalking BanyanDB release guide
This documentation guides the release manager to release the SkyWalking BanyanDB in the Apache Way, and also helps people to check the release for vote.
Prerequisites
- Close(if finished, or move to next milestone otherwise) all issues in the current milestone from skywalking-banyandb and skywalking, create a new milestone if needed.
- Update CHANGES.md.
Add your GPG public key to Apache svn
-
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.
Build and sign the source code package
export VERSION=<the version to release>
git clone git@github.com:apache/skywalking-banyandb && cd skywalking-banyandb
git tag -a "v$VERSION" -m "Release Apache SkyWalking BanyanDB $VERSION"
git push --tags
make clean && make release-assembly
make release-assembly writes six archives under build/, each with .asc and .sha512 (18 files):
skywalking-banyandb-${VERSION}-src.tgzskywalking-banyandb-${VERSION}-banyand.tgzskywalking-banyandb-${VERSION}-bydbctl.tgzskywalking-banyandb-${VERSION}-fodc-agent.tgzskywalking-banyandb-${VERSION}-fodc-proxy.tgzskywalking-banyandb-${VERSION}-canopy.tgz
Go binary packages include the SkyWalking Eyes output from dist/ (LICENSE, NOTICE, licenses/). make license-dep concatenates Go and UI Eyes inventories into dist/LICENSE. Because MCP has no independent archive, each Go binary package that stages mcp/dist also ships mcp/LICENSE, mcp/licenses/, and mcp/package-lock.json (still without node_modules). The Canopy archive ships canopy/LICENSE and canopy/licenses/ instead.
Upload to Apache svn
make release-push-candidate
The script will upload the source code package and binary package to the Apache SVN staging repository. The script will ask for your Apache ID and password. You can do this only if you are a PMC member.
After the script is finished, you will get the vote mail subject and content based on the following template.
Call for vote in dev@skywalking.apache.org
Subject: [VOTE] Release Apache SkyWalking BanyanDB version $VERSION
Content:
Hi the SkyWalking Community:
This is a call for vote to release Apache SkyWalking BanyanDB version $VERSION.
Release notes:
* https://github.com/apache/skywalking-banyandb/blob/v$VERSION/CHANGES.md
Release Candidate:
* https://dist.apache.org/repos/dist/dev/skywalking/banyandb/$VERSION
* sha512 checksums
- sha512xxxxyyyzzz skywalking-banyandb-$VERSION-src.tgz
- sha512xxxxyyyzzz skywalking-banyandb-$VERSION-banyand.tgz
- sha512xxxxyyyzzz skywalking-banyandb-$VERSION-bydbctl.tgz
- sha512xxxxyyyzzz skywalking-banyandb-$VERSION-fodc-agent.tgz
- sha512xxxxyyyzzz skywalking-banyandb-$VERSION-fodc-proxy.tgz
- sha512xxxxyyyzzz skywalking-banyandb-$VERSION-canopy.tgz
Release Tag :
* (Git Tag) v$VERSION
Release Commit Hash :
* https://github.com/apache/skywalking-banyandb/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-banyandb/blob/v$VERSION/docs/installation/binaries.md#build-from-source
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/blob/master/docs/en/guides/How-to-release.md#vote-check
Vote Check
All PMC members and committers should check these before voting +1:
- Features test.
- All artifacts in the staging repository are published with
.ascand.sha512files. - Source and distribution packages (
skywalking-banyandb-$VERSION-{src,banyand,bydbctl,fodc-agent,fodc-proxy,canopy}.tgz, 18 files) are inhttps://dist.apache.org/repos/dist/dev/skywalking/banyandb/$VERSIONwith.ascand.sha512. LICENSEandNOTICEare in source codes and distribution packages.- Check
sha512sum -c skywalking-banyandb-*$VERSION*.tgz.sha512. - Check GPG signature. Download KEYS and import them by
curl https://www.apache.org/dist/skywalking/KEYS -o KEYS && gpg --import KEYS. Checkgpg --batch --verify skywalking-banyandb-*$VERSION*.tgz.asc skywalking-banyandb-*$VERSION*.tgz. - Build distribution from source code package by following this the build guide.
- Licenses header check.
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 BanyanDB version $VERSION 3 days passed, we’ve got ($NUMBER) +1 bindings: xxx xxx xxx ... (list names) 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.export SVN_EDITOR=vim svn mv https://dist.apache.org/repos/dist/dev/skywalking/banyandb/$VERSION https://dist.apache.org/repos/dist/release/skywalking/banyandb # .... # enter your apache password # .... -
Remove last released tar balls from
https://dist.apache.org/repos/dist/release/skywalking -
Refer to the previous PR, update news and links on the website. There are seven files need to modify.
-
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. You can get the permlink of vote thread at here.Subject: [ANNOUNCEMENT] Apache SkyWalking BanyanDB $VERSION Released Content: Hi the SkyWalking Community On behalf of the SkyWalking Team, I’m glad to announce that SkyWalking BanyanDB $VERSION is now released. SkyWalking BanyanDB: An observability database, aims to ingest, analyze and store Metrics, Tracing and Logging data. SkyWalking: APM (application performance monitor) tool for distributed systems, especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures. Vote Thread: $VOTE_THREAD_PERMALINK Download Links: https://skywalking.apache.org/downloads/ Release Notes : https://github.com/apache/skywalking-banyandb/blob/v$VERSION/CHANGES.md Website: https://skywalking.apache.org/ SkyWalking BanyanDB Resources: - Issue: https://github.com/apache/skywalking/issues - Mailing list: dev@skywalkiing.apache.org - Documents: https://github.com/apache/skywalking-banyandb/blob/v$VERSION/README.md The Apache SkyWalking Team