Skip to content

build(Deps): 主线归并 feature/1.x.x —— 5 项开发依赖升级(vitest 5 / vsce 4)· dependabot 分组根除 lockfile 连环冲突 - #133

Merged
ThreeFish-AI merged 8 commits into
masterfrom
feature/1.x.x
Sep 21, 2026
Merged

ThreeFish-AI merged 8 commits into
masterfrom
feature/1.x.x

Conversation

@ThreeFish-AI

@ThreeFish-AI ThreeFish-AI commented Sep 21, 2026

Copy link
Copy Markdown
Owner

背景

本 PR 是 feature/1.x.xmaster主线归并,承载 #132 合入后 feature/1.x.x 相对主干的全部增量:dependabot 五项开发依赖升级(#127#131)的一次性收编,以及根除其复发源的 .github/dependabot.yml 分组配置。

这不是发版同步 PRpackage.jsonversion 两侧同为 0.0.18(未 bump),CHANGELOG 条目落在 [Unreleased] 之下、未开新版本节——与 #123 / #118 / #114chore(release): 同步 vX.Y.Z 至 master 性质不同。归并动机是把 build 层变更及时推平到主干,避免两条长生命周期分支继续漂移、在下次发版时积压成大 diff。

变更内容

4 文件 / +417 / -323:

文件 变更 说明
pnpm-lock.yaml +392 / -318 五项升级一次性重生,非逐个 rebase 叠加
.github/dependabot.yml +15 / -0 两个 ecosystem 补 groups(根因修复)
package.json +5 / -5 devDependencies 五行 spec
CHANGELOG.md +5 / -0 [Unreleased] 下两条 Build 记录

1. 五项开发依赖升级

依赖 变更 性质 原 PR
@vscode/vsce 3.9.2 → 4.0.0 major #131
vitest 4.1.10 → 5.0.1 major #127
ovsx 1.1.1 → 1.2.0 minor #130
typescript-eslint 8.68.0 → 8.70.0 minor #129
esbuild 0.28.1 → 0.28.2 patch #128

两项 major 均把 Node 基线抬至 22(vitest 5 的 ^22.12.0 是全集最紧的一条),与 CI 各 job 的 node-version: 22 一致。pnpm-workspace.yamlallowBuilds 三项维持不变——ovsx@1.2.0 仍传递依赖 @vscode/vsce@^3.7.1,删任一项都会重现 issue.md #2ERR_PNPM_IGNORED_BUILDS

lockfile 675 条包条目的逐项漂移审计、vsce 4 换引擎(markdown-it + cheeriomarked@18 + parse5@8)的打包回归比对,详见 #132,此处不再复述。

2. dependabot 分组(根因修复)

原配置无 groups,每个依赖各开一个 PR 且 open-pull-requests-limit: 5 已打满,五者共改 pnpm-lock.yaml → 合入任意一个,其余立刻 CONFLICTING。本次为两个 ecosystem 补分组,且两者取舍刻意不同

  • npm dev-minor-patchdependency-type: development + update-types: [minor, patch] 聚合为单 PR;major 不入组,仍逐项单开——本轮两个 major 各自带来 Node 基线抬升与打包管线换引擎,正说明逐个评估与回滚的粒度有价值。
  • github-actionspatterns: ['*'] 全量聚合——爆炸半径限于 CI 工作流本身,且 major 升级属例行(checkout 4→7、setup-node v6→v7),单开只制造同类噪声。

既有的 ignore@types/vscodetypescript major)与 open-pull-requests-limit: 5 保持不变。

验证

本 PR 的 GitHub Actions 全绿

  • Lint & Build
  • Test (ubuntu-latest) / Test (macos-latest) / Test (windows-latest)
  • Package vsix
  • ✅ dependabot 配置校验(.github/dependabot.yml

#132 遗留项已闭合#132 当时将「macOS / Windows 矩阵仅在 push 到 feature/1.x.x 后触发」标记为 ,本 PR 的跨平台矩阵已实际跑过并通过——这是本轮升级首次获得三平台覆盖。

仍未覆盖的边界(诚实标注):PublishGitHub Release (.vsix) 两个 job 为 SKIPPED(仅 v* tag 触发),vsce 4.0.0 新增的 legacy PAT 凭证迁移提示只在该路径生效,留待下一个 tag 验证。

合并方式

必须以 merge commit 落地(gh pr merge --merge),严禁 squash。

理由是结构性的而非风格偏好:feature/1.x.x 是长生命周期分支。squash 会重写 SHA,使其不再是 master 的祖先,下一次主线归并将产出包含全部历史的虚假 diff,两线永久分叉。master 的既有历史中,#123 / #118 / #114 / #85 / #84 / #81 / #79 无一例外均为 Merge pull request #NNN from ThreeFish-AI/feature/1.x.x

关联

🤖 Generated with Claude Code

dependabot Bot and others added 8 commits September 19, 2026 06:32
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>
…1.x.x

build(Deps): 5 项开发依赖一次性收编合入——vitest 5 / vsce 4 / ovsx 1.2 / ts-eslint 8.70 / esbuild 0.28.2
@ThreeFish-AI ThreeFish-AI changed the title Feature/1.x.x build(Deps): 主线归并 feature/1.x.x —— 5 项开发依赖升级(vitest 5 / vsce 4)· dependabot 分组根除 lockfile 连环冲突 Sep 21, 2026
@ThreeFish-AI
ThreeFish-AI merged commit 9fe22b8 into master Sep 21, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant