From cc6edc3e931ec321b72f33ac0eb0ac6be15585ee Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Wed, 23 Sep 2026 13:09:12 +0800 Subject: [PATCH] Switch `semver` to `verkit` (#19977) --- cspell.json | 1 + package.json | 2 +- scripts/changelog-for-patch.js | 4 ++-- scripts/draft-blog-post.js | 6 ++---- scripts/utilities/changelog.js | 6 +++--- yarn.lock | 27 +++++++++++++++++---------- 6 files changed, 26 insertions(+), 20 deletions(-) diff --git a/cspell.json b/cspell.json index 5fff0c8a1..f5f2be92d 100644 --- a/cspell.json +++ b/cspell.json @@ -287,6 +287,7 @@ "valourous", "Vanderwerff", "vanguarding", + "verkit", "versary", "vimrc", "vjeux", diff --git a/package.json b/package.json index 362730f7b..32d7d503b 100644 --- a/package.json +++ b/package.json @@ -187,11 +187,11 @@ "pretty-ms": "9.3.1", "puppeteer": "25.11.0", "rollup-plugin-license": "3.7.1", - "semver": "7.8.5", "serialize-javascript": "7.1.1", "tempy": "3.2.0", "tinybench": "6.2.0", "ts-expect": "1.3.0", + "verkit": "0.5.0", "yaml-test-suite": "0.1.0" }, "resolutions": { diff --git a/scripts/changelog-for-patch.js b/scripts/changelog-for-patch.js index 560bb1dd4..fec2bd11f 100644 --- a/scripts/changelog-for-patch.js +++ b/scripts/changelog-for-patch.js @@ -3,7 +3,7 @@ import fs from "node:fs"; import path from "node:path"; import { parseArgs } from "node:util"; -import semver from "semver"; +import * as verkit from "verkit"; import { categories, changelogUnreleasedDirectory, @@ -49,7 +49,7 @@ function parseArguments() { if ( !previousVersion || !newVersion || - semver.compare(previousVersion, newVersion) !== -1 + !verkit.isGreaterThan(newVersion, previousVersion) ) { throw new Error( `Invalid argv, prev-version: ${previousVersion}, new-version: ${newVersion}`, diff --git a/scripts/draft-blog-post.js b/scripts/draft-blog-post.js index 5a485b855..d6511974a 100644 --- a/scripts/draft-blog-post.js +++ b/scripts/draft-blog-post.js @@ -4,7 +4,7 @@ import fs from "node:fs"; import { createRequire } from "node:module"; import path from "node:path"; import fg from "fast-glob"; -import semver from "semver"; +import * as verkit from "verkit"; import { categories, changelogUnreleasedDirectory, @@ -26,9 +26,7 @@ if (!fs.existsSync(introFile)) { const prevVersion = require("../node_modules/prettier/package.json").version; const { version } = require("../package.json"); -const nextVersion = `${semver.major(version)}.${semver.minor( - version, -)}.${semver.patch(version)}`; +const nextVersion = verkit.truncate(version, "patch"); const postGlob = path.join(blogDir, `????-??-??-${nextVersion}.md`); const postFile = path.join( diff --git a/scripts/utilities/changelog.js b/scripts/utilities/changelog.js index ba2409947..5a0f61ee6 100644 --- a/scripts/utilities/changelog.js +++ b/scripts/utilities/changelog.js @@ -1,6 +1,6 @@ import fs from "node:fs"; import path from "node:path"; -import semver from "semver"; +import * as verkit from "verkit"; export const changelogUnreleasedDirectory = new URL( "../../changelog_unreleased/", @@ -85,7 +85,7 @@ export function printEntries(entries) { } export function replaceVersions(data, prevVer, newVer, isPatch = false) { - if (semver.compare(prevVer, newVer) >= 0) { + if (!verkit.isGreaterThan(newVer, prevVer)) { throw new Error( `[INVALID VERSION] Next version(${newVer}) should be greater than previous version(${prevVer}).`, ); @@ -103,7 +103,7 @@ export function replaceVersions(data, prevVer, newVer, isPatch = false) { } function formatVersion(version) { - return `${semver.major(version)}.${semver.minor(version)}`; + return `${verkit.getMajor(version)}.${verkit.getMinor(version)}`; } function processTitle(title) { diff --git a/yarn.lock b/yarn.lock index 2c6822c16..f6f4f7bc8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8359,7 +8359,6 @@ __metadata: remark-parse: "npm:8.0.3" rollup-plugin-license: "npm:3.7.1" search-closest: "npm:3.1.0" - semver: "npm:7.8.5" serialize-javascript: "npm:7.1.1" smol-toml: "npm:1.8.0" strip-ansi: "npm:7.2.0" @@ -8372,6 +8371,7 @@ __metadata: unicode-regex: "npm:4.3.0" unified: "npm:9.2.2" url-or-path: "npm:2.7.1" + verkit: "npm:0.5.0" vnopts: "npm:2.0.5" wcwidth.js: "npm:2.0.0" yaml: "npm:2.9.1" @@ -8699,15 +8699,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.8.5, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.2, semver@npm:^7.6.3, semver@npm:^7.7.2, semver@npm:^7.7.3, semver@npm:^7.7.4, semver@npm:^7.8.5": - version: 7.8.5 - resolution: "semver@npm:7.8.5" - bin: - semver: bin/semver.js - checksum: 10/9b01d2ff11e6e4a4539b7ca3c5f280c8704cb397a28504469f2ed4f00ad2194748d756647362a9712fff30984d15772ab7f083108c2fb508e2096ae9e708f22c - languageName: node - linkType: hard - "semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" @@ -8717,6 +8708,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.2, semver@npm:^7.6.3, semver@npm:^7.7.2, semver@npm:^7.7.3, semver@npm:^7.7.4, semver@npm:^7.8.5": + version: 7.8.5 + resolution: "semver@npm:7.8.5" + bin: + semver: bin/semver.js + checksum: 10/9b01d2ff11e6e4a4539b7ca3c5f280c8704cb397a28504469f2ed4f00ad2194748d756647362a9712fff30984d15772ab7f083108c2fb508e2096ae9e708f22c + languageName: node + linkType: hard + "serialize-javascript@npm:7.1.1": version: 7.1.1 resolution: "serialize-javascript@npm:7.1.1" @@ -9715,6 +9715,13 @@ __metadata: languageName: node linkType: hard +"verkit@npm:0.5.0": + version: 0.5.0 + resolution: "verkit@npm:0.5.0" + checksum: 10/82efcb8da3d8e20d8745a51ab6500046651297ff6446ea83ca83ee4d1f610347a4d4553adf9c74d483814ad6752e3eec8250313c32912f853ea34fd31203dbec + languageName: node + linkType: hard + "vfile-location@npm:^3.0.0": version: 3.2.0 resolution: "vfile-location@npm:3.2.0"