Skip to content

fix(deps): upgrade SDK and enforce standalone install requirements - #530

Merged
liujuanjuan1984 merged 3 commits into
mainfrom
fix/consolidate-pr-527-528
Sep 29, 2026
Merged

liujuanjuan1984 merged 3 commits into
mainfrom
fix/consolidate-pr-527-528

Conversation

@liujuanjuan1984

@liujuanjuan1984 liujuanjuan1984 commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

问题与结果

#527 升级依赖后,独立安装 wheel 会解析到 SQLAlchemy 2.1,并因缺少 greenlet 而启动失败。依赖审计同时发现,click/pyasn1 的安全版本下限只存在于 uv 仓库配置,未进入发布包元数据。

本 PR 整合 #527、#528,并完成 #515 的 SDK 升级与兼容层审计:发布包明确声明异步数据库依赖及安全版本下限,支持经过验证的 protobuf 6/7,持续验证两条 protobuf 版本线。

实现

  • 升级 a2a-sdk 1.1.2 → 1.1.5、SQLAlchemy 锁定版本 2.0.53 → 2.0.54、Ruff 0.16.7 → 0.16.8;pre-commit Ruff hook 同步到 0.16.8。
  • 声明 sqlalchemy[asyncio]>=2.0,<3.0,使独立 wheel/sdist 安装自动获得 greenlet。
  • 将 click>=8.3.3、pyasn1>=0.6.4 移至运行依赖,移除重复的 uv 专用 constraints,确保安全下限写入发布包 Requires-Dist。
  • SDK 1.1.5 已修复 protobuf 7 兼容问题,支持范围调整为 >=6.33.5,<8.0,锁定至 7.36.2;移除基于旧 SDK 限制的 Dependabot ignore。
  • 安装元数据回归覆盖安全下限、SQLAlchemy asyncio extra 和 protobuf 版本边界,明确要求这些依赖无条件生效,防止平台/Python 版本/dev extra 条件导致漏检。
  • 新增 Python 3.11 / protobuf 6.33.6 CI job;UV_NO_SYNC=1 防止测试及嵌套协议探针同步回锁定的 protobuf 7。
  • 更新部署说明和兼容性文档中的审计依据。

兼容性审查

  • 上游 uvicorn、google-auth → pyasn1-modules 的元数据仍允许低于安全下限的版本,故保留下限并扩大到发布安装路径。
  • 保留 DatabaseTaskStoreCompat:SDK 的数据库保存仍采用无终态保护的 ORM merge,本项目需要原子 first-terminal-state-wins;shape、ORM 转换、跨实例终态保护回归通过。
  • 保留旧持久化行转换、请求处理 hooks 与队列生命周期逻辑,维持输出协商、取消幂等和断流后持久化。旧持久化行转换不代表恢复 A2A 0.3 wire 支持。
  • 出站请求头继续使用 SDK service_parameters,由真实 HTTP 请求边界回归覆盖。
  • 保留 google.protobuf.*、jsonrpc.* typing overrides:移除后的独立 mypy 核查报告 18 个缺少第三方类型信息的导入错误。

验证

  • 最新变更执行 ./scripts/doctor.sh 完整通过:pre-commit 无自动修改、mypy(88 个源文件)、829 项测试、93.33% 覆盖率及门槛、构建、独立 wheel 安装和 /health 检查。
  • 独立 Python 3.11 / protobuf 6.33.6 环境执行 829 项回归通过;禁止 uv 自动同步,嵌套协议探针同样使用 protobuf 6。
  • 全套测试包含 8 项黑盒协议探针和 5 项真实出站请求头回归。
  • 最终依赖集合的运行时与开发依赖漏洞审计未发现已知漏洞;wheel/sdist 独立安装冒烟通过,实际解析到 SQLAlchemy 2.1.1 + greenlet 3.5.6。
  • 对实际 wheel 的独立解析确认拒绝 click==8.3.2、pyasn1==0.6.3;对回归测试注入 Linux/Python 版本/dev extra 条件,确认修复后均会拒绝条件化安全下限。
  • uv lock --check、git diff --check 通过。

