Skip to content

feat: Upgrade Higress dependency#158

Merged
CH3CHO merged 1 commit into
higress-group:mainfrom
CH3CHO:feat/upgrade-higress
May 5, 2025
Merged

feat: Upgrade Higress dependency#158
CH3CHO merged 1 commit into
higress-group:mainfrom
CH3CHO:feat/upgrade-higress

Conversation

@CH3CHO
Copy link
Copy Markdown
Collaborator

@CH3CHO CH3CHO commented May 5, 2025

Upgrade Higress dependency to use the updated McpBridge CRD.

fixes higress-group/higress#2165

@CH3CHO CH3CHO requested a review from johnlanni as a code owner May 5, 2025 13:58
@lingma-agents
Copy link
Copy Markdown

lingma-agents Bot commented May 5, 2025

升级Higress及其相关依赖项的版本

变更文件

文件路径 变更说明
src/apiserver/go.mod 将Higress依赖升级到最新版本,新增google/uuid的直接依赖项,并更新golang.org/x/crypto(v0.26→0.31)、golang.org/x/net(v0.28→0.33)、golang.org/x/sync(v0.8→0.10)、golang.org/x/sys(v0.26→0.28)、golang.org/x/text(v0.17→0.21)等基础库版本。
src/apiserver/go.sum 更新所有依赖项的校验哈希值,与go.mod中升级的Higress、golang.org/x系列库等新版本对应,确保依赖树一致性。

💡 小贴士

与 lingma-agents 交流的方式

📜 直接回复评论
直接回复本条评论,lingma-agents 将自动处理您的请求。例如:

  • 在当前代码中添加详细的注释说明。

  • 请详细介绍一下你说的 LRU 改造方案,并使用伪代码加以说明。

📜 在代码行处标记
在文件的特定位置创建评论并 @lingma-agents。例如:

  • @Lingma-Agent 分析这个方法的性能瓶颈并提供优化建议。

  • @Lingma-Agent 对这个方法生成优化代码。

📜 在讨论中提问
在任何讨论中 @lingma-agents 来获取帮助。例如:

  • @Lingma-Agent 请总结上述讨论并提出解决方案。

  • @Lingma-Agent 请根据讨论内容生成优化代码。

Copy link
Copy Markdown

@lingma-agents lingma-agents Bot left a comment

Choose a reason for hiding this comment

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

🔍 代码评审报告

🎯 评审意见概览

严重度 数量 说明
🔴 Blocker 0 阻断性问题,需立即修复。例如:系统崩溃、关键功能不可用或严重安全漏洞。
🟠 Critical 2 严重问题,高优先级修复。例如:核心功能异常或性能瓶颈影响用户体验。
🟡 Major 2 主要问题,建议修复。例如:非核心功能缺陷或代码维护性较差。
🟢 Minor 0 次要问题,酌情优化。例如:代码格式不规范或注释缺失。

总计: 4 个问题


📋 评审意见详情

💡 单文件建议

以下是文件级别的代码建议,聚焦于代码的可读性、可维护性和潜在问题。
📄 src/apiserver/go.mod (2 💬)
📄 src/apiserver/go.sum (2 💬)

🚀 跨文件建议

以下是对代码架构和设计的综合分析,聚焦于跨文件交互、系统一致性和潜在优化空间。
🔍 1. 依赖版本跳跃升级引发的兼容性风险

本次PR对多个Golang标准库依赖进行了版本跳跃式升级(如golang.org/x/crypto从0.26→0.31、x/net从0.28→0.33、x/sync从0.8→0.10、x/text从0.17→0.21),但未提供配套的兼容性验证方案。这些核心库的版本跳跃可能导致:

  1. 依赖树冲突:间接依赖的组件可能仍依赖旧版本接口
  2. 行为差异:新版本可能修改了底层实现逻辑
  3. 构建风险:go.sum哈希变更需要严格验证来源真实性
    建议:
  • 对每个升级的依赖库进行版本差异分析
  • 添加针对新版本的单元测试覆盖核心功能
  • 验证go.sum哈希值与官方仓库的匹配性

