这 12 个步骤能确保成功发布。
-- Moshe Zadka
你写了一个 Python 库。自己觉着这太棒了!如果让人们能够轻松使用它不是很优雅么?这有一个需要考虑的清单,以及在开源 Python 库时要采取的具体步骤。
1、源码
将代码放在GitHub上,这里有很多开源项目,并且人们很容易提交拉取请求。
2、许可证
选择一个开源许可证。一般来说MIT 许可证
[2]
是一个挺好的宽容许可证。如果你有特定要求,Creative Common 的选择许可证
[3]
可以指导你完成其它选择。最重要的是,在选择许可证时要记住三条规则:
◈ 不要创建自己的许可证。
◈ 不要创建自己的许可证。
◈ 不要创建自己的许可证。
3、README
将一个名为 的文件(使用 ReStructured Text 格式化)放在项目树的顶层。
GitHub 将像 Markdown 一样渲染 ReStructured Text,而 ReST 在 Python 的文档生态系统中的表现更好。
4、测试
写测试。这对你来说没有用处。但对于想要编写避免破坏相关功能的补丁的人来说,它非常有用。
测试可帮助协作者进行协作。
通常情况下,如果可以用pytest
[4]
运行就最好了。还有其他测试工具 —— 但很少有理由去使用它们。
5、样式
使用 linter 制定样式:PyLint、Flake8 或者带上 的 Black 。除非你使用 Black,否则请确保在一个文件中指定配置选项,并签入到版本控制系统中。
6、API 文档
使用 docstrings 来记录模块、函数、类和方法。
你可以使用几种样式。我更喜欢Google 风格的 docstrings
[5]
,但ReST docstrings
[6]
也是一种选择。
Sphinx 可以同时处理 Google 风格和 ReST 的 docstrings,以将零散的文档集成为 API 文档。
7、零散文档
使用Sphinx
[7]
。(阅读我们这篇文章
[8]
。)教程很有用,但同样重要的是要指明这是什么、它有什么好处、它有什么坏处、以及任何特殊的考虑因素。
8、构建
使用 tox 或 nox 自动运行测试和 linter,并构建文档。这些工具支持“依赖矩阵”。这些矩阵往往会快速增长,但你可以尝试针对合理的样本进行测试,例如 Python 版本、依赖项版本以及可能安装的可选依赖项。
9、打包
使用setuptools
[9]
工具。写一个 和一个 。如果同时支持 Python 2 和 3,请在 中指定 universal 格式的 wheel。
tox 或 nox 应该做的一件事是构建 wheel 并对已安装的 wheel 进行测试。
避免使用 C 扩展。如果出于性能或绑定的原因一定需要它们,请将它们放在单独的包中。正确打包 C 扩展可以写一篇新的文章。这里有很多问题!
10、持续集成
使用公共持续工具。TravisCI
[10]
和CircleCI
[11]
为开源项目提供免费套餐。将 GitHub 或其他仓库配置为在合并拉请求之前需要先通过检查,那么你就不必担心在代码评审中告知用户修复测试或样式。
11、版本
使用SemVer
[12]
或CalVer
[13]
。有许多工具可以帮助你管理版本:incremental
[14]
、bumpversion
[15]
和setuptools_scm
[16]
等都是 PyPI 上的包,都可以帮助你管理版本。
12、发布
通过运行 tox 或 nox 并使用 twine 将文件上传到 PyPI 上发布。你可以通过在DevPI
[17]
中“测试上传”。
via:https://opensource.com/article/18/12/tips-open-sourcing-python-libraries
作者:Moshe Zadka
[19]
选题:lujun9972译者:geekpi校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
领取专属 10元无门槛券
私享最新 技术干货