From aa15017b13cdb0accc40fbda8825dd62f69f4f5f Mon Sep 17 00:00:00 2001 From: Simon Garner Date: Wed, 2 Aug 2023 15:39:55 +1200 Subject: [PATCH 1/4] Rename releaseNotes() -> generateReleaseNotes() --- source/release-task-helper.js | 2 +- source/ui.js | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/source/release-task-helper.js b/source/release-task-helper.js index 2e71aca9..e6250f23 100644 --- a/source/release-task-helper.js +++ b/source/release-task-helper.js @@ -14,7 +14,7 @@ const releaseTaskHelper = async (options, pkg) => { const url = newGithubReleaseUrl({ repoUrl: options.repoUrl, tag, - body: options.releaseNotes(tag), + body: options.generateReleaseNotes(tag), isPrerelease: isPreRelease, }); diff --git a/source/ui.js b/source/ui.js index 6489ca31..4f8683e2 100644 --- a/source/ui.js +++ b/source/ui.js @@ -22,7 +22,7 @@ const printCommitLog = async (repoUrl, registryUrl, fromLatestTag, releaseBranch return { hasCommits: false, hasUnreleasedCommits: false, - releaseNotes() {}, + generateReleaseNotes() {}, }; } @@ -64,7 +64,7 @@ const printCommitLog = async (repoUrl, registryUrl, fromLatestTag, releaseBranch return `- ${commitMessage} ${commitId}`; }).join('\n'); - const releaseNotes = nextTag => commits.map(commit => + const generateReleaseNotes = nextTag => commits.map(commit => `- ${htmlEscape(commit.message)} ${commit.id}`, ).join('\n') + `\n\n${repoUrl}/compare/${revision}...${nextTag}`; @@ -74,7 +74,7 @@ const printCommitLog = async (repoUrl, registryUrl, fromLatestTag, releaseBranch return { hasCommits: true, hasUnreleasedCommits, - releaseNotes, + generateReleaseNotes, }; }; @@ -151,7 +151,7 @@ const ui = async (options, {pkg, rootDir}) => { } const useLatestTag = !options.releaseDraftOnly; - const {hasCommits, hasUnreleasedCommits, releaseNotes} = await printCommitLog(repoUrl, registryUrl, useLatestTag, releaseBranch); + const {hasCommits, hasUnreleasedCommits, generateReleaseNotes} = await printCommitLog(repoUrl, registryUrl, useLatestTag, releaseBranch); if (hasUnreleasedCommits && options.releaseDraftOnly) { const answers = await inquirer.prompt({ @@ -175,7 +175,7 @@ const ui = async (options, {pkg, rootDir}) => { ...options, confirm: true, repoUrl, - releaseNotes, + generateReleaseNotes, }; } @@ -296,7 +296,7 @@ const ui = async (options, {pkg, rootDir}) => { publishScoped: answers.publishScoped, confirm: true, repoUrl, - releaseNotes, + generateReleaseNotes, }; }; From e78f9daafbc8d542827a958ddbabeb39ca9e0ad8 Mon Sep 17 00:00:00 2001 From: Simon Garner Date: Wed, 2 Aug 2023 15:40:45 +1200 Subject: [PATCH 2/4] =?UTF-8?q?Add=20=E2=80=94no-release-notes=20option?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 1 + source/cli-implementation.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/readme.md b/readme.md index f04dcf7a..3e0cbb58 100644 --- a/readme.md +++ b/readme.md @@ -123,6 +123,7 @@ Currently, these are the flags you can configure: - `yarn` - Use yarn if possible (`true` by default). - `contents` - Subdirectory to publish (`.` by default). - `releaseDraft` - Open a GitHub release draft after releasing (`true` by default). +- `releaseNotes` - Auto-generate release notes when opening a GitHub release draft (`true` by default). - `testScript` - Name of npm run script to run tests before publishing (`test` by default). - `2fa` - Enable 2FA on new packages (`true` by default) (setting this to `false` is not recommended). - `message` - The commit message used for the version bump. Any `%s` in the string will be replaced with the new version. By default, npm uses `%s` and Yarn uses `v%s`. diff --git a/source/cli-implementation.js b/source/cli-implementation.js index 47748504..5e655d09 100755 --- a/source/cli-implementation.js +++ b/source/cli-implementation.js @@ -34,6 +34,7 @@ const cli = meow(` --contents Subdirectory to publish --no-release-draft Skips opening a GitHub release draft --release-draft-only Only opens a GitHub release draft for the latest published version + --no-release-notes Skips generating release notes when opening a GitHub release --test-script Name of npm run script to run tests before publishing (default: test) --no-2fa Don't enable 2FA on new packages (not recommended) --message Version bump commit message, '%s' will be replaced with version (default: '%s' with npm and 'v%s' with yarn) @@ -72,6 +73,9 @@ const cli = meow(` releaseDraftOnly: { type: 'boolean', }, + releaseNotes: { + type: 'boolean', + }, tag: { type: 'string', }, @@ -106,6 +110,7 @@ try { tests: true, publish: true, releaseDraft: true, + releaseNotes: true, yarn: hasYarn(), '2fa': true, }; From fe72a0132a0d6da07e3cda48a6beae3469ae6c8d Mon Sep 17 00:00:00 2001 From: Simon Garner Date: Wed, 2 Aug 2023 15:42:09 +1200 Subject: [PATCH 3/4] Respect releaseNotes flag in releaseTaskHelper --- source/release-task-helper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/release-task-helper.js b/source/release-task-helper.js index e6250f23..684ea3fd 100644 --- a/source/release-task-helper.js +++ b/source/release-task-helper.js @@ -14,7 +14,7 @@ const releaseTaskHelper = async (options, pkg) => { const url = newGithubReleaseUrl({ repoUrl: options.repoUrl, tag, - body: options.generateReleaseNotes(tag), + body: options.releaseNotes ? options.generateReleaseNotes(tag) : '', isPrerelease: isPreRelease, }); From 8b32812487d3239858018498bdc661c830942c97 Mon Sep 17 00:00:00 2001 From: Simon Garner Date: Wed, 2 Aug 2023 16:01:15 +1200 Subject: [PATCH 4/4] Add --no-release-notes to docs --- readme.md | 1 + source/cli-implementation.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 3e0cbb58..3803632f 100644 --- a/readme.md +++ b/readme.md @@ -88,6 +88,7 @@ $ np --help --contents Subdirectory to publish --no-release-draft Skips opening a GitHub release draft --release-draft-only Only opens a GitHub release draft + --no-release-notes Skips generating release notes when opening a GitHub release draft --test-script Name of npm run script to run tests before publishing (default: test) --no-2fa Don't enable 2FA on new packages (not recommended) --message Version bump commit message. `%s` will be replaced with version. (default: '%s' with npm and 'v%s' with yarn) diff --git a/source/cli-implementation.js b/source/cli-implementation.js index 5e655d09..f217910d 100755 --- a/source/cli-implementation.js +++ b/source/cli-implementation.js @@ -34,7 +34,7 @@ const cli = meow(` --contents Subdirectory to publish --no-release-draft Skips opening a GitHub release draft --release-draft-only Only opens a GitHub release draft for the latest published version - --no-release-notes Skips generating release notes when opening a GitHub release + --no-release-notes Skips generating release notes when opening a GitHub release draft --test-script Name of npm run script to run tests before publishing (default: test) --no-2fa Don't enable 2FA on new packages (not recommended) --message Version bump commit message, '%s' will be replaced with version (default: '%s' with npm and 'v%s' with yarn)