最新提交 0ea6834 的远端 CI 全部通过:默认工具链、Python 3.11/3.12/3.13 矩阵及新增 protobuf 6 兼容性检查。未执行真实 OpenCode 上游集成测试;独立安装按声明的版本范围解析,仍可能与仓库锁定版本不同,因此保留构建产物冒烟检查。

Issue 关系

Closes #529
Closes #515

保持 Draft,等待人工审核与合并。

Integrate #527 and #528 on latest main; document retained SDK compatibility and standalone installation requirements.

Refs #529, #515
…ility

Promote security floors to runtime metadata, validate protobuf 6/7 support, remove stale Dependabot exclusions, and align Ruff hooks.

Refs #515, #529
@liujuanjuan1984 liujuanjuan1984 changed the title fix(deps): 整合依赖升级并修复 SQLAlchemy 异步安装 fix(deps): 整合依赖升级并补齐发布安装约束 Sep 29, 2026
…n CI

Reject platform- or extra-scoped security floors and keep nested protocol probes on the compatibility environment.

Refs #515, #529
@liujuanjuan1984 liujuanjuan1984 changed the title fix(deps): 整合依赖升级并补齐发布安装约束 fix(deps): upgrade SDK and enforce standalone install requirements Sep 29, 2026
@liujuanjuan1984

Copy link
Copy Markdown
Collaborator Author

独立变更审查结论

针对 main 到本 PR 的完整 diff、全部提交和 #515/#529 验收要求重新复核,未发现尚未解决的阻断性问题。依赖声明、lockfile、发布安装行为和文档保持一致。

本轮发现并在 0ea6834 中修复两处验证缺口:

  1. 元数据测试原来按当前环境判断 marker,会把“仅 Linux 生效”的安全下限误判为无条件要求。已改为明确拒绝 marker,并用平台/Python 版本/dev extra 三类条件注入复核;生产依赖声明本身没有此条件化问题。
  2. 支持 protobuf 6/7,但原 CI 只覆盖锁定的 7。已补独立 Python 3.11 / protobuf 6.33.6 job,并禁用自动同步,确保嵌套协议探针不会偷偷切回 7。

验证:doctor 全通过(829 项测试,93.33% 覆盖率);独立 protobuf 6 环境 829 项通过;当前提交远端 5 项检查全部通过。未执行真实 OpenCode 上游集成测试。

PR 已采用英文 commit message 风格标题和中文描述。Closes #515/#529 准确,#515 原始版本目标已同步为 1.1.5;#527/#528 标为被替代,#519/#451 不关闭。全部改动已提交并推送,PR 保持 Draft 待人工审核。

@liujuanjuan1984
liujuanjuan1984 marked this pull request as ready for review September 29, 2026 09:54
@liujuanjuan1984
liujuanjuan1984 merged commit 7f98948 into main Sep 29, 2026
5 checks passed
@liujuanjuan1984
liujuanjuan1984 deleted the fix/consolidate-pr-527-528 branch September 29, 2026 09:55
@liujuanjuan1984

Copy link
Copy Markdown
Collaborator Author

已随 v1.3.3 发布:tag 指向合并后的 main 提交 7f98948;自动发布工作流完整通过,PyPI 与 GitHub Release 发布成功,wheel、sdist 和 SHA256SUMS 齐全。Release 说明已按此前风格整理为三个不重复的主要变化。旧开发 worktree 与本地分支已在核实内容全部进入 main 后清理,主目录停留在最新 main。发布地址:https://github.com/Intelligent-Internet/opencode-a2a/releases/tag/v1.3.3

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.

整合 #527 与 #528:升级依赖并修复 SQLAlchemy 异步安装 升级 a2a-sdk 至 1.1.5 并审计下游兼容层

1 participant