This translation may not reflect the changes made since 2012-01-12 in the English original. Please see the Translations README for information on maintaining translations of this article.
GNU开发资源
本页面旨在为GNU工程的开发人员介绍GNU为他们提供的服务。想要了解GNU维护人员的详细权利和责任,请参看GNU维护人员参考信息。且需遵循GNU编码规范。同时,也许这篇什么是GNU软件包也会有帮助。
随着能运行GNU/Linux的廉价计算机的丰富, 以及因特网访问服务实用性的增强, 许多GNU志愿者今天拥有他们所需要的全部计算机设施。可是,拥有中央计算机仍然有它的优点,在这儿GNU志愿者们可以在一起工作而不必把他们自己机器的权限给别人。
因为这个原因,自由软件基金会(FSF)鼓励GNU软件工程像在家一样使用gnu.org上的机器。对这些机器的使用也间接的有利于GNU工程,通过增加公众对GNU的注意,传播为了有利于每一个人的在一起工作的思想。
Savannah和版本控制
倘若您在开发GNU的官方软件,我们强烈建议您使用Savannah为您提供的公开的版本控制系统。若要使用它,首先请创建一个个人帐号。之后,您可以选择一个版本控制系统,创建一些网页,给代码贡献者不同权限,以及其他的相关设置。
邮件列表
我们为GNU软件包提供必须的邮件列表,包括手动管理列表和自动管理列表。
当GNU软件包在Savannah注册时, 一个网络界面允许开发者建立和管理该软件包专用的邮件列表。
对于每个GNU软件,倘若其名为name,那么至少得有个叫做bug-name@gnu.org
的邮件列表,用来汇报bug,还可以给这列表其几个别名。使用Savannah,你可以为自己项目创建符合规范的列表。有些软件包共享列表bug-gnu-utils@gnu.org用来汇报bug,但是我们现在强烈建议每个软件包建立各自独立的列表。
软件包能拥有用于公告、寻求帮助、放入相关的源代码、用户间讨论以及其他软件包的维护者认为有用的邮件列表。
自动管理的邮件列表档案保存在http://lists.gnu.org上,也可以通过列表管理程序访问。手动维护的列表档案保存在/come/archive
上。
当邮件列表太大了而不能证明其有效性,我们可以建立一个gnu.*的新组,它可以双方向连接到邮件列表中。
Web服务器
GNU的主站点位于http://www.gnu.org/,我们强烈建议GNU软件包使用http://www.gnu.org/software/package 作为它们的官方首页。
使用Savannah,开发人员可以使用上述url,通过CVS的“网页仓库”来创建和维护他们的项目主页。这个仓库和软件包的主仓库是分开的。关于GNU网页维护的更多信息
FTP
为GNU软件提供FTP服务的站点在http://ftp.gnu.org/gnu/
。它在世界各地也有镜像。我们强烈建议您把您所维护的GNU软件包上传至此(当然,也可以再另外上传到您觉得方便的地方)。
我们为测试版本使用不同的服务器,因此人们不会因为它们已经准备好了而安装它们,这个服务器是ftp://alpha.gnu.org/
。
在GNU维护人员手册中,描述了详细的FTP上传的整个流程。这在上述服务器中均适用。
登录帐号
倘若GNU软件开发人员需要shell登录,我们可以为他们提供此服务,让他们登录到GNU的机器上。不过需要注意,使用这样的登录账户既拥有权利,也同时肩负着责任。这些帐号必须只能用来做和GNU工程相关的工作。详情参考如何获得登录帐号。
在所登陆的计算机上,gsrc的开发者们维护着一个当前GNU软件包的资料库。这些软件均直接编译自各个软件的源代码。若要使用,请/gd/gnu/gnusys/live/setup。
您也可以使用一个GNU帐号来发邮件
Hydra: 持续构建(Continuous builds)与可移植性测试
持续构建工具(continuous build tools,通常也被叫做持续集成工具—continuous integration tools)可以在代码被加入项目后,迅速地找到其中的编程错误。这对于团队合作开发软件非常有帮助。
Hydra是一款基于Nix的自由的持续构建工具。代尔夫特理工大学Hydra项目组的管理员们慷慨地为GNU项目提供了一片空间。
现在,Hydra支持在GNU/Linux(i686和x86_64),FreeBSD,Darwin,以及Cygwin下构建软件,同时也支持交叉编译到其他体系结构或MinGW上的GNU/Hurd,
GNU/Linux系统。它提供利用LCOV的代码覆盖报表生成。除了源代码压缩包,Nix包以外,它还可以为基于deb
-或RPM
软件包的发行版打包。软件包可以基于最新的依赖库或软件来构建。比如,GnuTLS需要用到GNU libtasn1和GNU libcrypt,那么就可以基于这两个库的最新版本来构建它。除了web界面以外,Hydra可以在项目构建状态发生改变的时候,通过电子邮件来提醒管理人员。(比如,从SUCCEEDED
状态变为了FAILED
)
任何一个GNU软件包都可以申请在 Hydra 上的一篇空间。每个软件包必须提供一份“构建策略”。该策略使用Nix语言编写(用Nix的术语来说,就是Nix表达式)。GNU项目通用Nix表达式范本可以在svn上获取。对于简单的项目来说,使用标准的GNU构建程序的话,比如Automake和Autoconf,这份构建策略通常非常简单。比如可以参考这个软件补丁构建策略。对此您有任何问题,欢迎向hydra-users@gnu.org提问。在编写完您的构建策略之后,请把它发至hydra-users@gnu.org,并要求把它加入到Hyra
想要获得更多关于Nix,Hydra和Nixpkgs的技术信息,请访问Nix手册和Nixpkgs手册。