readthedocs和setuptools scm版本错误

时间:2016-03-05 07:13:38

标签: setuptools read-the-docs

我有一个我刚更新的软件包使用setuptools_scm,发现readthedocs中的版本号错误。

http://sshuttle.readthedocs.org/en/v0.77/显示:

Version: 0.78.dev0+ng083293e.d20160304

但是,由于版本083293e具有0.77标记,因此版本字符串应为0.77

看起来readthedocs可能在构建之前对我的源代码进行了更改。

我查看了readthedocs构建日志,它似乎在一个阶段(0.77)有正确的版本,但这是在它构建文档之前。

Processing dependencies for sshuttle==0.77
Finished processing dependencies for sshuttle==0.77

构建日志在构建文档时不会提及版本。

有可能解决这个问题吗?

由于

3 个答案:

答案 0 :(得分:1)

我发现您正在构建this project

显然,在确定版本之前,某些东西正在改变存储库状态。您可以通过在自己构建文档之前改变其中一个文件来复制类似的行为:

//...
ZoomView zoomView zoomView = new ZoomView(getActivity());
zoomView.addView(contentInflatedView);
//add zoomView to your layout...

在阅读文档文档时,有description of the process

在那里,你可以看到RTD的步骤,即(a)运行setup.py install然后(b)在requirements.txt中安装需求。

我已经确认这些步骤都不应该改变回购状态。

然而,

它没有解释的是那个'版本'来自或者更新update_imported_docs。我怀疑这个问题存在于一些微妙的内容中,这些内容正在阅读文档正在做的修改回购的内容。

此处one place where the conf.py file gets modified

将。{1}}添加到.gitignore中可能会忽略这些更改,因此在计算项目版本时不会弄脏您的工作状态。

答案 1 :(得分:0)

https://github.com/pypa/setuptools_scm/issues/84已更新以记录此

我们将与sphinx团队合作,提供此流程的自动/无痛版本

答案 2 :(得分:0)

setuptools_scm的文档现在有关于如何使用readthedocs的instructions

  

不鼓励使用sphinx本身的setuptools_scm   在可编辑/实际安装后使用pkg_resources:

from pkg_resources import get_distribution
release = get_distribution('myproject').version
# for example take major/minor
version = '.'.join(release.split('.')[:2])
     

根本原因是,那   像readthedocs这样的服务有时会改变工作目录   很好的理由和使用已安装的元数据可以防止使用不必要   那里有不稳定的数据。

这样可以避免根据其他答案使用kluges。