From a7bc43adb19d7202f663f9b8c83542928b4a9a6a Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Wed, 17 Aug 2022 20:26:13 +1000 Subject: [PATCH 1/2] fix(nuxi): changelog link to handle hash's and tags --- packages/nuxi/src/commands/upgrade.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/nuxi/src/commands/upgrade.ts b/packages/nuxi/src/commands/upgrade.ts index 796d9261fd5..890c9940a6f 100644 --- a/packages/nuxi/src/commands/upgrade.ts +++ b/packages/nuxi/src/commands/upgrade.ts @@ -21,6 +21,16 @@ async function getNuxtVersion (paths: string | string[]): Promise { } } +const nuxtVersionToGitIdentifier = (version: string) => { + const parts = version.split('.') + // match the git identifier in the release, for example: 3.0.0-rc.8-27677607.a3a8706 + if (parts.length > 4) { + return parts.pop() + } + // match github tag, for example 3.0.0-rc.8 + return `v${version}` +} + export default defineNuxtCommand({ meta: { name: 'upgrade', @@ -66,8 +76,8 @@ export default defineNuxtCommand({ consola.success('You\'re already using the latest version of nuxt.') } else { consola.success('Successfully upgraded nuxt from', currentVersion, 'to', upgradedVersion) - const commitA = currentVersion.split('.').pop() - const commitB = upgradedVersion.split('.').pop() + const commitA = nuxtVersionToGitIdentifier(currentVersion) + const commitB = nuxtVersionToGitIdentifier(upgradedVersion) if (commitA && commitB) { consola.info('Changelog:', `https://github.com/nuxt/framework/compare/${commitA}...${commitB}`) } From 27ec988e88dc6dbcac4c246bd007d1251ee76043 Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Wed, 17 Aug 2022 21:51:33 +1000 Subject: [PATCH 2/2] chore: prefer regex matching --- packages/nuxi/src/commands/upgrade.ts | 12 +----------- packages/nuxi/src/utils/nuxt.ts | 10 ++++++++++ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/nuxi/src/commands/upgrade.ts b/packages/nuxi/src/commands/upgrade.ts index 890c9940a6f..d2e8329bf97 100644 --- a/packages/nuxi/src/commands/upgrade.ts +++ b/packages/nuxi/src/commands/upgrade.ts @@ -5,7 +5,7 @@ import { resolve } from 'pathe' import { resolveModule } from '../utils/cjs' import { getPackageManager, packageManagerLocks } from '../utils/packageManagers' import { rmRecursive, touchFile } from '../utils/fs' -import { cleanupNuxtDirs } from '../utils/nuxt' +import { cleanupNuxtDirs, nuxtVersionToGitIdentifier } from '../utils/nuxt' import { defineNuxtCommand } from './index' async function getNuxtVersion (paths: string | string[]): Promise { @@ -21,16 +21,6 @@ async function getNuxtVersion (paths: string | string[]): Promise { } } -const nuxtVersionToGitIdentifier = (version: string) => { - const parts = version.split('.') - // match the git identifier in the release, for example: 3.0.0-rc.8-27677607.a3a8706 - if (parts.length > 4) { - return parts.pop() - } - // match github tag, for example 3.0.0-rc.8 - return `v${version}` -} - export default defineNuxtCommand({ meta: { name: 'upgrade', diff --git a/packages/nuxi/src/utils/nuxt.ts b/packages/nuxi/src/utils/nuxt.ts index 12f7c452c0f..d24a7c89518 100644 --- a/packages/nuxi/src/utils/nuxt.ts +++ b/packages/nuxi/src/utils/nuxt.ts @@ -27,6 +27,16 @@ export async function cleanupNuxtDirs (rootDir: string) { ].map(dir => resolve(rootDir, dir))) } +export function nuxtVersionToGitIdentifier (version: string) { + // match the git identifier in the release, for example: 3.0.0-rc.8-27677607.a3a8706 + const id = /\.([0-9a-f]{7})$/.exec(version) + if (id?.[1]) { + return id[1] + } + // match github tag, for example 3.0.0-rc.8 + return `v${version}` +} + export function resolveNuxtManifest (nuxt: Nuxt): NuxtProjectManifest { const manifest: NuxtProjectManifest = { _hash: null,