所以,我在pypi上发布了一个小型库,更多的是作为练习(“看看它是如何完成的”)而不是其他任何东西。
我已经在readthedocs上传了文档,我的git repo中有一个测试套件。
由于我认为任何可能对运行测试感兴趣的人可能只是克隆了repo,并且文档已经在线提供,我决定不在发布的包中包含doc和test目录,我只是想知道如果这是“正确”的事情。
我知道这个问题的答案会相当主观,但我觉得这是一个好的地方,以便了解社区认为最佳做法。
答案 0 :(得分:5)
这不是必需的,但建议在文件包中包含文档和单元测试。
关于文档:
老式或更好地说开源软件的老派源代码包含文档,这是(事实上的)标准(例如,看看GNU软件)。文档是代码的一部分,应该是发布的一部分,因为一旦下载源代码版本,您就是独立的。曾经遇到过某个地方的火车,你需要快速查看模块X的文档,但没有上网?然后你松了一口气地意识到文档已经存在于本地。
这方面的另一个重点是,您与代码捆绑在一起的文档肯定适用于代码版本。代码和文档是同步的。
尤其是关于Python的一件事:你可以使用Sphinx编写文档,然后在安装软件包的过程中根据文档源构建漂亮的HTML输出。我已经看到各种Python包正是这样做的。
关于测试:
想象一下,测试捆绑在源版本中,并且很容易由用户运行(您应该记录如何执行此操作)。然后,如果用户观察到代码的问题并不容易追踪,他可以简单地在他的环境中运行单元测试 ,看看是否至少传递了这些。如果没有,你可能在指定代码的行为时做出了错误的假设,这是很好的了解。我想说的是:作为开发人员,如果你让用户执行单元测试非常简单,那对你来说非常有用。