diff --git a/Cargo.lock b/Cargo.lock index 4941f7d0f..080d959d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1079,7 +1079,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "clash-verge" -version = "2.5.4-rc" +version = "2.5.4" dependencies = [ "aes-gcm", "anyhow", diff --git a/package.json b/package.json index ba66e692d..890c85174 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "clash-verge", - "version": "2.5.4-rc", + "version": "2.5.4", "license": "GPL-3.0-only", "scripts": { "prepare": "husky || true", diff --git a/scripts/release-version.mjs b/scripts/release-version.mjs index e878c62ab..1b9f3743f 100644 --- a/scripts/release-version.mjs +++ b/scripts/release-version.mjs @@ -1,5 +1,5 @@ /** - * CLI tool to update version numbers in package.json, src-tauri/Cargo.toml, and src-tauri/tauri.conf.json. + * CLI tool to update version numbers in package.json, src-tauri/Cargo.toml, Cargo.lock, and src-tauri/tauri.conf.json. * * Usage: * pnpm release-version @@ -108,17 +108,20 @@ async function updatePackageVersion(newVersion) { '[INFO]: Current package.json version is: ', packageJson.version, ) - packageJson.version = newVersion.startsWith('v') + const versionWithoutV = newVersion.startsWith('v') ? newVersion.slice(1) : newVersion - await fs.writeFile( - packageJsonPath, - JSON.stringify(packageJson, null, 2), - 'utf8', - ) - console.log( - `[INFO]: package.json version updated to: ${packageJson.version}`, + const updatedData = data.replace( + /^(\s*"version"\s*:\s*)"[^"]+"/m, + `$1"${versionWithoutV}"`, ) + + if (updatedData === data) { + throw new Error('version field was not found in package.json') + } + + await fs.writeFile(packageJsonPath, updatedData, 'utf8') + console.log(`[INFO]: package.json version updated to: ${versionWithoutV}`) } catch (error) { console.error('Error updating package.json version:', error) throw error @@ -153,6 +156,34 @@ async function updateCargoVersion(newVersion) { } } +async function updateCargoLockVersion(newVersion) { + const _dirname = process.cwd() + const cargoLockPath = path.join(_dirname, 'Cargo.lock') + const versionWithoutV = newVersion.startsWith('v') + ? newVersion.slice(1) + : newVersion + const packageVersionPattern = + /(\[\[package\]\]\r?\nname = "clash-verge"\r?\nversion = )"[^"]+"/ + + try { + const data = await fs.readFile(cargoLockPath, 'utf8') + const updatedData = data.replace( + packageVersionPattern, + `$1"${versionWithoutV}"`, + ) + + if (updatedData === data) { + throw new Error('clash-verge package entry was not found in Cargo.lock') + } + + await fs.writeFile(cargoLockPath, updatedData, 'utf8') + console.log(`[INFO]: Cargo.lock version updated to: ${versionWithoutV}`) + } catch (error) { + console.error('Error updating Cargo.lock version:', error) + throw error + } +} + async function updateTauriConfigVersion(newVersion) { const _dirname = process.cwd() const tauriConfigPath = path.join(_dirname, 'src-tauri', 'tauri.conf.json') @@ -168,13 +199,16 @@ async function updateTauriConfigVersion(newVersion) { tauriConfig.version, ) - tauriConfig.version = versionWithoutV - - await fs.writeFile( - tauriConfigPath, - JSON.stringify(tauriConfig, null, 2), - 'utf8', + const updatedData = data.replace( + /^(\s*"version"\s*:\s*)"[^"]+"/m, + `$1"${versionWithoutV}"`, ) + + if (updatedData === data) { + throw new Error('version field was not found in tauri.conf.json') + } + + await fs.writeFile(tauriConfigPath, updatedData, 'utf8') console.log( `[INFO]: tauri.conf.json version updated to: ${versionWithoutV}`, ) @@ -239,6 +273,7 @@ async function main(versionArg) { console.log(`[INFO]: Updating versions to: ${newVersion}`) await updatePackageVersion(newVersion) await updateCargoVersion(newVersion) + await updateCargoLockVersion(newVersion) await updateTauriConfigVersion(newVersion) console.log('[SUCCESS]: All version updates completed successfully!') } catch (error) { diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index b0871e38f..5f114a521 100755 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "clash-verge" -version = "2.5.4-rc" +version = "2.5.4" description = "clash verge" authors = ["zzzgydi", "Tunglies", "wonfen", "MystiPanda"] license = "GPL-3.0-only" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index e13702029..84b3c1916 100755 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,5 +1,5 @@ { - "version": "2.5.4-rc", + "version": "2.5.4", "$schema": "../node_modules/@tauri-apps/cli/config.schema.json", "bundle": { "active": true,