You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2020/12/31 05:02:04 UTC
[skywalking-nodejs] 01/01: Add documentations about how to release
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 <ke...@apache.org>
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 git@github.com: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 `dev@skywalking.apache.org`.
+
+```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 `dev@skywalking.apache.org` and `announce@apache.org`, 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: dev@skywalking.apache.org
+ - 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/**/*"