📌 关键代码:

+golang.org/x/crypto v0.31.0 // indirect
+golang.org/x/net v0.33.0 // indirect
+golang.org/x/sync v0.10.0 // indirect
+golang.org/x/text v0.21.0 // indirect
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=

⚠️ 潜在风险: 可能引发构建失败、运行时错误或安全漏洞,尤其当依赖库修改了关键接口或底层实现时

🔍 2. Higress版本升级缺乏配套验证

Higress从v0.0.0-20250109升级到v0.0.0-20250429(跨度3个月),但未看到:

  1. 对新版本API的兼容性验证代码
  2. 相关调用方的适配修改
  3. 新增功能的测试用例
    需确认:
  • 新版本是否修改了核心API接口
  • 现有业务逻辑是否需要适配新特性
  • 是否存在弃用功能需要迁移
    建议补充Higress升级的验证文档和配套测试

📌 关键代码:

+github.com/alibaba/higress v0.0.0-20250429125350-48b220453bd4
+github.com/alibaba/higress v0.0.0-20250429125350-48b220453bd4 h1:jxBZ+4KOoR5TmblMUUKVhfG3bYV0CPbG8ol0bc+b0Hk=

⚠️ 潜在风险: 可能存在未处理的API变更导致服务调用失败,特别是涉及路由、网关核心功能的场景

🔍 3. go.sum哈希值变更未溯源验证

多个依赖项的哈希值发生显著变化(如x/crypto和x/text),但未提供哈希变更的验证依据:

  1. golang.org/x/crypto哈希从v0.26的RrRspgV4变更为v0.31的ihbySMvV
  2. golang.org/x/text哈希从v0.17的XtiM5bkS变更为v0.21的zyQAAkrw
    需确保:
  • 新哈希值与官方仓库对应版本匹配
  • 未被篡改或使用不可信镜像源
  • 依赖校验工具(如cosign)的完整性验证
    建议使用go mod verify进行完整验证

📌 关键代码:

golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=

⚠️ 潜在风险: 可能存在依赖包被篡改风险,导致安全漏洞或后门植入

🔍 4. 间接依赖版本控制缺失

多个核心库使用了// indirect标记但未进行版本锁定,如:

golang.org/x/crypto v0.31.0 // indirect
golang.org/x/net v0.33.0 // indirect

这可能导致:

  1. 依赖解析时版本回退
  2. 构建环境不一致问题
  3. 间接依赖的版本不受控
    建议移除// indirect标记并显式声明版本约束

📌 关键代码:

+golang.org/x/crypto v0.31.0 // indirect
+golang.org/x/net v0.33.0 // indirect
+golang.org/x/sync v0.10.0 // indirect
+golang.org/x/text v0.21.0 // indirect

⚠️ 潜在风险: 可能导致不同环境构建结果不一致,影响CI/CD流水线稳定性

🔍 5. 重复依赖未统一管理

github.com/google/uuid在go.mod中同时存在显式引入和间接依赖:

12+	github.com/google/uuid v1.6.0
...
__old hunk__
-	github.com/google/uuid v1.6.0 // indirect

虽然文件级已指出重复,但需确认:

  1. 是否存在多个版本冲突
  2. 是否需要统一为单一引入方式
  3. 间接依赖的组件是否仍需要该版本
    建议进行依赖树分析(go mod why)确认必要性

📌 关键代码:

+github.com/google/uuid v1.6.0
-	github.com/google/uuid v1.6.0 // indirect

⚠️ 潜在风险: 可能引发依赖冲突,导致运行时出现多版本实例化问题


💡 小贴士

与 lingma-agents 交流的方式

📜 直接回复评论
直接回复本条评论,lingma-agents 将自动处理您的请求。例如:

  • 在当前代码中添加详细的注释说明。

  • 请详细介绍一下你说的 LRU 改造方案,并使用伪代码加以说明。

