setuptools scm何时/为什么将.devXXX附加到其生成的版本?
在我维护的几个repos中,setuptools scm开始生成版本号后面附加.devXXX的版本。这会导致问题,因为此标记对于上载到PyPi无效。
第一次发生这种情况时,我创建了一个变通方法,我认为这是因为我在git中做了一些不恰当的事情。这只是发生在一个非常简单的项目中,这真的很令人沮丧。
我以前使用的解决方法是通过use_scm_version
劫持版本控制。这不太理想,我想了解根本原因。
提前感谢您提供的任何帮助!
文档在这里:https://github.com/pypa/setuptools_scm/#importing-在setuppy 中
# setup.py
def _clean_version():
"""
This function was required because scm was generating developer versions on
GitHub Action.
"""
def get_version(version):
return str(version.tag)
def empty(version):
return ''
return {'local_scheme': get_version, 'version_scheme': empty}
setuptools.setup(
...
use_scm_version=_clean_version,
...
)
这样做是因为未标记的提交的版本值计算如下:
X.Y.(Z+1(-devN gSHA
其中:
X.Y.Z是在您实际所在的提交之上/之上最近的标记提交。
N是在上一个X.Y.Z 之后的提交次数
SHA是您当前提交的SHA。
-dev*
版本被认为是他们所遵循的测试版/预版本。
因此CCD_ 3被认为是CCD_。