From 92c3225433930014af8006f72d7a35b0717e5965 Mon Sep 17 00:00:00 2001
From: Matthew B White <mbwhite@users.noreply.github.com>
Date: Thu, 2 Jul 2020 13:37:04 +0100
Subject: [PATCH] [FABCN-421] release: 2.2.0 LTS release (#181)

Signed-off-by: Matthew B White <whitemat@uk.ibm.com>
---
 CHANGELOG.md                                         |  9 +++++++++
 TUTORIAL.md                                          |  4 ++--
 apis/fabric-contract-api/package.json                |  6 +++---
 apis/fabric-shim-api/package.json                    |  4 ++--
 ci/azure-pipelines.yml                               |  2 +-
 docs/_jsdoc/tutorials/using-chaincodeinterface.md    |  4 ++--
 docs/_jsdoc/tutorials/using-contractinterface.md     |  4 ++--
 libraries/fabric-shim-crypto/package.json            |  4 ++--
 libraries/fabric-shim/package.json                   |  8 ++++----
 package.json                                         |  4 ++--
 release_notes/v2.2.0.txt                             | 12 ++++++++++++
 test/chaincodes/annotations/package.json             |  4 ++--
 test/chaincodes/clientidentity/package.json          |  4 ++--
 test/chaincodes/crosschaincode/package.json          |  4 ++--
 test/chaincodes/crosschaincode2/package.json         |  4 ++--
 test/chaincodes/crud/package.json                    |  4 ++--
 test/chaincodes/encryption/package.json              |  6 +++---
 test/chaincodes/events/package.json                  |  4 ++--
 test/chaincodes/query/package.json                   |  4 ++--
 test/chaincodes/scenario/package.json                |  4 ++--
 test/chaincodes/server/package.json                  |  4 ++--
 test/fv/package.json                                 | 10 +++++-----
 .../network/docker-compose/docker-compose-base.yaml  |  2 +-
 23 files changed, 68 insertions(+), 47 deletions(-)
 create mode 100644 release_notes/v2.2.0.txt

diff --git a/CHANGELOG.md b/CHANGELOG.md
index f82da8f0..23df8858 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+## v2.2.0
+Thu  2 Jul 11:40:02 BST 2020
+
+* [0f1b616](https://github.com/hyperledger/fabric-chaincode-node/commit/0f1b616) [FABCN-421](https://jira.hyperledger.org/browse/FABCN-421) release: 2.2.0 LTS release
+* [9f30e90](https://github.com/hyperledger/fabric-chaincode-node/commit/9f30e90) Use Official CouchDB 3.1 Image (#180)
+* [eeca625](https://github.com/hyperledger/fabric-chaincode-node/commit/eeca625) [FABCN-420](https://jira.hyperledger.org/browse/FABCN-420) Remove Azure pipeline warnings (#177)
+* [cc7fee7](https://github.com/hyperledger/fabric-chaincode-node/commit/cc7fee7) [FABCN-319](https://jira.hyperledger.org/browse/FABCN-319) Update dependnency versions (#176)
+* [8966eed](https://github.com/hyperledger/fabric-chaincode-node/commit/8966eed) [FABCN-393](https://jira.hyperledger.org/browse/FABCN-393) Fix broken links in documents (#169)
+
 ## v2.1.4
 Mon 22 Jun 2020 14:51:02 BST
 
diff --git a/TUTORIAL.md b/TUTORIAL.md
index b9738f10..5d687148 100644
--- a/TUTORIAL.md
+++ b/TUTORIAL.md
@@ -28,8 +28,8 @@ The dependencies of `fabric-contract-api` and `fabric-shim` will be required.
   "author": "",
   "license": "Apache-2.0",
   "dependencies": {
-    "fabric-contract-api": "^2.1.5-unstable",
-    "fabric-shim": "^2.1.5-unstable"
+    "fabric-contract-api": "^2.2.0",
+    "fabric-shim": "^2.2.0"
   }
 }
 
diff --git a/apis/fabric-contract-api/package.json b/apis/fabric-contract-api/package.json
index 6959618c..6625ece3 100644
--- a/apis/fabric-contract-api/package.json
+++ b/apis/fabric-contract-api/package.json
@@ -1,7 +1,7 @@
 {
   "name": "fabric-contract-api",
-  "version": "2.1.5-unstable",
-  "tag": "unstable",
+  "version": "2.2.0",
+  "tag": "latest",
   "description": "A node.js implementation of Hyperledger Fabric chaincode shim, to allow endorsing peers and user-provided chaincodes to communicate with each other",
   "main": "index.js",
   "repository": {
@@ -46,7 +46,7 @@
     "lines": 100
   },
   "dependencies": {
-    "fabric-shim-api": "2.1.5-unstable",
+    "fabric-shim-api": "2.2.0",
     "class-transformer": "^0.2.2",
     "fast-safe-stringify": "^2.0.7",
     "get-params": "^0.1.2",
diff --git a/apis/fabric-shim-api/package.json b/apis/fabric-shim-api/package.json
index f04715bf..852093c7 100644
--- a/apis/fabric-shim-api/package.json
+++ b/apis/fabric-shim-api/package.json
@@ -1,7 +1,7 @@
 {
   "name": "fabric-shim-api",
-  "version": "2.1.5-unstable",
-  "tag": "unstable",
+  "version": "2.2.0",
+  "tag": "latest",
   "description": "A node.js API of Hyperledger Fabric chaincode shim, to allow endorsing peers and user-provided chaincodes to communicate with each other",
   "main": "index.js",
   "repository": {
diff --git a/ci/azure-pipelines.yml b/ci/azure-pipelines.yml
index d1c4202f..8ce8296f 100644
--- a/ci/azure-pipelines.yml
+++ b/ci/azure-pipelines.yml
@@ -291,7 +291,7 @@ stages:
                 workingFile: '$(Agent.TempDirectory)/.npmrc'
                 customEndpoint: 'fabric-chainode-node-npm'
             - script: |
-                find $(Pipeline.Workspace)/node-tgz/ -maxdepth 1 -type f -name 'fabric-*.tgz' -exec npm publish {} --tag unstable \;
+                find $(Pipeline.Workspace)/node-tgz/ -maxdepth 1 -type f -name 'fabric-*.tgz' -exec npm publish {} --tag latest \;
               displayName: 'npm publish'
         - job: dockerhub_publish
           steps:
diff --git a/docs/_jsdoc/tutorials/using-chaincodeinterface.md b/docs/_jsdoc/tutorials/using-chaincodeinterface.md
index 0aa44939..b00fe1a5 100644
--- a/docs/_jsdoc/tutorials/using-chaincodeinterface.md
+++ b/docs/_jsdoc/tutorials/using-chaincodeinterface.md
@@ -8,7 +8,7 @@ cd mycc
 // create a new node project
 npm init
 // install fabric-shim at master branch
-npm install fabric-shim@2.1.5-unstable
+npm install fabric-shim@2.2.0
 // or using the released version
 npm install fabric-shim
 touch mychaincode.js
@@ -68,7 +68,7 @@ Finally, update the "start" script in package.json to "node mychaincode.js":
 	"engineStrict": true,
 	"license": "Apache-2.0",
 	"dependencies": {
-		"fabric-shim": "2.1.5-unstable"
+		"fabric-shim": "2.2.0"
 	}
 }
 ```
diff --git a/docs/_jsdoc/tutorials/using-contractinterface.md b/docs/_jsdoc/tutorials/using-contractinterface.md
index 117545e4..3307cac4 100644
--- a/docs/_jsdoc/tutorials/using-contractinterface.md
+++ b/docs/_jsdoc/tutorials/using-contractinterface.md
@@ -28,8 +28,8 @@ The dependencies of `fabric-contract-api` and `fabric-shim` will be required.
   "author": "",
   "license": "Apache-2.0",
   "dependencies": {
-    "fabric-contract-api": "^2.1.5-unstable",
-    "fabric-shim": "^2.1.5-unstable"
+    "fabric-contract-api": "^2.2.0",
+    "fabric-shim": "^2.2.0"
   }
 }
 
diff --git a/libraries/fabric-shim-crypto/package.json b/libraries/fabric-shim-crypto/package.json
index 85dc16cd..813adf08 100644
--- a/libraries/fabric-shim-crypto/package.json
+++ b/libraries/fabric-shim-crypto/package.json
@@ -1,7 +1,7 @@
 {
     "name": "fabric-shim-crypto",
-    "version": "2.1.5-unstable",
-    "tag": "unstable",
+    "version": "2.2.0",
+    "tag": "latest",
     "description": "A node.js implementation of encryption library for Hyperledger Fabric chaincode shim",
     "main": "index.js",
     "repository": {
diff --git a/libraries/fabric-shim/package.json b/libraries/fabric-shim/package.json
index b9c83c77..d4651183 100644
--- a/libraries/fabric-shim/package.json
+++ b/libraries/fabric-shim/package.json
@@ -1,7 +1,7 @@
 {
   "name": "fabric-shim",
-  "version": "2.1.5-unstable",
-  "tag": "unstable",
+  "version": "2.2.0",
+  "tag": "latest",
   "description": "A node.js implementation of Hyperledger Fabric chaincode shim, to allow endorsing peers and user-provided chaincodes to communicate with each other",
   "main": "index.js",
   "bin": {
@@ -59,8 +59,8 @@
     "@grpc/proto-loader": "^0.5.4",
     "@types/node": "^14.0.13",
     "ajv": "^6.12.2",
-    "fabric-contract-api": "2.1.5-unstable",
-    "fabric-shim-api": "2.1.5-unstable",
+    "fabric-contract-api": "2.2.0",
+    "fabric-shim-api": "2.2.0",
     "fs-extra": "^9.0.1",
     "reflect-metadata": "^0.1.13",
     "winston": "^3.3.2",
diff --git a/package.json b/package.json
index e2b0fdbb..3a486456 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "fabric-chaincode-node",
-  "version": "2.1.5-unstable",
-  "tag": "unstable",
+  "version": "2.2.0",
+  "tag": "latest",
   "description": "fabric-chaincode-node monorepo, built with rush",
   "testFabricVersion": "master",
   "testFabricCAVersion": "1.4.4",
diff --git a/release_notes/v2.2.0.txt b/release_notes/v2.2.0.txt
new file mode 100644
index 00000000..9a9302c4
--- /dev/null
+++ b/release_notes/v2.2.0.txt
@@ -0,0 +1,12 @@
+v2.2.0
+------
+
+Release Notes
+-------------
+
+The v2.2.0 release is the LTS version of the fabric-chaincode-node
+
+
+Change Log
+----------
+https://github.com/hyperledger/fabric-chaincode-node/blob/release-2.x/CHANGELOG.md#v2.2.0
diff --git a/test/chaincodes/annotations/package.json b/test/chaincodes/annotations/package.json
index a6dc1f2f..c402b427 100644
--- a/test/chaincodes/annotations/package.json
+++ b/test/chaincodes/annotations/package.json
@@ -18,8 +18,8 @@
   "author": "",
   "license": "APACHE-2.0",
   "dependencies": {
-    "fabric-shim": "2.1.5-unstable",
-    "fabric-contract-api": "2.1.5-unstable",
+    "fabric-shim": "2.2.0",
+    "fabric-contract-api": "2.2.0",
     "@types/node": "^10.3.6",
     "ts-node": "^3.3.0",
     "tslint": "^5.6.0",
diff --git a/test/chaincodes/clientidentity/package.json b/test/chaincodes/clientidentity/package.json
index b08e7eb9..3fab4d93 100644
--- a/test/chaincodes/clientidentity/package.json
+++ b/test/chaincodes/clientidentity/package.json
@@ -15,7 +15,7 @@
     "author": "",
     "license": "Apache-2.0",
     "dependencies": {
-      "fabric-shim": "2.1.5-unstable",
-      "fabric-contract-api": "2.1.5-unstable"
+      "fabric-shim": "2.2.0",
+      "fabric-contract-api": "2.2.0"
     }
 }
diff --git a/test/chaincodes/crosschaincode/package.json b/test/chaincodes/crosschaincode/package.json
index 393a0910..5f7a1cc0 100644
--- a/test/chaincodes/crosschaincode/package.json
+++ b/test/chaincodes/crosschaincode/package.json
@@ -15,7 +15,7 @@
     "author": "",
     "license": "Apache-2.0",
     "dependencies": {
-      "fabric-shim": "2.1.5-unstable",
-      "fabric-contract-api": "2.1.5-unstable"
+      "fabric-shim": "2.2.0",
+      "fabric-contract-api": "2.2.0"
     }
 }
diff --git a/test/chaincodes/crosschaincode2/package.json b/test/chaincodes/crosschaincode2/package.json
index 30e052b6..4a51ce54 100644
--- a/test/chaincodes/crosschaincode2/package.json
+++ b/test/chaincodes/crosschaincode2/package.json
@@ -15,7 +15,7 @@
     "author": "",
     "license": "Apache-2.0",
     "dependencies": {
-      "fabric-shim": "2.1.5-unstable",
-      "fabric-contract-api": "2.1.5-unstable"
+      "fabric-shim": "2.2.0",
+      "fabric-contract-api": "2.2.0"
     }
 }
diff --git a/test/chaincodes/crud/package.json b/test/chaincodes/crud/package.json
index 129692d9..ede28753 100644
--- a/test/chaincodes/crud/package.json
+++ b/test/chaincodes/crud/package.json
@@ -15,7 +15,7 @@
   "author": "",
   "license": "Apache-2.0",
   "dependencies": {
-    "fabric-shim": "2.1.5-unstable",
-    "fabric-contract-api": "2.1.5-unstable"
+    "fabric-shim": "2.2.0",
+    "fabric-contract-api": "2.2.0"
   }
 }
diff --git a/test/chaincodes/encryption/package.json b/test/chaincodes/encryption/package.json
index 8f8bf549..a170bd78 100644
--- a/test/chaincodes/encryption/package.json
+++ b/test/chaincodes/encryption/package.json
@@ -15,8 +15,8 @@
     "author": "",
     "license": "Apache-2.0",
     "dependencies": {
-      "fabric-shim": "2.1.5-unstable",
-      "fabric-contract-api": "2.1.5-unstable",
-      "fabric-shim-crypto": "2.1.5-unstable"
+      "fabric-shim": "2.2.0",
+      "fabric-contract-api": "2.2.0",
+      "fabric-shim-crypto": "2.2.0"
     }
 }
diff --git a/test/chaincodes/events/package.json b/test/chaincodes/events/package.json
index 72c30674..7c79546e 100644
--- a/test/chaincodes/events/package.json
+++ b/test/chaincodes/events/package.json
@@ -15,7 +15,7 @@
   "author": "",
   "license": "Apache-2.0",
   "dependencies": {
-    "fabric-shim": "2.1.5-unstable",
-    "fabric-contract-api": "2.1.5-unstable"
+    "fabric-shim": "2.2.0",
+    "fabric-contract-api": "2.2.0"
   }
 }
diff --git a/test/chaincodes/query/package.json b/test/chaincodes/query/package.json
index 02b6f0c9..6834a791 100644
--- a/test/chaincodes/query/package.json
+++ b/test/chaincodes/query/package.json
@@ -15,7 +15,7 @@
   "author": "",
   "license": "Apache-2.0",
   "dependencies": {
-    "fabric-shim": "2.1.5-unstable",
-    "fabric-contract-api": "2.1.5-unstable"
+    "fabric-shim": "2.2.0",
+    "fabric-contract-api": "2.2.0"
   }
 }
diff --git a/test/chaincodes/scenario/package.json b/test/chaincodes/scenario/package.json
index dfa3ceb1..7a6fc77c 100644
--- a/test/chaincodes/scenario/package.json
+++ b/test/chaincodes/scenario/package.json
@@ -15,7 +15,7 @@
   "author": "",
   "license": "Apache-2.0",
   "dependencies": {
-    "fabric-shim": "2.1.5-unstable",
-    "fabric-contract-api": "2.1.5-unstable"
+    "fabric-shim": "2.2.0",
+    "fabric-contract-api": "2.2.0"
   }
 }
diff --git a/test/chaincodes/server/package.json b/test/chaincodes/server/package.json
index b35f6c56..35465c9c 100644
--- a/test/chaincodes/server/package.json
+++ b/test/chaincodes/server/package.json
@@ -15,7 +15,7 @@
   "author": "",
   "license": "Apache-2.0",
   "dependencies": {
-    "fabric-shim": "2.1.5-unstable",
-    "fabric-contract-api": "2.1.5-unstable"
+    "fabric-shim": "2.2.0",
+    "fabric-contract-api": "2.2.0"
   }
 }
diff --git a/test/fv/package.json b/test/fv/package.json
index d0dc9d3d..ced87e1b 100644
--- a/test/fv/package.json
+++ b/test/fv/package.json
@@ -1,6 +1,6 @@
 {
   "name": "fvtests",
-  "version": "2.1.5-unstable",
+  "version": "2.2.0",
   "description": "fv tests",
   "testFabricVersion": "master",
   "testFabricThirdParty": "0.4.15",
@@ -26,10 +26,10 @@
     "del": "^3.0.0",
     "delay": "4.3.0",
     "eslint": "6.6.0",
-    "fabric-contract-api": "2.1.5-unstable",
-    "fabric-shim": "2.1.5-unstable",
-    "fabric-shim-api": "2.1.5-unstable",
-    "fabric-shim-crypto": "2.1.5-unstable",
+    "fabric-contract-api": "2.2.0",
+    "fabric-shim": "2.2.0",
+    "fabric-shim-api": "2.2.0",
+    "fabric-shim-crypto": "2.2.0",
     "fs-extra": "^9.0.1",
     "git-rev-sync": "1.12.0",
     "gulp": "^4.0.0",
diff --git a/tools/toolchain/network/docker-compose/docker-compose-base.yaml b/tools/toolchain/network/docker-compose/docker-compose-base.yaml
index 8374b138..9d532d5e 100644
--- a/tools/toolchain/network/docker-compose/docker-compose-base.yaml
+++ b/tools/toolchain/network/docker-compose/docker-compose-base.yaml
@@ -92,7 +92,7 @@ services:
       # # bridge network as the peers
       # # https://docs.docker.com/compose/networking/
       - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=node_default
-      - CORE_CHAINCODE_NODE_RUNTIME=hyperledger/fabric-nodeenv:2.1.5-unstable
+      - CORE_CHAINCODE_NODE_RUNTIME=hyperledger/fabric-nodeenv:2.2.0
       # Allow more time for chaincode container to build on install.
       - CORE_CHAINCODE_EXECUTETIMEOUT=300s