📜 在代码行处标记
在文件的特定位置创建评论并 @lingma-agents。例如:

  • @Lingma-Agent 分析这个方法的性能瓶颈并提供优化建议。

  • @Lingma-Agent 对这个方法生成优化代码。

📜 在讨论中提问
在任何讨论中 @lingma-agents 来获取帮助。例如:

  • @Lingma-Agent 请总结上述讨论并提出解决方案。

  • @Lingma-Agent 请根据讨论内容生成优化代码。

Comment thread src/apiserver/go.mod
Comment on lines +10 to +12
github.com/alibaba/higress v0.0.0-20250429125350-48b220453bd4
github.com/fsnotify/fsnotify v1.7.0
github.com/google/uuid v1.6.0
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

检测到重复的UUID依赖引入

🟡 Major | 🧹 Code Smells

📋 问题详情

在go.mod中同时引入了github.com/google/uuid v1.6.0(新添加)和旧版本间接依赖。旧版本的uuid依赖在__old hunk__中被删除,但新版本的添加位置需要确认是否冗余。需检查是否有其他模块间接依赖导致重复引入。

💡 解决方案

需确认Higress新版本是否已包含uuid依赖,避免重复引入。建议:

-github.com/google/uuid v1.6.0

如果Higress未包含该依赖,则保留;否则删除冗余依赖。


您的反馈对我们很重要!(建议右键在新标签页中打开以下链接)

有用意见👍无用意见👎错误意见❌

Comment thread src/apiserver/go.mod
golang.org/x/sync v0.10.0 // indirect
golang.org/x/sys v0.28.0 // indirect
golang.org/x/term v0.27.0 // indirect
golang.org/x/text v0.21.0 // indirect
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

检测到golang.org/x/net版本号跳跃式升级

🟡 Major | 🐞 Bugs

📋 问题详情

golang.org/x/net从v0.28.0升级到v0.33.0跨度较大,需确认是否存在不兼容变更。建议检查版本release notes确保功能兼容性。

💡 解决方案

建议在升级前执行以下步骤:

  1. 查看golang.org/x/net v0.33.0的release notes
  2. 运行go test ./...验证现有功能是否受影响

您的反馈对我们很重要!(建议右键在新标签页中打开以下链接)

有用意见👍无用意见👎错误意见❌

Comment thread src/apiserver/go.sum
Comment on lines +416 to +417
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

检测到golang.org/x/crypto依赖哈希值不匹配风险

🟠 Critical | 🐞 Bugs

📋 问题详情

在go.sum中golang.org/x/crypto的版本从v0.26.0升级到v0.31.0时,新哈希值h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=需要验证是否与该版本实际哈希一致。若版本号与哈希不匹配可能导致构建失败。

💡 解决方案

需验证golang.org/x/crypto v0.31.0的哈希值是否准确。可通过运行go mod verify确认,若不匹配需同步更新go.mod。


您的反馈对我们很重要!(建议右键在新标签页中打开以下链接)

有用意见👍无用意见👎错误意见❌

Comment thread src/apiserver/go.sum
Comment on lines +557 to +558
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

检测到golang.org/x/text哈希值变更异常

🟠 Critical | 🐞 Bugs

📋 问题详情

golang.org/x/text从v0.17.0升级到v0.21.0时,新哈希值h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=需要验证是否与该版本对应。若哈希错误可能导致依赖污染。

💡 解决方案

建议执行以下命令验证:

go mod download golang.org/x/text@v0.21.0
go mod verify

若验证失败需回退版本。


您的反馈对我们很重要!(建议右键在新标签页中打开以下链接)

有用意见👍无用意见👎错误意见❌

@CH3CHO CH3CHO merged commit 47918ff into higress-group:main May 5, 2025
3 checks passed
@CH3CHO CH3CHO deleted the feat/upgrade-higress branch May 5, 2025 14:03
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.

服务来源配置中,nacos用户名密码、服务发现类型等在编辑时不能正确展示

1 participant