This is an automated email from the ASF dual-hosted git repository. kezhenxu94 pushed a commit to branch docu/relea in repository https://gitbox.apache.org/repos/asf/skywalking-nodejs.git
commit 8170991c0d87d75930f2965a317171a1193ba73a Author: kezhenxu94 <[email protected]> AuthorDate: Thu Dec 31 13:01:51 2020 +0800 Add documentations about how to release --- docs/How-to-release.md | 181 +++++++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 4 +- package.json | 4 +- 3 files changed, 186 insertions(+), 3 deletions(-) diff --git a/docs/How-to-release.md b/docs/How-to-release.md new file mode 100644 index 0000000..a56be1c --- /dev/null +++ b/docs/How-to-release.md @@ -0,0 +1,181 @@ +# Apache SkyWalking NodeJS Release Guide + +This documentation guides the release manager to release the SkyWalking NodeJS in the Apache Way, and also helps people to check the release for voting. + +## Prerequisites + +1. Close (if finished, or move to next milestone otherwise) all issues in the current milestone from [skywalking-nodejs](https://github.com/apache/skywalking-nodejs/milestones) and [skywalking](https://github.com/apache/skywalking/milestones), create a new milestone for the next release. +1. Update [CHANGELOG.md](../CHANGELOG.md) and `version` in [package.json](../package.json). + + +## Add your GPG public key to Apache svn + +1. Upload your GPG public key to a public GPG site, such as [MIT's site](http://pgp.mit.edu:11371/). + +1. Log in [id.apache.org](https://id.apache.org/) and submit your key fingerprint. + +1. Add your GPG public key into [SkyWalking GPG KEYS](https://dist.apache.org/repos/dist/release/skywalking/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 + +```shell +export VERSION=<the version to release> + +git clone --recurse-submodules [email protected]:apache/skywalking-nodejs && cd skywalking-nodejs +git tag -a "v$VERSION" -m "Release Apache SkyWalking-NodeJS $VERSION" +git push --tags + +npm install && npm run release-src +``` + +## Upload to Apache svn + +```bash +svn co https://dist.apache.org/repos/dist/dev/skywalking/node-js/ release/skywalking/node-js +mkdir -p release/skywalking/node-js/"$VERSION" +cp skywalking-node-js/skywalking*.tgz release/skywalking/node-js/"$VERSION" +cp skywalking-node-js/skywalking*.tgz.asc release/skywalking/node-js/"$VERSION" +cp skywalking-node-js/skywalking*.tgz.sha512 release/skywalking/node-js/"$VERSION" + +cd release/skywalking && svn add node-js/$VERSION && svn commit node-js -m "Draft Apache SkyWalking-NodeJS release $VERSION" +``` + +## Call for vote in dev@ mailing list + +Call for vote in `[email protected]`. + +```text +Subject: [VOTE] Release Apache SkyWalking NodeJS version $VERSION + +Content: + +Hi the SkyWalking Community: +This is a call for vote to release Apache SkyWalking NodeJS version $VERSION. + +Release notes: + + * https://github.com/apache/skywalking-nodejs/blob/v$VERSION/CHANGELOG.md + +Release Candidate: + + * https://dist.apache.org/repos/dist/dev/skywalking/node-js/$VERSION + * sha512 checksums + - sha512xxxxyyyzzz skywalking-nodejs-src-x.x.x.tgz + +Release Tag : + + * (Git Tag) v$VERSION + +Release Commit Hash : + + * https://github.com/apache/skywalking-nodejs/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-nodejs/blob/master/CONTRIBUTING.md#compiling-and-building + +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-nodejs/blob/master/docs/How-to-release.md#vote-check +``` + +## Vote Check + +All PMC members and committers should check these before voting +1: + +1. Features test. +1. All artifacts in staging repository are published with `.asc`, `.md5`, and `sha` files. +1. Source codes and distribution packages (`skywalking-nodejs-src-$VERSION.tgz`) +are in `https://dist.apache.org/repos/dist/dev/skywalking/node-js/$VERSION` with `.asc`, `.sha512`. +1. `LICENSE` and `NOTICE` are in source codes and distribution package. +1. Check `shasum -c skywalking-nodejs-src-$VERSION.tgz.sha512`. +1. Check `gpg --verify skywalking-nodejs-src-$VERSION.tgz.asc skywalking-nodejs-src-$VERSION.tgz`. +1. Build distribution from source code package by following this [the build guide](#build-and-sign-the-source-code-package). +1. Licenses check, `make license`. + +Vote result should follow these: + +1. PMC vote is +1 binding, all others is +1 no binding. + +1. Within 72 hours, you get at least 3 (+1 binding), and have more +1 than -1. Vote pass. + +1. **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 NodeJS 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 + +1. 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**. + + ```shell + svn mv https://dist.apache.org/repos/dist/dev/skywalking/node-js/"$VERSION" https://dist.apache.org/repos/dist/release/skywalking/node-js/"$VERSION" + ``` + +1. Refer to the previous [PR](https://github.com/apache/skywalking-website/pull/190), update news and links on the website. There are several files need to modify. + +1. Update [Github release page](https://github.com/apache/skywalking-nodejs/releases), follow the previous convention. + +1. Publish to npmjs.com, this is optional for Apache releases, but we usually want to do this to let users use it conveniently. + + ```shell + npm build && npm pack && npm publish + ``` + +**NOTE**: please double check before publishing to npmjs.com, it's difficult to unpublish and republish the module at the moment. + +1. Send ANNOUNCE email to `[email protected]` and `[email protected]`, the sender should use his/her Apache email account. + + ``` + Subject: [ANNOUNCEMENT] Apache SkyWalking NodeJS $VERSION Released + + Content: + + Hi the SkyWalking Community + + On behalf of the SkyWalking Team, I’m glad to announce that SkyWalking NodeJS $VERSION is now released. + + SkyWalking NodeJS: The NodeJS Agent for Apache SkyWalking, which provides the native tracing abilities for NodeJS 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-nodejs/blob/v$VERSION/CHANGELOG.md + + Website: http://skywalking.apache.org/ + + SkyWalking NodeJS Resources: +- Issue: https://github.com/apache/skywalking/issues + - Mailing list: [email protected] + - Documents: https://github.com/apache/skywalking-nodejs/blob/v$VERSION/README.md + + The Apache SkyWalking Team +``` + + diff --git a/package-lock.json b/package-lock.json index 451b25a..60db95c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "skywalking", - "version": "0.1.0", + "name": "skywalking-backend-js", + "version": "0.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c56cc22..d40a1d7 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,9 @@ "lint": "tslint -p src/tsconfig.json src/**/*.ts", "test": "DEBUG=testcontainers* jest", "format": "prettier --write \"src/**/*.ts\"", - "clean": "(rm -rf src/proto || true) && (rm -rf src/proto || true) && (rm -rf lib || true)" + "clean": "(rm -rf src/proto || true) && (rm -rf src/proto || true) && (rm -rf lib || true)", + "package-src": "tar -zcvf skywalking-nodejs-src-$npm_package_version.tgz --exclude bin --exclude .git --exclude .idea --exclude .DS_Store --exclude .github --exclude node_modules --exclude skywalking-nodejs-src-$npm_package_version.tgz .", + "release-src": "npm run prepare && npm run package-src && gpg --batch --yes --armor --detach-sig skywalking-nodejs-src-$npm_package_version.tgz && shasum -a 512 skywalking-nodejs-src-$npm_package_version.tgz > skywalking-nodejs-src-$npm_package_version.tgz.sha512" }, "files": [ "lib/**/*"
