发布python包 - 你应该包含doc和测试吗?

时间:2013-07-15 23:01:12

标签: python packaging

所以,我在pypi上发布了一个小型库,更多的是作为练习(“看看它是如何完成的”)而不是其他任何东西。

我已经在readthedocs上传了文档,我的git repo中有一个测试套件。

由于我认为任何可能对运行测试感兴趣的人可能只是克隆了repo,并且文档已经在线提供,我决定不在发布的包中包含doc和test目录,我只是想知道如果这是“正确”的事情。

我知道这个问题的答案会相当主观,但我觉得这是一个好的地方,以便了解社区认为最佳做法。

1 个答案:

答案 0 :(得分:5)

这不是必需的,但建议在文件包中包含文档和单元测试。

关于文档:

老式或更好地说开源软件的老派源代码包含文档,这是(事实上的)标准(例如,看看GNU软件)。文档是代码的一部分,应该是发布的一部分,因为一旦下载源代码版本,您就是独立的。曾经遇到过某个地方的火车,你需要快速查看模块X的文档,但没有上网?然后你松了一口气地意识到文档已经存在于本地。

这方面的另一个重点是,您与代码捆绑在一起的文档肯定适用于代码版本。代码和文档是同步的。

尤其是关于Python的一件事:你可以使用Sphinx编写文档,然后在安装软件包的过程中根据文档源构建漂亮的HTML输出。我已经看到各种Python包正是这样做的。

关于测试:

想象一下,测试捆绑在源版本中,并且很容易由用户运行(您应该记录如何执行此操作)。然后,如果用户观察到代码的问题并不容易追踪,他可以简单地在他的环境中运行单元测试 ,看看是否至少传递了这些。如果没有,你可能在指定代码的行为时做出了错误的假设,这是很好的了解。我想说的是:作为开发人员,如果你让用户执行单元测试非常简单,那对你来说非常有用。