FastQTools 脚本系统迁移指南¶
本文档帮助你从旧的脚本系统迁移到新的统一脚本接口。
概述¶
FastQTools 进行了全面的脚本系统重构,提供了更清晰、更一致的接口。主要改进包括:
✅ 统一的命令接口 - 所有脚本使用一致的参数格式
✅ 公共函数库 - 消除重复代码,提高可维护性
✅ 更好的错误处理 - 详细的错误信息和恢复建议
✅ 增强的文档 - 每个脚本都有完整的帮助信息
✅ 改进的测试架构 - 新增集成测试层,更好的测试组织
脚本映射表¶
构建脚本¶
| 旧命令 | 新命令 | 说明 |
|---|---|---|
./scripts/build.sh | ./scripts/core/build | 默认构建 |
./scripts/build.sh clang Release | ./scripts/core/build | 相同(默认就是 clang Release) |
./scripts/build.sh gcc Debug | ./scripts/core/build -c gcc -t Debug | 指定编译器和类型 |
./scripts/build.sh clang Debug --asan | ./scripts/core/build -t Debug -s asan | Sanitizer 支持 |
./scripts/build.sh --coverage | ./scripts/core/build --coverage | 覆盖率构建 |
./scripts/build-dev.sh | ./scripts/core/build --dev | 开发模式 |
./scripts/build-dev.sh gcc debug | ./scripts/core/build --dev -c gcc | 开发模式 + gcc |
测试脚本¶
| 旧命令 | 新命令 | 说明 |
|---|---|---|
./scripts/test.sh | ./scripts/core/test | 运行所有测试 |
./scripts/test.sh -c clang -t Debug | ./scripts/core/test -c clang -t Debug | 指定构建配置 |
./scripts/test.sh -C | ./scripts/core/test --coverage | 覆盖率测试 |
./scripts/test.sh -f "*timer*" | ./scripts/core/test --filter "*timer*" | 过滤测试 |
./scripts/test.sh -v | ./scripts/core/test --verbose | 详细输出 |
./scripts/test.sh -r 5 | ./scripts/core/test --repeat 5 | 重复测试 |
| N/A | ./scripts/core/test --unit | 只运行单元测试(新功能) |
| N/A | ./scripts/core/test --integration | 只运行集成测试(新功能) |
代码质量脚本¶
| 旧命令 | 新命令 | 说明 |
|---|---|---|
./scripts/lint.sh format | ./scripts/core/lint format | 格式化代码 |
./scripts/lint.sh format-check | ./scripts/core/lint check | 检查格式 |
./scripts/lint.sh lint | ./scripts/core/lint tidy | 静态分析 |
./scripts/lint.sh lint-fix | ./scripts/core/lint tidy-fix | 自动修复 |
| N/A | ./scripts/core/lint all | 运行所有检查(新功能) |
依赖安装脚本¶
| 旧命令 | 新命令 | 说明 |
|---|---|---|
./scripts/install_deps.sh | ./scripts/core/install-deps | 安装开发依赖 |
./scripts/install_deps.sh --dev | ./scripts/core/install-deps | 相同 |
./scripts/install_deps.sh --runtime | ./scripts/core/install-deps --runtime | 只安装运行时 |
./scripts/install_runtime.sh | ./scripts/core/install-deps --runtime | 已合并 |
| N/A | ./scripts/core/install-deps --dry-run | 预览安装(新功能) |
其他脚本¶
| 旧脚本 | 新脚本 | 状态 |
|---|---|---|
package_release.sh | scripts/tools/package-release | 已迁移 |
docker_deploy.sh | scripts/tools/deploy | 已迁移 |
gcov_wrapper.sh | scripts/lib/gcov-wrapper | 已迁移 |
devcontainer_setup.sh | scripts/tools/setup-devcontainer | 已迁移 |
benchmark_io.sh | scripts/tools/benchmark-io | 已迁移 |
详细迁移步骤¶
步骤 1: 备份现有配置¶
如果你有自定义的构建配置或脚本:
步骤 2: 更新脚本权限¶
新脚本需要可执行权限:
chmod +x scripts/core/build
chmod +x scripts/core/test
chmod +x scripts/core/lint
chmod +x scripts/core/install-deps
步骤 3: 测试新脚本¶
先在非关键环境测试:
# 测试构建
./scripts/core/build --help
./scripts/core/build --dev
# 测试测试脚本
./scripts/core/test --help
./scripts/core/test --unit
# 测试代码质量
./scripts/core/lint --help
./scripts/core/lint check
步骤 4: 更新 CI/CD 配置¶
GitHub Actions¶
旧配置:
- name: Build
run: ./scripts/build.sh clang Release
- name: Test
run: ./scripts/test.sh -c clang -t Release -C
新配置:
GitLab CI¶
旧配置:
新配置:
build:
script:
- ./scripts/core/build -c gcc -t Debug
test:
script:
- ./scripts/core/test -c gcc -t Debug
步骤 5: 更新文档和脚本引用¶
在项目文档中搜索旧脚本引用并更新:
步骤 6: 更新开发者习惯¶
团队成员需要知道的改变:
-
帮助信息: 所有新脚本都支持
--help -
开发模式: 使用
--dev快速开发 -
测试分层: 可以单独运行不同层次的测试
常见问题¶
Q1: 旧脚本什么时候会被删除?¶
A: 旧脚本已在 2026-02-24 完成清理。所有功能已迁移至 scripts/core/ 和 scripts/tools/。
Q2: 如果新脚本不工作怎么办?¶
A: 1. 先查看详细输出:./scripts/core/build --verbose 2. 检查 scripts/lib/common.sh 是否存在 3. 暂时可以回退到旧脚本 4. 报告问题到 issue tracker
Q3: 如何在新旧脚本间切换?¶
A: 两套脚本可以共存。新脚本名称去掉了 .sh 后缀:
Q4: 自定义的构建配置如何迁移?¶
A: 新脚本提供更多配置选项:
旧方式(硬编码):
新方式(命令行参数):
Q5: 性能有变化吗?¶
A: 新脚本性能相同或更好: - 更少的重复代码执行 - 更智能的缓存检查 - 可选的并行化
已知问题和解决方案¶
问题 1: "common.sh not found"¶
症状: 运行新脚本时报错找不到 common.sh
解决方案:
问题 2: 权限错误¶
症状: Permission denied
解决方案:
chmod +x scripts/lib/common.sh
chmod +x scripts/core/build
chmod +x scripts/core/test
chmod +x scripts/core/lint
chmod +x scripts/core/install-deps
问题 3: 参数不兼容¶
症状: 旧的参数格式不工作
解决方案: 查看帮助信息了解新格式
回滚指南¶
如果需要临时回退到旧脚本:
选项 1: 使用旧脚本名称¶
选项 2: Git 回退¶
选项 3: 使用备份¶
获取帮助¶
文档资源¶
- 脚本文档:
scripts/README.md - 测试文档:
tests/README.md - API 文档: 运行
doxygen生成
命令帮助¶
每个脚本都有详细的帮助信息:
./scripts/core/build --help
./scripts/core/test --help
./scripts/core/lint --help
./scripts/core/install-deps --help
社区支持¶
- 提交 issue: GitHub Issues
- 查看示例:
docs/dev/build.md - 开发者文档:
docs/dev/
反馈¶
如果你在迁移过程中遇到问题或有改进建议:
- 提交 GitHub Issue 并标记
migration - 在 issue 中描述:
- 你尝试的旧命令
- 预期的新命令
- 遇到的问题
- 我们会及时响应并更新本文档
时间线¶
| 日期 | 里程碑 |
|---|---|
| 2026-01-08 | ✅ 新脚本系统发布 |
| 2026-02-01 | 旧脚本标记为废弃 |
| 2026-04-01 | 旧脚本移至 deprecated/ |
| 2026-07-01 | 完全移除旧脚本 |
当前阶段: 新旧脚本共存期,推荐使用新脚本
检查清单¶
迁移完成后,确认以下项目:
- 所有 CI/CD 管道使用新脚本
- 文档中更新了脚本引用
- 团队成员了解新命令
- 自定义脚本已迁移
- 测试通过
- 旧脚本备份(如有自定义修改)
完成后,你已经成功迁移到新的脚本系统!🎉