【发布时间】:2020-01-15 04:17:50
【问题描述】:
为这个稍微复杂的问题道歉 - 这是我的场景:
当有一个新的 git 标签时,我有一个管道可以将包从 Travis 部署到 PyPI。我的包包含 Cython 模块,生成的 C 代码也是存储库的一部分。
在 Travis 上构建期间,C 代码会重新生成,并且由于生成的 cmets 包含特定于环境的路径,因此文件会发生变化。由于文件现在已从标记的提交中修改,setuptools_scm 不再返回干净的版本号 (0.1),而是返回类似 0.2.dev0+... 的内容,这会使部署到 PyPI 失败。
我目前解决此问题的想法是:
- 从存储库中排除 C 代码(我不想这样做)
- 在部署之前硬重置到最后一个标签(不确定这是否可行,但希望避免)
- 告诉 Cython 不要用 cmets 注释 C 代码(我的首选解决方案,但显然 Cython 没有这样的选项?)
- 从确定版本号中排除 C 文件(如何?)
- 不要在 Travis 上重新生成 C 文件
以下哪个是首选解决方案?有没有更好的办法?
【问题讨论】:
-
我原以为
emit_code_commentsoption 会这样做,但它似乎对我不起作用......嗯......编辑:已经在 github 上报告了 github.com/cython/cython/issues/2740 -
我看到你找到了错误报告。我在第一次阅读时错过的一件事是它确实作为编译器指令工作,而不是作为选项......你看到了吗,这是否解决了问题?
-
哦,谢谢,我确实也错过了。无论如何,我目前倾向于不让 Travis 重新编译 Cython 代码。
标签: python git cython travis-ci setuptools