From d5bd9552daf5d42f9d04b3087ddc34c729004daa Mon Sep 17 00:00:00 2001
From: Jonas Gloning <34194370+jonasgloning@users.noreply.github.com>
Date: Thu, 5 May 2022 14:59:31 +0200
Subject: [PATCH] fix: add changelog and npm version to the repo

---
 .github/workflows/release.yml |  11 +++
 .releaserc.json               |  12 +++-
 changelog.md => CHANGELOG.md  |   8 ---
 package-lock.json             | 129 ++++++++++++++++++++++++++++++++++
 package.json                  |   6 +-
 5 files changed, 155 insertions(+), 11 deletions(-)
 rename changelog.md => CHANGELOG.md (98%)

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 3d9ed0e87..80dd5cab3 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -3,6 +3,7 @@ on:
   push:
     branches:
       - rc
+      - stable
 jobs:
   release:
     name: Release
@@ -18,8 +19,18 @@ jobs:
           node-version: "lts/*"
       - name: Install dependencies
         run: npm ci
+      - name: Import GPG key
+        id: import_gpg
+        uses: crazy-max/ghaction-import-gpg@v4
+        with:
+          gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
+          passphrase: ${{ secrets.GPG_PASSPHRASE }}
+          git_user_signingkey: true
+          git_commit_gpgsign: true
       - name: Release
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+          GIT_COMMITTER_NAME: ${{ steps.import_gpg.outputs.name }}
+          GIT_COMMITTER_EMAIL: ${{ steps.import_gpg.outputs.email }}
         run: npx semantic-release
diff --git a/.releaserc.json b/.releaserc.json
index fd0b8b2fe..749f4b101 100644
--- a/.releaserc.json
+++ b/.releaserc.json
@@ -1 +1,11 @@
-{ "branches": ["stable", { "name": "rc", "prerelease": true }] }
+{
+	"branches": ["stable", { "name": "rc", "prerelease": true }],
+	"plugins": [
+		"@semantic-release/commit-analyzer",
+		"@semantic-release/release-notes-generator",
+		"@semantic-release/changelog",
+		"@semantic-release/npm",
+		"@semantic-release/git",
+		"@semantic-release/github"
+	]
+}
diff --git a/changelog.md b/CHANGELOG.md
similarity index 98%
rename from changelog.md
rename to CHANGELOG.md
index f8085243f..a96c80648 100644
--- a/changelog.md
+++ b/CHANGELOG.md
@@ -1,11 +1,3 @@
-# Change Log
-
-All notable changes will be documented in this file.
-
-## vNEXT
-
-...
-
 <a name="1.3.2"></a>
 
 ## 1.3.2 (2021-03-11)
diff --git a/package-lock.json b/package-lock.json
index ce89681f4..7fff9b428 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,6 +16,8 @@
 			"devDependencies": {
 				"@parcel/packager-ts": "^2.5.0",
 				"@parcel/transformer-typescript-types": "^2.5.0",
+				"@semantic-release/changelog": "^6.0.1",
+				"@semantic-release/git": "^10.0.1",
 				"@types/chai": "^4.3.0",
 				"@types/mocha": "^9.1.0",
 				"@types/node": "^17.0.18",
@@ -4162,6 +4164,48 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/@semantic-release/changelog": {
+			"version": "6.0.1",
+			"resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.1.tgz",
+			"integrity": "sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA==",
+			"dev": true,
+			"dependencies": {
+				"@semantic-release/error": "^3.0.0",
+				"aggregate-error": "^3.0.0",
+				"fs-extra": "^9.0.0",
+				"lodash": "^4.17.4"
+			},
+			"engines": {
+				"node": ">=14.17"
+			},
+			"peerDependencies": {
+				"semantic-release": ">=18.0.0"
+			}
+		},
+		"node_modules/@semantic-release/changelog/node_modules/fs-extra": {
+			"version": "9.1.0",
+			"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+			"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+			"dev": true,
+			"dependencies": {
+				"at-least-node": "^1.0.0",
+				"graceful-fs": "^4.2.0",
+				"jsonfile": "^6.0.1",
+				"universalify": "^2.0.0"
+			},
+			"engines": {
+				"node": ">=10"
+			}
+		},
+		"node_modules/@semantic-release/changelog/node_modules/universalify": {
+			"version": "2.0.0",
+			"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+			"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+			"dev": true,
+			"engines": {
+				"node": ">= 10.0.0"
+			}
+		},
 		"node_modules/@semantic-release/commit-analyzer": {
 			"version": "9.0.2",
 			"resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz",
@@ -4192,6 +4236,28 @@
 				"node": ">=14.17"
 			}
 		},
+		"node_modules/@semantic-release/git": {
+			"version": "10.0.1",
+			"resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz",
+			"integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==",
+			"dev": true,
+			"dependencies": {
+				"@semantic-release/error": "^3.0.0",
+				"aggregate-error": "^3.0.0",
+				"debug": "^4.0.0",
+				"dir-glob": "^3.0.0",
+				"execa": "^5.0.0",
+				"lodash": "^4.17.4",
+				"micromatch": "^4.0.0",
+				"p-reduce": "^2.0.0"
+			},
+			"engines": {
+				"node": ">=14.17"
+			},
+			"peerDependencies": {
+				"semantic-release": ">=18.0.0"
+			}
+		},
 		"node_modules/@semantic-release/github": {
 			"version": "8.0.4",
 			"resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.4.tgz",
@@ -5124,6 +5190,15 @@
 			"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
 			"dev": true
 		},
+		"node_modules/at-least-node": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+			"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+			"dev": true,
+			"engines": {
+				"node": ">= 4.0.0"
+			}
+		},
 		"node_modules/aws-sign2": {
 			"version": "0.7.0",
 			"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
@@ -18324,6 +18399,38 @@
 				}
 			}
 		},
+		"@semantic-release/changelog": {
+			"version": "6.0.1",
+			"resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.1.tgz",
+			"integrity": "sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA==",
+			"dev": true,
+			"requires": {
+				"@semantic-release/error": "^3.0.0",
+				"aggregate-error": "^3.0.0",
+				"fs-extra": "^9.0.0",
+				"lodash": "^4.17.4"
+			},
+			"dependencies": {
+				"fs-extra": {
+					"version": "9.1.0",
+					"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+					"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+					"dev": true,
+					"requires": {
+						"at-least-node": "^1.0.0",
+						"graceful-fs": "^4.2.0",
+						"jsonfile": "^6.0.1",
+						"universalify": "^2.0.0"
+					}
+				},
+				"universalify": {
+					"version": "2.0.0",
+					"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+					"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+					"dev": true
+				}
+			}
+		},
 		"@semantic-release/commit-analyzer": {
 			"version": "9.0.2",
 			"resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz",
@@ -18345,6 +18452,22 @@
 			"integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==",
 			"dev": true
 		},
+		"@semantic-release/git": {
+			"version": "10.0.1",
+			"resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz",
+			"integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==",
+			"dev": true,
+			"requires": {
+				"@semantic-release/error": "^3.0.0",
+				"aggregate-error": "^3.0.0",
+				"debug": "^4.0.0",
+				"dir-glob": "^3.0.0",
+				"execa": "^5.0.0",
+				"lodash": "^4.17.4",
+				"micromatch": "^4.0.0",
+				"p-reduce": "^2.0.0"
+			}
+		},
 		"@semantic-release/github": {
 			"version": "8.0.4",
 			"resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.4.tgz",
@@ -19010,6 +19133,12 @@
 			"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
 			"dev": true
 		},
+		"at-least-node": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+			"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+			"dev": true
+		},
 		"aws-sign2": {
 			"version": "0.7.0",
 			"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
diff --git a/package.json b/package.json
index 366b7ee6d..a4d4d3dd0 100644
--- a/package.json
+++ b/package.json
@@ -144,6 +144,8 @@
 	"devDependencies": {
 		"@parcel/packager-ts": "^2.5.0",
 		"@parcel/transformer-typescript-types": "^2.5.0",
+		"@semantic-release/changelog": "^6.0.1",
+		"@semantic-release/git": "^10.0.1",
 		"@types/chai": "^4.3.0",
 		"@types/mocha": "^9.1.0",
 		"@types/node": "^17.0.18",
@@ -154,10 +156,10 @@
 		"mock-socket": "8.0.5",
 		"parcel": "^2.5.0",
 		"prettier": "^2.6.2",
+		"semantic-release": "^19.0.2",
 		"standard": "^16.0.4",
 		"ts-node": "^10.5.0",
-		"typescript": "^4.5.5",
-		"semantic-release": "^19.0.2"
+		"typescript": "^4.5.5"
 	},
 	"dependencies": {
 		"eventemitter3": "^3.1.2",