build(Deps): 5 项开发依赖一次性收编合入——vitest 5 / vsce 4 / ovsx 1.2 / ts-eslint 8.70 / esbuild 0.28.2 - #132
Merged
Merged
Conversation
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.1.10 to 5.0.1. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md) - [Commits](https://github.com/vitest-dev/vitest/commits/v5.0.1/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-version: 5.0.1 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.28.1 to 0.28.2. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](evanw/esbuild@v0.28.1...v0.28.2) --- updated-dependencies: - dependency-name: esbuild dependency-version: 0.28.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.68.0 to 8.70.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-version: 8.70.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [ovsx](https://github.com/eclipse-openvsx/openvsx/tree/HEAD/cli) from 1.1.1 to 1.2.0. - [Release notes](https://github.com/eclipse-openvsx/openvsx/releases) - [Changelog](https://github.com/eclipse-openvsx/openvsx/blob/main/cli/CHANGELOG.md) - [Commits](https://github.com/eclipse-openvsx/openvsx/commits/v1.2.0/cli) --- updated-dependencies: - dependency-name: ovsx dependency-version: 1.2.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@vscode/vsce](https://github.com/Microsoft/vsce) from 3.9.2 to 4.0.0. - [Release notes](https://github.com/Microsoft/vsce/releases) - [Commits](microsoft/vscode-vsce@v3.9.2...v4.0.0) --- updated-dependencies: - dependency-name: "@vscode/vsce" dependency-version: 4.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
….70 / esbuild 0.28.2; - 收编 dependabot #127 #128 #129 #130 #131 五个 PR:`@vscode/vsce` 3.9.2 → 4.0.0、`vitest` 4.1.10 → 5.0.1(两项 major)、`ovsx` 1.1.1 → 1.2.0、`typescript-eslint` 8.68.0 → 8.70.0、`esbuild` 0.28.1 → 0.28.2;五者共改 pnpm-lock.yaml,顺序合并必连环冲突,故合成单个 PR 只重生一次 lockfile;两项 major 均把 Node 基线抬至 22(vitest 5 的 `^22.12.0` 是全集最紧下界),与 CI 四个 job 的 `node-version: 22` 一致; - lockfile 漂移审计:675 条包目录的全部增删可溯源至五项升级及其传递闭包(vitest 5 将 @vitest/expect|runner|snapshot|utils|pretty-format 内联进主包,vsce 4 以 marked@18 + parse5@8 + @azure/identity@4.13.3 替下 markdown-it + cheerio),未改 spec 的 eslint / typescript / vite / prettier / mocha / @types/node / @stylistic/eslint-plugin 版本零变化; - `pnpm-workspace.yaml` 的 allowBuilds 三项维持不变:ovsx@1.2.0 仍传递依赖 @vscode/vsce@^3.7.1,keytar@7.9.0 与 @vscode/vsce-sign(现 2.0.9 / 2.1.0 双版本)继续在依赖树中,删任一项即重现 issue.md #2 的 ERR_PNPM_IGNORED_BUILDS; - `.github/dependabot.yml` 补 groups 修根因(此前无分组且 open-pull-requests-limit: 5 已打满,正是每周多个 deps PR 共改 lockfile 的来源):npm 的开发依赖 minor/patch 聚合为单 PR,major 仍逐项单开以保留逐个评估与回滚的粒度;github-actions 全量聚合(爆炸半径限于工作流本身,major 升级属例行);既有 ignore 与 limit 不变; - CHANGELOG `[Unreleased]` 新增 ### Build 两条。 验证: check-types、lint、package(tsc + eslint + esbuild --production)、test:unit(46 文件 / 429 用例)、test:integration(主 suite 8 项 + 多根 suite 4 项,VS Code 1.138.0)全绿;vsce 4 打包回归实测——`vsce ls` 文件集合 17 项与升级前完全一致(差异仅 glob@13 → tinyglobby 的遍历顺序),VSIX 内容清单 19 项一致,打包后 README 与升级前逐字节相同(marked + parse5 的相对链接/图片重写行为无回归)。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
以 -s ours 策略仅登记血缘、不改动工作树——五项升级与 pnpm-lock.yaml 已在前一提交中 一次性重生收口(五个 PR 共改 lockfile,顺序合并必连环冲突,须逐个 @dependabot rebase 并重跑整轮 CI)。本合并使五个 PR 的 head commit 成为 feature/1.x.x 的祖先,合并后由 GitHub 自动标记为 Merged 而非 Closed——PR #75 未携带 dependabot commit,其取代的 4 个 PR 最终都是 CLOSED。 因此本 PR 必须以 merge commit 落地(gh pr merge --merge):squash 会重写 SHA、血缘断裂, 五个 PR 将退化为 Closed。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
dependabot 当前有 5 个 open PR(#127–#131),全部已正确打向
feature/1.x.x(PR #75 锚定target-branch的成果),基线无需切换。但五者全部只改package.json+pnpm-lock.yaml——@vscode/vsce与esbuild在 devDependencies 中是相邻行,lockfile 更是全文冲突。逐个点 Merge 意味着:合入任意一个,其余 4 个立刻变CONFLICTING,需逐个@dependabot rebase并重跑整轮 CI,共 5 轮串行。本 PR 按 #75 确立的范式,把五项升级合并为单个 PR 只重生一次 lockfile,并修复根因避免每周复发。
依赖升级
@vscode/vscevitestovsxtypescript-eslintesbuildlockfile 漂移审计:新旧 lockfile 的包条目集合逐项比对,675 条中的全部增删均可溯源至这五项升级及其传递闭包——vitest 5 把
@vitest/expect|runner|snapshot|utils|pretty-format内联进主包,vsce 4 换入marked@18+parse5@8+@azure/identity@4.13.3(替下markdown-it+cheerio)。未改 spec 的eslint/typescript/vite/prettier/mocha/@types/node/@stylistic/eslint-plugin版本零变化。pnpm-workspace.yaml维持不变:allowBuilds的@vscode/vsce-sign/esbuild/keytar三项一个都不能删——ovsx@1.2.0仍声明@vscode/vsce: ^3.7.1,vsce 3.9.2 连同其keytar@7.9.0optionalDep 继续在树中,@vscode/vsce-sign现为 2.0.9 / 2.1.0 双版本。删任一项即重现 issue.md #2 的ERR_PNPM_IGNORED_BUILDS。合并方式
与 #75 的一处差异:本 PR 的分支以
git merge -s ours额外收编了五个 dependabot PR 的 head commit(c6c40fbb1d4648bc011768ef36c5ef6c9c1),产出一个 6-parent 的血缘登记提交,工作树与前一提交完全一致(树以一次性重生的 lockfile 为准)。这样做的唯一目的:让五个 PR 的 head commit 成为
feature/1.x.x的祖先,合并后由 GitHub 自动标记为 Merged 而非 Closed——#75 未携带 dependabot commit,其取代的 4 个 PR 最终都是CLOSED。根因修复
.github/dependabot.yml此前无groups配置,每个依赖各开一个 PR,且open-pull-requests-limit: 5已被打满——这正是本次要手工合并 5 个共改 lockfile 的 PR 的根因。本 PR 为两个 ecosystem 补上分组:dependency-type: development+update-types: [minor, patch])。major 刻意不入组,仍逐项单开——本次两个 major 各自带来 Node 基线抬升与打包管线换引擎,正说明这个评估与回滚粒度有价值。patterns: ['*'])。爆炸半径限于 CI 工作流本身,且 major 升级属例行(checkout 4→7、setup-node v6→v7),单开只会制造同类噪声。既有的
ignore(@types/vscode、typescriptmajor)与open-pull-requests-limit: 5保持不变。验证
本地(Node 24.14.0 / pnpm 12.2.1,与
packageManager字段一致):pnpm install:无ERR_PNPM_IGNORED_BUILDS,@vscode/vsce-sign的 postinstall 正常执行;pnpm-workspace.yaml未进 diff。pnpm run check-types(tsc --noEmit)零错误。pnpm run lint(eslint 10.9.1 + typescript-eslint 8.70.0 + @Stylistic 5.10.0)零错误。pnpm run package(check-types + lint + esbuild 0.28.2--production)产出dist/extension.js252 KB。pnpm run test:unit(vitest 5.0.1):46 文件 / 429 用例全通过(4.93s)。其中含 3 处vi.mock('vscode', factory)(branch-favorites/changelist-registry/commit-service)——vscode无 on-disk 实体、依赖 mocker 拦截裸 specifier,而 vitest 5 重写了@vitest/mocker,这是本次升级最可能踩的点,实测无碍。pnpm run test:integration(@vscode/test-electron拉起真实 VS Code 1.138.0 + mocha):主 suite 8 passing (26s)、多根工作区 suite 4 passing,进程退出码 0。glob@13 → tinyglobby与markdown-it + cheerio → marked@18 + parse5@8两处换引擎):vsce ls文件集合 17 项与升级前完全一致(唯一差异是遍历顺序);vsce package产出 VSIX 19 项内容清单一致、1.46 MB;解包后的extension/README.md与升级前逐字节相同——README 中<picture>/<source srcset>与相对文档链接的重写行为无回归。feature/1.x.x后触发;vsce 4.0.0 新增的「legacy PAT 凭证迁移提示」只在v*tag 的publishjob 路径生效,本 PR 的 CI 覆盖不到,留待下一个 tag 验证。权威:本 PR 的 GitHub Actions CI(
on: pull_request)在feature/1.x.x基线上运行Lint & Build/Test (ubuntu-latest)/Package vsix,以 Node 22 验证五项升级的组合兼容性。取代
本 PR 收编以下 dependabot PR,合并后将由 GitHub 自动标记为 Merged:
@vscode/vsce3.9.2 → 4.0.0ovsx1.1.1 → 1.2.0typescript-eslint8.68.0 → 8.70.0esbuild0.28.1 → 0.28.2vitest4.1.10 → 5.0.1🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com