SuperAPI AI 工具集

migrate-component-to-uv

编程与开发

查看项目

更新于 10-15 23:44

技能介绍

用途:帮助把 Keboola Python 包从旧的 setup.py + pip 迁移到 pyproject.toml + uv 构建体系,遵循 PEP 517/518/639 标准及 Keboola 既有迁移模式。

主要能力:将包元数据迁移到 pyproject.toml、生成 uv.lock 实现确定性依赖、更新 CI/CD 工作流为 uv、并支持 Test PyPI 与生产 PyPI 发布验证。迁移建议分 3 个逻辑提交:先修复 lint 基线,再迁移包元数据,最后更新工作流并生成锁文件。版本策略上,测试阶段用下一小版本(如 1.6.13 → 1.7.0),生产发布用再下一个(如 1.8.0)。Python 矩阵通常取最低支持版本加两个最新稳定版。

使用方式:先检查 setup.py、requirements.txt、当前版本、python_requires 及是否存在 pdoc 文档工作流;将 flake8.cfg 重命名为 .flake8 并修复全部错误;创建 pyproject.toml 并删除旧文件;更新 push_dev.yml、deploy.yml、deploy_to_test.yml,有文档时再加 push_main.yml;执行 uv sync --all-groups、uv build 验证;推送分支并打测试标签,手动触发 Test PyPI 工作流,验证安装后合并并发布生产版本。

必要命令包括:uv add --dev flake8、uv sync --all-groups --frozen、uv run pytest tests、uv build、uv version 1.7.0 --dry-run、git tag 1.7.0。

限制:需具备 setup.py 或 requirements.txt、pytest 测试、干净工作树、GitHub secrets 及 PyPI/Test PyPI 账户。要求 100% 使用 uv,不使用 pip 或 uv pip install。License 分类器需移除,CRLF 转 LF 会产生大量差异。资料未提供实际迁移结果或性能数据。