如何开源您的Python库

你写了一个Python库。如果方便人们使用的话,那不是很好吗?下面是一个清单,列出了在开源Python库时需要考虑的事项和要采取的具体步骤。

1.源代码

将代码放到GitHub(网址:https://github.com/)上,这是大多数开源项目发生的地方,也是人们提交pull请求最容易的地方。

2.许可证License

选择一个开源许可证。一个好的、宽容的默认是MIT许可证(链接:https://en.wikipedia.org/wiki/MIT_License)。如果您有特定的需求,Creative Common的选择许可证(链接:https://choosealicense.com/)可以指导您进行选择。最重要的是,在选择许可证时要记住三条规则:

  • 不要创建自己的许可证
  • 不要创建自己的许可证
  • 不要创建自己的许可证

3.自述文件README

在树的顶部放置一个名为README.rst的文件,该文件的格式为ReStructured Text。

GitHub将与Markdown一样呈现ReStructured Text,ReST在Python的文档生态系统中表现更好。

4.测试

编写测试。这不仅对您有用,而且对想要制作避免破坏相关功能的补丁程序的人有用。

测试帮助协作者进行协作。

通常,最好使用pytest(链接:https://docs.pytest.org/en/latest/)来运行它们。还有其他测试运行程序,但是很少有理由使用它们。

5.风格Style

用linter强制样式:PyLint、Flake8或Black with–check。除非使用Black,否则请确保在签入源代码管理的文件中指定配置选项。

6.API文档

使用docstrings来记录模块,函数,类和方法。

您可以使用几种样式。我更喜欢Google风格的docstrings(链接:https://github.com/google/styleguide/blob/gh-pages/pyguide.md),但是可以选择ReST docstrings(链接:https://www.python.org/dev/peps/pep-0287/)。

Sphinx可以处理Google样式和ReST文档字符串,以将API文档与散文文档集成在一起。

7.散文的文档Prose documentation

使用Sphinx(链接:http://www.sphinx-doc.org/en/master/)教程是有用的,但是指定这个东西是什么、它的优点是什么、它的缺点是什么以及任何特殊的考虑也是很重要的。

8.构建Building

使用tox或nox可以自动运行测试并进行lint和构建文档。这些工具支持“依赖关系矩阵”。这些矩阵易于快速爆炸,但请尝试针对合理的示例进行测试,例如Python版本,依赖项版本以及您可能安装的可选依赖项。

9.打包Packaging

使用setuptools(链接:https://pypi.org/project/setuptools/)。编写一个setup.py和setup.cfg。如果同时支持Python 2和Python 3,请在setup.cfg中指定universal wheels。

tox或nox应该做的一件事是造一个wheel ,对安装的wheel进行测试。

避免使用C扩展名。如果出于性能或绑定的原因绝对需要它们,请将它们放在单独的包装中。正确包装C扩展值得其关注。有很多陷阱!

10.持续集成Continuous integration

使用公共持续集成运行程序。TravisCI(链接:https://travis-ci.org/)和CircleCI(链接:https://circleci.com/)为开源项目提供免费的层。将GitHub或其他repo配置为在合并pull请求之前需要通过检查,这样您就不必担心告诉别人修改他们的测试或代码审查的风格。

11.版本

使用SemVer(链接:https://semver.org/)或CalVer(链接:https://calver.org/)。有很多工具可以帮助您管理版本:incremental,bumpversion和setuptools_scm都是PyPI上的软件包,可以帮助您管理版本。

12.发布

通过运行tox或nox并使用tween将库上传到PyPI来发布。您可以通过运行DevPI进行“测试上传”。

六一编程网

发表评论

Next Post

你的孩子应该学习编程的10个理由

周二 6月 16 , 2020
虽然计算机技术正在迅速扩展到我们生活的几乎每个方面,但我们的许多学校似乎还停留在上世纪80年代和90 […]