Skip to main content

XDSDK v6→v7 升级工具:Skill + CLI + AST 工具链

Project description

xdsdk-upgrade

XDSDK v6 → v7 升级工具:CLI + Skill + AST 工具链。

目标:游戏接入方拿到工具就能在自己的项目里跑完整升级流程,0 编译错误交付。

支持的 LLM agent:

  • Claude Code — 通过 ~/.claude/skills/ 自动触发 Skill
  • Codex / Cursor / Cline — 通过 AGENTS.md 引导
  • 任何 LLM — 直接用 CLI + 读 markdown 知识库

一、接入方使用(游戏侧)

1. 装 CLI

pip install xdsdk-upgrade

2. 选你用的 LLM agent

选项 A: Claude Code

xdsdk-upgrade install-skill --engine ue   # 拷 Skill 到 ~/.claude/skills/
cd /path/to/your-ue-project
claude

输入触发词:"升级 XDSDK 到 v7"

选项 B: Codex / Cursor / Cline / 其他通用 agent

cd /path/to/your-ue-project
xdsdk-upgrade install-agents-md --project . --engine ue   # 生成 AGENTS.md
codex   # 或 cursor / cline

输入:"升级 XDSDK 到 v7" (agent 自动读 AGENTS.md,里面引用了完整 examples/SKILL/breaking_changes 文档绝对路径)

选项 C: 直接 CLI(无 agent)

不用 LLM 也能跑机械改动:

# 拉最新 v7 SDK 到本地缓存(不带 --version 自动用最新版)
xdsdk-upgrade fetch-sdk --engine ue
# 替换 + 改名 + 注释
xdsdk-upgrade apply --project /path/to/project \
  --replace-sdk-plugins --target-sdk-plugins ~/.xdsdk-cache/UE/<version>/Plugins \
  --comment-deprecated
xdsdk-upgrade scan --project /path/to/project   # 看哪些还要人工改

3. 直接 CLI 调用(不走 Claude)

# 拉 v7 SDK
xdsdk-upgrade fetch-sdk --engine ue                  # 默认拉最新版
xdsdk-upgrade fetch-sdk --engine ue --version 7.5.0  # 拉指定版本
# OSS 上没该版本时自动 fallback 到最新;CI 想严格不 fallback 加 --strict-version

# 扫描项目,看升级影响面
xdsdk-upgrade scan --project /path/to/project

# 一键应用机械改动(替换 plugin + AST 改名 + 自动注释)
xdsdk-upgrade apply --project /path/to/project \
  --replace-sdk-plugins --target-sdk-plugins ~/.xdsdk-cache/UE/<version>/Plugins \
  --comment-deprecated

# 完工后自检
xdsdk-upgrade verify-scope --project /path/to/project \
  --target-sdk-plugins ~/.xdsdk-cache/UE/<version>/Plugins
xdsdk-upgrade scan --project /path/to/project   # 看 residue.total_residue 是否为 0

# 生成升级报告
xdsdk-upgrade report --project /path/to/project --xd-version 7.X.Y

4. 子命令清单

命令 用途
scan 预扫升级影响面 + 残留检测
apply 执行机械改动(plugin 替换 / AST rename / 自动注释)
report 生成 UPGRADE_REPORT.md
verify-scope 审计是否越界改了 SDK plugin 自身
ci-check CI 检测 v6 残留(exit 1 = 还有残留)
list-sdk-plugins 列出 SDK plugin 名单(接入方按此判断哪些目录禁改)
dashboard 多项目批量统计 markdown
batch 同时扫多个项目

二、SDK 团队工具(内部维护)

tools/ 下三个工具是 SDK 团队生成 yaml/examples 知识库用的,接入方不需要:

# 1. 从 v6/v7 git ref 生成 breaking change 列表
python -m tools.generate_ue_diff \
  --repo /path/to/xdsdk-6.0-ue \
  --from-ref origin/master --to-ref origin/v7/master \
  --output /tmp/diff

