2013-07-15 52 views
8

因此,我已经发布了一个关于pypi的小型库,更像是一个练习(以“看看它是如何完成的”)而不是其他任何事情。发布一个python包 - 你应该包含doc和测试吗?

我已经上传了关于readthedocs的文档,并且在我的git仓库中有一个测试套件。

因为我认为任何可能对运行测试感兴趣的人都可能只是复制回购,并且该文档已经在线提供,所以我决定不在发布的软件包中包含文档和测试目录,而我只是想知道这是否是“正确”的事情。

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

+0

我找不到任何PEP或Setuptools文档中实际上提及测试和文档的部分,但我看到的一般模式是软件包捆绑测试并且不打包文档。 – Blender

+0

嗯。我有点期待与此相反 - 虽然我可以看到包含文档si的价值,可以在离线状态下查阅它,但在我看来,大多数普通用户(即只安装lib并使用它的人,假设它只是作品,而不是那些有兴趣盗取你的东西的人)可能不会运行包含的测试,因此捆绑它们看起来像(对我来说可忽略但仍然)浪费。感谢您的回答:) – astrognocci

+0

这些包的文档无论如何都是从源代码生成的,所以您只需执行'help(函数)',并从方法或模块的文档字符串中提取相同的文档。 – Blender

回答

5

这不是必需的,但建议将文档和单元测试包括到包中。

关于文件:

老式的或不如说开源软件的老学校源版本包含的文档,这是一个标准的(看看GNU软件,(事实上的?)例)。文档是代码的一部分,应该是发行版的一部分,只是因为一旦你下载了源代码版本,你就是独立的。你曾经在什么地方坐过火车,你需要快速查看模块X的文档,但是没有上网?然后你很开心地意识到这些文件已经存在,在本地。

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

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

关于测试:

想象中的测试被捆绑在源释放,很容易被用户运行(你应该记录如何做到这一点)。然后,如果用户观察到代码中存在的问题并不容易追查,他可以在他的环境中简单地运行单元测试,并查看是否至少有这些问题通过。如果不是,那么在指定代码的行为时可能会做出错误的假设,这很好理解。我想说的是:如果让用户执行单元测试非常简单,那么对开发人员来说它可能非常有用。

+0

我已经使用狮身人面像文件,并在readthedocs上承载它,这就是为什么我想我可以跳过那一个。但是,你的观点很有道理,我猜得到我太习惯于简单地使用谷歌了。我确信同意将它与代码一起版本化,虽然我在保持更新方面做得不太好... ...哎呀,感谢您的意见,我想从现在开始包括这两种方法;) – astrognocci

+0

@astrognocci我现在应该接受答案,我猜... – gaborous

相关问题