Skip to content

从 Tuack 迁移

将你的工程从 Tuack 迁移到 Tuack-NG。

摘要

我们提供了 Tuack Migrater 来辅助您进行迁移。

但是迁移过程并非完全自动化,您需要手动执行一些操作。

已知限制

  • Tuack-NG 暂不支持多语言题面,迁移时会要求您指定一门语言进行迁移。
  • Tuack-NG 暂不支持 Pretest(预测试)。
  • Tuack-NG 的外置表格,外置样例,题面格式,数据生成器的语法均与 Tuack 不同,您需要自行重写,或者使用 LLM 等方式辅助重写。

步骤

安装迁移工具

PyPI 安装 Tuack Migrater:

shell
pip install tuack-migrater

开始自动迁移

将工作目录切换到 Tuack 工程的根目录,执行:

shell
python3 -m tuack-migrater <你希望迁移后的新工程目>

在迁移过程中,您可能需要回答一些问题,并且本工具会做出提醒您在迁移后对部分内容进行手动适配,详见下文。

迁移后的新工程将会保存在 <你希望迁移后的新工程目录> 下。

迁移后操作

配置交互题

你可能会想将交互题纳入 Tuack-NG 的工程管理。

迁移脚本带有自动查找交互库的逻辑,如果没有成功检测,请参见 交互题 手动配置。

迁移 SPJ

Tuack-NG 的 SPJ 必须使用 Testlib 书写,参见 SPJ 编写参考

迁移数据生成器

如果你使用了基于 Testlib 的数据生成器,你可能只需要少许操作便可以将其适配 Tuack-NG。

如果你使用了 Tuack 基于 Python 的数据生成器,你需要将其完整重写到 C++。

参见 数据生成器规范

迁移题面内容

Tuack-NG 使用的 MiniJinja 本质上与 Tuack 的 Jinja 来自同一作者,因此语法类似,但是 Tuack-NG 对可调用的 API 做了较大更变。

迁移脚本已经对于力所能及的进行了迁移,并将不支持内容进行了注释。您仍需要自行复查。

另外,Tuack-NG 使用的 Markdown 格式相比 Tuack 有所拓展。

参见 题面格式

迁移外置表格

Tuack-NG 使用 Lua 作为外置表格,且不支持 Tuack 的格式,因此您必须重写。

详见 Lua 表格