English [en]   català [ca]   Deutsch [de]   español [es]   polski [pl]   Shqip [sq]   简体中文 [zh-cn]  

会员给予自由软件基金会动力。请助力我们达成新增700会员的目标或者请在12月31日前捐款!

加入

$259,212
$450,000

这是针对英文原版页面的中文翻译。

GNU开发资源

本页面旨在为GNU工程的开发人员介绍GNU为他们提供的诸多开发资源。想要了解GNU维护人员的详细职责,请参看GNU维护人员参考信息,且需遵循GNU编码规范。同时,这篇GNU维护人员技巧和这篇什么是GNU软件包也会有帮助。

随着能运行GNU/Linux的廉价计算机的丰富, 以及因特网访问服务实用性的增强, 许多GNU志愿者今天拥有他们所需要的全部计算机设施。可是,拥有中央计算机仍然有它的优点,在这儿,GNU志愿者们可以在一起工作而不必把他们自己机器的权限给别人。

因为这个原因,自由软件基金会(FSF)鼓励GNU软件工程像在家一样使用gnu.org上的机器。对这些机器的使用也间接的有利于GNU工程,通过增加公众对GNU的注意,传播为了有利于每一个人的在一起工作的思想。

Savannah和版本控制

倘若您在开发GNU的官方软件,我们强烈建议您使用Savannah为您提供的公开的版本控制系统。若要使用它,首先请创建一个个人账号,然后注册你的GNU软件包。之后,您可以选择一个版本控制系统,创建一些网页,给代码贡献者不同权限,以及其他的相关设置。

邮件列表

我们为GNU软件包提供必须的邮件列表,包括手动管理列表和自动管理列表。

当GNU软件包在Savannah注册时, 会有一个网络界面允许开发者建立和管理该软件包专用的邮件列表。

对于每个GNU软件,倘若其名为name,那么至少得有个叫做bug-name@gnu.org的邮件列表,用来汇报bug,还可以给这列表起几个别名。使用Savannah,你可以为自己项目创建符合规范的列表。有些软件包共享列表bug-gnu-utils@gnu.org用来汇报bug,但是我们现在强烈建议每个软件包建立各自独立的列表。

软件包可以拥有用于公告、寻求帮助、放入相关的源代码、用户间讨论以及其他软件包的维护者认为有用的邮件列表。

自动管理的邮件列表归档于lists.gnu.orgmbox的归档可以通过rsyncftp获取),也可以通过列表管理获取。手动管理的邮件列表归档于GNU机器的/com/archive

当邮件列表太大了而不能证明其有效性,我们可以建立一个gnu.*的新闻组,它双向链接到邮件列表中。

网页服务

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软件包的资料库。这些软件均直接编译自各个软件的源代码。若要使用,请输入命令source /gd/gnu/gnusys/live/setup

您也可以使用一个GNU账号来发邮件

Hydra: 持续构建(Continuous builds)与可移植性测试

持续构建工具(continuous build tools,通常也被叫做持续集成工具—continuous integration tools)可以在代码被加入项目后,迅速地找到其中的编程错误。这对于团队合作开发软件非常有帮助。

Hydra是一款基于Nix的自由的持续构建工具。代尔夫特理工大学Hydra项目组的管理员们慷慨地为GNU项目提供了一片空间。Hydra管理的项目会对每次提交或依赖关系更改(依赖关系包括标准构建环境,就是指GCC更新、GNU make更新等等)进行重新集成。

目前,Hydra支持在GNU/Linux(i686x86_64)、FreeBSD、Darwin、Solaris以及Cygwin下构建软件,同时也支持交叉编译其他体系结构或MinGW上的GNU/Hurd、GNU/Linux系统。它提供利用LCOV生成的代码覆盖报表。除了源代码压缩包和Nix包以外,它还可以为基于deb-或RPM软件包的发行版打包。软件包可以基于最新的依赖库来构建。比如,GnuTLS需要用到GNU libtasn1和GNU libcrypt,那么就可以基于这两个库的最新版本来构建它。

除了网络界面以外,Hydra可以在项目构建状态发生改变的时候,通过电子邮件来提醒管理人员—比如,从SUCCEEDED状态变为了FAILED)。当构建失败时,日志和构建树可以通过网络界面获取;后者允许审查已创建的文件(比如,config.logtestsuite.log),这样就可以获得处理故障的信息。

任何一个GNU软件包都可以申请在Hydra上的一片空间。每个软件包必须提供一份“构建策略”。该策略使用Nix语言编写(用Nix的术语来说,就是Nix表达式)。GNU项目通用Nix表达式范本可以在git上获取。对于简单的项目来说,使用标准的GNU构建程序的话,比如Automake和Autoconf,这份构建策略通常非常简单。比如可以参考这个GNU Patch构建策略。对此您有任何问题,欢迎向hydra-users@gnu.org提问。

在编写完您的构建策略之后,请把它发至hydra-users@gnu.org,并要求把它加入到Hyra。同时确保它是hydra-recipesSavannah项目的成员。这样你就可以直接定制自己项目的构建工作了。

关于Hydra的技术信息,请参考Hydra手册PDF)。更多细节,请参考Nix手册

平台测试者:手动可移植性测试

另一项发布前测试选项是平台测试者邮件列表。如果时间允许,该邮件列表成员会根据需求在多种平台上构建预先发布版本。(我们征求测试志愿者!只需加入该邮件列表就可以开始介入了。)

和Hydra不同,平台测试者主要进行手动测试,两种方法各有优劣。另外,平台测试者比Hydra有更多种类的平台和编译器。

所以,如果你有预发布版,你可以发信给邮件列表,提供(1) 压缩包的url,(2) 计划的发布日期,和(3) 收取构建报告的电子邮件地址。构建和报告都有列表里的志愿者手动完成。

返回顶部


[FSF 标志]“我们的使命在于维护、保障和推动人们使用、学习、复制和重新发布计算机软件的自由,我们的使命还在于捍卫自由软件使用者的权利。”

自由软件基金会是GNU操作系统的主要赞助机构。请通过以下方式支持GNU和FSF购买手册和装备 加入FSF成为会员、直接或者通过Flattr向FSF捐赠