当/为什么setuptools-scm将.devXXX附加到其生成的版本中?
在几个repos中,我维护setuptools-scm开始生成版本,并将.devXXX附加到版本号中。这会导致问题,因为此标记对于上载到PyPi无效。
第一次发生这种情况时,我创造了一个解决办法,我认为这是因为我在git中做了一些不适当的事情。这只是发生在一个非常简单的项目,这是非常令人沮丧的。
我之前使用的解决方法是通过use_scm_version劫持版本控制。这不太理想,我想了解根本原因。
谢谢你能提供的任何帮助!
文档在这里:https://github.com/pypa/setuptools_scm/#importing-in-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,
...
)发布于 2022-11-16 03:05:30
之所以这样做,是因为提交没有标记,它们的版本值计算如下:
X.Y.(Z+1)-
其中:
X.Y.Z是之前标记的最新提交,它实际上位于/上面。
N是在前一个X.Y.Z之后的提交数。
SHA是当前提交的SHA。
-dev*版本被认为是他们所遵循的测试/预版本。
因此,X.Y.(Z+1)-devN-gSHA被认为是X.Y.(Z+1)的测试版/预版本。
https://stackoverflow.com/questions/73157896
复制相似问题