第21章 为Biopython做贡献

21.1 错误报告与功能需求

对于biopython的开发者来说,从使用者得到反馈是非常重要的;来自于众多使用者的问题反馈、错误报告(以及补丁)对于biopython这样的开源项目有着莫大的帮助。

Biopython邮件列表 是一个讨论功能需求和潜在bugs的主要论坛:

除此之外,如果你发现bug, 请提交到我们的bug监控页面(http://redmine.open-bio.org/projects/biopython) 这样,这些bug才不至于淹没于浩如烟海的收件箱中被遗忘。

21.2 邮件列表与帮助新手

我们希望所有的biopython使用者都在biopython主邮件列表注册并订阅相关邮件。同时使用者在对某一领域有一定了解之后,也希望他们能够帮助入门者并对他们的问题进行解答,毕竟每个人开始的时候都是菜鸟。

21.3 贡献文档

我们很高兴能从用户那里收到反馈,不论是通过bug报告还是邮件列表的形式。或许在你阅读这一教程的时候,你可能会发现某些你所感兴趣的话题没被涉及或者没有解释清楚。甚至biopython的内建文档(docstrings)以及一些在线文档(http://biopython.org/DIST/docs/api)有所缺失,有能力的用户都可以帮助我们填补这些空白。

21.4 贡献学习手册示例

18 章中用户手册解释的那样,如今biopython有一个汇集用户贡献的使用文档的wiki文库(http://biopython.org/wiki/Category:Cookbook),也许你也可以把做的一些使用说明放在这里。

21.5 维护跨平台发行版本

目前我们提供biopython的源代码安装(适用于任何操作系统,如果你安装了正确的编译工具的话),同时还提供有点击运行的windows安装工具。这涵盖了当今当多数操作系统。

对于大多数linux操作系统来说,都有志愿者将源代码进行编译成包,同时也解决了包依赖等相关问题,linux用户可以很容易的安装。对于这些工作,我们非常感激。如果你想要对于这一工作有所贡献的话,请阅读你的linux发行版关于这一事项的详细说明。

对于想要从事这一工作的用户,以下是一些关于主要操作系统平台的建议:

Windows

– Windows 产品通常有一个图形安装工具,能够将biopython所有的基本组建安装到相应的目录。我们使用 Distutils 工具来创建能完成这一任务的installer。

首先,你要确定你的Windows操作系统中安装了C编译器,而且你能够正确编译并安装(通常这是困难的地方),可以参考Biopython安装说明。

在你配置好C编译器之后,安装工作就很简单:

python setup.py bdist_wininst

目前,在32位Windows操作系统上安装biopython没有任何问题。只是64位操作系统的安装还没能实现,要是谁能在这方面做点贡献就太好了。

RPMs

– RPMs在一些linux发行版中是非常流行的包管理系统,在RPMs主页(http://www.rpm.org)有很多关于RPMs的文档说明帮助你快速的开始。为你的系统创建一个RMP是很容易的一件事。你仅仅需要将源代码编译成包(需要一个能正常工作的C编译器),更多信息可以参考Biopython安装说明。

创建一个RPM,仅需做以下工作:

python setup.py bdist_rpm

在终端运行以上命令后,会在 dist 目录下创建一个跟你使用的操作系统相关的RPM,以及一个RPM源文件。一般情况下,这个RPM能正常工作。简洁而实用!

Macintosh
– 由于Apple迁移到Mac OS X, 很多工作就简单多了。 一般来说,Mac操作系统相当于一个Unix变体,Biopython源码的安装同在linux上一样容易。安装Apple’s X-code是安装所有GCC编译器最简易的方法。 我们或许会为Mac操作系统提供点击-安装的工具,但目前为止还没必要。

一旦得到一个安装包,务必在你的系统上检测并确保所有文件能够正确安装并能正常工作。在这一工作完成之后,你的工作就结束了,剩下的就是Biopython开发者的事了(如果不确定该发送给谁,可以给Biopython主邮件列表发送邮件),谢谢!

21.6 贡献单元测试(Unit Tests)

即使你没有任何新的功能添加到Biopython,但仍然想写一些代码,请考虑增加我们的单元测试。我们整个第 19 章都在讲这个内容。

21.7 贡献源码

除了使用Python语言开发生物学相关的程序外,任何人都可以没有限制地加入Biopython源码的开发。任何人若对某方面的编程感兴趣,Biopython邮件列表是讨论此事最合适的地方——只需告知我们你的兴趣所在或工作内容。通常来讲,在开发某个模块之前,我们会在邮件列表里讨论此事,因为这样做会有助于产生好的想法,讨论完成之后,就剩下编程了!

主要的Biopython发布版本会尽量做到统一和通用,以方便用户的使用。在附带文档(http://biopython.org/wiki/Contributing)中,你可以获取在Biopython中用到的编程方式的原则。同时,我们也尽量在发行版和文档中加入源码和测试(关于regression tesing framework详见 19 章),以使得各方面能保持一致并正常工作。

值得注意的是,你需要有合法的权利去贡献源码并且在Biopython发行许可下发布。当然了,要是你的程序完全是由你自己编写,没有任何其他的代码,就不要为此担心了。另外,在贡献衍生版本的时候,会有些问题——比如说一些给予GPL或者LPGL的程序与Biopython许可不相容。如果你有什么疑问,请在biopython—dev邮件列表里讨论。

另外一个关于向Biopython贡献源码的问题涉及到开发和运行时依赖问题。一般来讲,编写程序调用像BLAST、EMBOSS或者ClustalW这样的独立程序没什么问题。但是,任何依赖于其他文库的程序——即使是Python文库(尤其是像NumPy这样用于编译和安装Biopython的文库)就需要做进一步的讨论。

除此之外,如果你手头有某些代码,而你又觉得不适合发行版,却又想共享出来,你可以将它们放在一个专门收集生物信息学Python代码的地方(http://biopython.org/wiki/Scriptcentral),

希望这个文档能在你使用Biopython的过程中带给你想要的信息,当然了,最重要的就是贡献。