# 2. 从 demo 抽取真实 API 用法
python -m tools.extract_api_usages \
  --repo /path/to/xdsdk-6.0-ue \
  --ref origin/v7/master \
  --pattern "FXDGPayment::PayWithParams"

# 3. 整合上述 + 现有 yaml 输出缺口报告
python -m tools.build_api_compat \
  --diff-json /tmp/diff/diff_raw.json \
  --current-yaml rules/ue/v6_to_v7.yaml \
  --repo /path/to/xdsdk-6.0-ue \
  --output /tmp/api_compat

接入方机器不需要 v7 SDK git 仓库——所有规则数据通过 pip 包内置 rules/ue/v6_to_v7.yaml 分发。


三、架构

xdsdk-upgrade (pip 包)
├── cli.py                       # 接入方主入口
├── tools/
│   ├── cpp_rename.py            # UE C++ AST 改名(method/class/include + add_include + type_includes)
│   ├── comment_out.py           # 自动注释废弃 API(含多行整块 + dangling 检测)
│   ├── uplugin_check.py         # .uplugin 解析
│   ├── deps_check.py            # .Build.cs / .uplugin 依赖检测
│   ├── manifest_edit.py         # Unity Packages/manifest.json 编辑
│   ├── code_rename.py           # Unity C# AST 改名
│   ├── field_rename.py          # Unity C# 字段改名
│   ├── generate_report.py       # UPGRADE_REPORT.md 生成
│   └── (SDK 团队工具) generate_ue_diff / extract_api_usages / build_api_compat
└── rules/
    ├── ue/v6_to_v7.yaml         # UE 升级规则(数据驱动)
    └── unity/v6_to_v7.yaml      # Unity 升级规则

Skill 文档另装(~/.claude/skills/xdsdk-upgrade-ue-v6-to-v7/):

  • SKILL.md — Skill 触发 + 11 步流程
  • examples.md — v6/v7 用法对照模板(25 个 case)
  • breaking_changes.md — 完整 breaking change 清单
  • api_reference_v7.md — v7 公开 API 路径速查

四、SDK 版本绑定

当前规则覆盖 XDSDK v7.X.Y。SDK 团队发新版本时同步更新 yaml + examples。

接入方使用工具时,把工具版本和 v7 SDK 版本对齐(如果工具版本 0.4.x → 对应 v7.6.x 规则)。


五、报问题 / 反馈

发现:

  • yaml 规则错误(v7 真实 API 跟工具描述不一致)
  • examples 模板生成的代码编译错
  • Skill 没按 example 改导致漏改

→ 把编译错误日志 + 文件:行号反馈给 SDK 团队,会在下个工具版本修复。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xdsdk_upgrade-0.6.1.tar.gz (130.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xdsdk_upgrade-0.6.1-py3-none-any.whl (149.7 kB view details)

Uploaded Python 3

File details

Details for the file xdsdk_upgrade-0.6.1.tar.gz.

File metadata

  • Download URL: xdsdk_upgrade-0.6.1.tar.gz
  • Upload date:
  • Size: 130.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for xdsdk_upgrade-0.6.1.tar.gz
Algorithm Hash digest
SHA256 5ae922587017f54bef13a4ad2cb29dfa191f30c2b77735c801a06610386aa2bb
MD5 fcc8da2abed8e03275327a5b7dfce3aa
BLAKE2b-256 9ee3c276249ddc46e3e3c1b72b1b1663ddf4b9f5f5fffbbac6fc88212ff42a12

See more details on using hashes here.

File details

Details for the file xdsdk_upgrade-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: xdsdk_upgrade-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 149.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for xdsdk_upgrade-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ef9f476fb7cd8436110cf0e79fc9932c2290b0d80bbdeca2bd0825654e41582c
MD5 db130d70316af04f243ecd721abc5686
BLAKE2b-256 427faf7c0206fc901e042932501fea223a4a82f70abf2fbdc9e9e5d840accda7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page