Skip to content

chore(deps): 固定 qor5/web/v3 到 v3.2.0 - #1111

Merged
molon merged 1 commit into
mainfrom
molon/marlin
Sep 9, 2026
Merged

chore(deps): 固定 qor5/web/v3 到 v3.2.0#1111
molon merged 1 commit into
mainfrom
molon/marlin

Conversation

@molon

@molon molon commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

改了什么

github.com/qor5/web/v3 从 pseudo-version v3.0.12-0.20250618085230-3764d0e521a8 换成正式发布的 v3.2.0

go.mod 只有这一行变化,没有任何间接依赖被抬升。

顺带修掉一处误 import。docs/docsrc/examples/examples_admin/linkage_select_filter_item_remote_test.go 同时引了 v1 和 v3 的 multipartestutils,v3 是 dot import,所以两处 multipartestutils.NewMultipartBuilder() 实际走的是 v1。这就是 github.com/qor5/web v1 一直挂在直接依赖块里的原因。去掉 v1 那行、两处调用改用 dot import 的 v3 之后,它降为 // indirect。它没法完全消失,theplant/docgo(最新版 v0.0.16)的 go.mod 里写死了 github.com/qor5/web v1.2.3,而 docs/docsrc 用 docgo。

Go 层零风险

apidiff 做过模块级导出面对比,相对原先 pin 的 commit 零 API 变更,输出为空。corejs/src/ 的前端源码同样零变更。

web 自己的依赖全部低于 admin 现有版本,MVS 下无影响。web 的最低 Go 版本抬到 1.26.0,admin 本来就是 1.26.0。

实际变化都在内嵌的前端产物

Vue 3.5.16 → 3.5.42corejs/dist/vue.global.prod.js)。admin 的全局 Vue 运行时由 web 独家提供,presets/presets.go/assets/vue.js 挂的就是 web.JSVueComponentsPack(),而 x 的 vuetifyx bundle 把 vue 标为 external,用的正是这个全局 Vue。

dist/index.js 在 vite 6 下重打包,462018 → 466818 字节。源码没变,增量来自 minifier 标识符重新分配、新的 CJS 包装,以及内联的 lodash 从 4.17.21 升到 4.18.1。后者补上了 CVE-2026-2950 / CVE-2026-4800,此前只改了 package.json 声明、产物没重建,实际加载的代码里那两个洞还在。

lodash 4.18 会拒绝 __proto__ / constructor / prototype 作为 _.unset_.omit 的路径 key。web 把整个 lodash 再导出成 plaid().lodash,所以下游理论上能碰到,但 admin 和 x 的代码里一处这样的用法都没有。

顺带修正了一个既有的版本错配

升级前:运行时 Vue 3.5.16,而 x 的 vuetifyx 编译期 Vue 是 3.5.33,运行时比编译产物旧 17 个 patch。这个方向是危险的,vuetifyx 万一引用了 3.5.17 之后新增的运行时 helper,3.5.16 里根本没有。

升级后:运行时 3.5.42 高于编译期 3.5.33,方向掰正了。新运行时跑旧编译产物是安全方向。将来 x 升到含 tiptap v3 的版本(编译期也是 3.5.42)就完全对齐。

验证

go build ./... 通过,go vet ./... 只剩既有的 pagebuilder/model_events.go:101 unreachable code

前端没有实测。Vue 从 3.5.16 到 3.5.42 是同一 minor 线的 patch 累积,加上一次 vite 6 重打包,都压在这一次变更里。merge 前需要手点一遍富文本、列表 filter、日期选择器。

不在这个 PR 里的

qor5/x/v3 保持不动。它的升级会连带抬走一大批间接依赖(confx、viper、cast、appkit、gorm mysql driver 等),而且 vuetifyx bundle 有实际变化,需要单独一次 QA。拆开做,出问题时归因清楚。

Copilot AI lite review requested due to automatic review settings September 8, 2026 07:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

依赖升级会影响前端运行时(Vue patch 级别变动)且缺少自动化 UI 验证,建议人工确认关键页面交互后再合入。

Pull request overview

该 PR 将 github.com/qor5/web/v3 从 pseudo-version 固定到正式发布的 v3.1.0,并修正文档示例测试里 multipartestutils 的误用,避免在同时引入 v1/v3 时实际调用落到 v1 的实现上,从而让 github.com/qor5/web v1 回落为间接依赖。

Changes:

  • github.com/qor5/web/v3 版本从 v3.0.12-0.20250618085230-3764d0e521a8 更新为 v3.1.0
  • 移除示例测试中对 v1 multipartestutils 的显式 import,并改为使用 v3 dot import 暴露的 NewMultipartBuilder()
  • github.com/qor5/web v1.3.2 从直接依赖移至 // indirect(保留以满足 docgo 的依赖链)
File summaries
File Description
go.mod 更新 qor5/web/v3v3.1.0,并将 qor5/web v1 调整为间接依赖
go.sum 同步 qor5/web/v3 v3.1.0 的校验和变更
docs/docsrc/examples/examples_admin/linkage_select_filter_item_remote_test.go 修正 multipart test builder 的实际调用来源,避免误用 v1 实现
Review details
  • Files reviewed: 2/3 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@deepsource-io

deepsource-io Bot commented Sep 8, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 9a65991...f40afb6 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
Go Sep 8, 2026 10:04a.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@codecov

codecov Bot commented Sep 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

原先 pin 的是 2025-06-18 的 pseudo-version。v3.2.0 打在那之后的 master
上,apidiff 核对过:相对原先 pin 的 commit,Go API 零变更。go.mod 只多
了这一行改动,没有连带抬升任何间接依赖。

实际带来的变化在内嵌的前端产物:Vue 从 3.5.16 升到 3.5.42;index.js 在
vite 6 下重打包,内联的 lodash 从 4.17.21 升到 4.18.1,补上了两个此前
只改了 package.json 声明、没进产物的 CVE。web 的最低 Go 版本抬到
1.26.0,admin 本来就是 1.26.0。

顺带修掉一处误 import:linkage_select_filter_item_remote_test.go 同时
引了 v1 和 v3 的 multipartestutils,两处 NewMultipartBuilder 实际走的
是 v1,导致 github.com/qor5/web v1 被算成直接依赖。去掉 v1 那行后它降
为 indirect,docgo 还依赖它,所以去不干净。
@molon molon changed the title chore(deps): 固定 qor5/web/v3 到 v3.1.0 chore(deps): 固定 qor5/web/v3 到 v3.2.0 Sep 8, 2026
@molon
molon requested a review from zhangshanwen September 8, 2026 10:13
@molon
molon merged commit 08665d3 into main Sep 9, 2026
10 checks passed
@molon
molon deleted the molon/marlin branch September 9, 2026 03:53
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.

3 participants