From dd7b4ddf78188eb55fd668d9d05b852e9f547c56 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Wed, 12 Oct 2022 11:18:50 -0600 Subject: [PATCH 1/7] Fix published executable * Add a hashbang line to ensure that it will be executed with Node as per the [instructions in the NPM docs][1] * Ensure that the name of the executable is `create-release-branch`, not `@metamask/create-release-branch` [1]: https://docs.npmjs.com/cli/v8/configuring-npm/package-json#bin --- .gitignore | 5 ++++- package.json | 10 ++++++---- scripts/build.sh | 13 +++++++++++++ 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100755 scripts/build.sh diff --git a/.gitignore b/.gitignore index b143af1d..80b4ad7d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,10 @@ .DS_Store -dist/ coverage/ +# Build +dist/ +tmp/ + # Logs logs *.log diff --git a/package.json b/package.json index 99b7daa4..5fb67774 100644 --- a/package.json +++ b/package.json @@ -6,18 +6,20 @@ "type": "git", "url": "https://github.com/MetaMask/create-release-branch.git" }, - "bin": "dist/cli.js", + "bin": { + "create-release-branch": "dist/cli.js" + }, "files": [ "dist/" ], "scripts": { - "build": "tsc --project tsconfig.build.json", - "build:clean": "rimraf dist && yarn build", + "build": "./scripts/build.sh", + "build:clean": "rimraf dist tmp && yarn build", "lint": "yarn lint:eslint && yarn lint:misc --check", "lint:eslint": "eslint . --cache --ext js,ts", "lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write", "lint:misc": "prettier '**/*.json' '**/*.md' '!CHANGELOG.md' '**/*.yml' '!.yarnrc.yml' --ignore-path .gitignore --no-error-on-unmatched-pattern", - "prepack": "yarn build:clean && chmod +x dist/cli.js && yarn lint && yarn test", + "prepack": "yarn lint && yarn build:clean && yarn test", "test": "jest && jest-it-up", "test:watch": "jest --watch" }, diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 00000000..b6f92164 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -euo pipefail + +yarn tsc --project tsconfig.build.json +mkdir tmp +touch tmp/cli.js +echo "#!/usr/bin/env node" >> tmp/cli.js +echo >> tmp/cli.js +cat dist/cli.js >> tmp/cli.js +mv tmp/cli.js dist/cli.js +rm -r tmp +chmod +x dist/cli.js From 4b81e6d4433b96405654cd83dcdaf01b68753331 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Wed, 12 Oct 2022 12:31:17 -0600 Subject: [PATCH 2/7] yarn install changes this back, so I guess we will go with it --- package.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/package.json b/package.json index 5fb67774..2db4da27 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,7 @@ "type": "git", "url": "https://github.com/MetaMask/create-release-branch.git" }, - "bin": { - "create-release-branch": "dist/cli.js" - }, + "bin": "dist/cli.js", "files": [ "dist/" ], From da36a17716217707dee14d251431f6c1dc6a5106 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Wed, 12 Oct 2022 12:37:15 -0600 Subject: [PATCH 3/7] Create an actual bin file --- bin/create-release-branch | 3 +++ package.json | 7 ++++--- scripts/build.sh | 13 ------------- 3 files changed, 7 insertions(+), 16 deletions(-) create mode 100755 bin/create-release-branch delete mode 100755 scripts/build.sh diff --git a/bin/create-release-branch b/bin/create-release-branch new file mode 100755 index 00000000..4f46430b --- /dev/null +++ b/bin/create-release-branch @@ -0,0 +1,3 @@ +#!/usr/bin/env node + +require('../dist/cli'); diff --git a/package.json b/package.json index 2db4da27..acc37e60 100644 --- a/package.json +++ b/package.json @@ -6,13 +6,14 @@ "type": "git", "url": "https://github.com/MetaMask/create-release-branch.git" }, - "bin": "dist/cli.js", + "bin": "bin/create-release-branch", "files": [ + "bin/", "dist/" ], "scripts": { - "build": "./scripts/build.sh", - "build:clean": "rimraf dist tmp && yarn build", + "build": "yarn tsc --project tsconfig.build.json", + "build:clean": "rimraf dist && yarn build", "lint": "yarn lint:eslint && yarn lint:misc --check", "lint:eslint": "eslint . --cache --ext js,ts", "lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write", diff --git a/scripts/build.sh b/scripts/build.sh deleted file mode 100755 index b6f92164..00000000 --- a/scripts/build.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -yarn tsc --project tsconfig.build.json -mkdir tmp -touch tmp/cli.js -echo "#!/usr/bin/env node" >> tmp/cli.js -echo >> tmp/cli.js -cat dist/cli.js >> tmp/cli.js -mv tmp/cli.js dist/cli.js -rm -r tmp -chmod +x dist/cli.js From 91c046d3ee9ef6d81cafe9d0bbaee531d4ce491f Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Wed, 12 Oct 2022 12:40:33 -0600 Subject: [PATCH 4/7] Ensure that the bin file is linted --- bin/create-release-branch | 3 --- bin/create-release-branch.js | 4 ++++ package.json | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) delete mode 100755 bin/create-release-branch create mode 100755 bin/create-release-branch.js diff --git a/bin/create-release-branch b/bin/create-release-branch deleted file mode 100755 index 4f46430b..00000000 --- a/bin/create-release-branch +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env node - -require('../dist/cli'); diff --git a/bin/create-release-branch.js b/bin/create-release-branch.js new file mode 100755 index 00000000..b404e589 --- /dev/null +++ b/bin/create-release-branch.js @@ -0,0 +1,4 @@ +#!/usr/bin/env node + +/* eslint-disable-next-line import/no-unassigned-import */ +require('../dist/cli'); diff --git a/package.json b/package.json index acc37e60..18b50a56 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "type": "git", "url": "https://github.com/MetaMask/create-release-branch.git" }, - "bin": "bin/create-release-branch", + "bin": "bin/create-release-branch.js", "files": [ "bin/", "dist/" From 33236a2122d4e3286b377fc4b48ba0b87604a835 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Wed, 12 Oct 2022 12:41:09 -0600 Subject: [PATCH 5/7] Update yarn.lock --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index f9edd3ed..4b6c8cb3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -909,7 +909,7 @@ __metadata: yaml: ^2.1.1 yargs: ^17.5.1 bin: - create-release-branch: dist/cli.js + create-release-branch: bin/create-release-branch.js languageName: unknown linkType: soft From 3def9821a687e3e92d59e5add5d36b799edfb1b6 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Wed, 12 Oct 2022 12:44:15 -0600 Subject: [PATCH 6/7] Revert changes to .gitignore --- .gitignore | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 80b4ad7d..b143af1d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,6 @@ .DS_Store -coverage/ - -# Build dist/ -tmp/ +coverage/ # Logs logs From 8cd6b9610f76fbc39a9a4afaadea8d94052a7833 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Wed, 12 Oct 2022 12:44:43 -0600 Subject: [PATCH 7/7] No need for 'yarn ' here --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 18b50a56..dc9a3273 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "dist/" ], "scripts": { - "build": "yarn tsc --project tsconfig.build.json", + "build": "tsc --project tsconfig.build.json", "build:clean": "rimraf dist && yarn build", "lint": "yarn lint:eslint && yarn lint:misc --check", "lint:eslint": "eslint . --cache --ext js,ts",