franksxiong’s blog

2007/12/24

Firefox的版本和升级频道

类归于: IT — 标签:, , , , , — franksxiong @ 2:24 下午

Firefox的版本有大版本和小版本之分。大版本,如1.0, 1.5, 2.0, 3.0等,通常涉及底层的或架构性的大幅修改。为了降低风险和方便测试,在正式版之前会有若干测试版(alpha版,beta版等),每个测试版加入一些新的修改或特别针对某部分修改,这样逐渐测试、完善和集成;小版本,如1.5.0.1,2.0.0.1等,是对大版本的小的bug fix,通常不再需要测试版。这样,按照产生顺序,Firefox的版本可以分为三类:

1) 大版本的测试版 (2.0 beta 1, 3.0 alpha 1, 3.0 beta 1等)
2) 大版本的正式版 (2.0, 3.0等)
3) 小版本的正式版 (2.0.0.1, 2.0.0.2, 3.0.0.1等)

而每个这样的测试版或正式版本身又可能有多个“版本”:在面向更大范围的用户发布较正式的版本(以下称为“release版”,以区别于上面大小版本的“正式版”)之前都会有一个或多个“发布候选”(release candidate,rc),每个rc需要通过核心团队、外围社区和热心用户的测试才能成为该版本的release版(亦即最后一个rc),如果没有通过测试,则要在改进后再build一个rc出来测试。如此循环,直到质量达到release的要求。比如3.0 beta 1经历了3个rc:rc1, rc2, rc3,最后rc3成为release版(对外直接称为Firefox 3.0 beta 1)。类似的,2.0有三个rc,2.0.0.3有一个rc。

就像电视和收音机的频道是不同的节目来源,升级频道是指升级版本的不同来源。不同的升级频道发布的目的、版本和频率都不相同。Firefox有三种升级频道:nightly频道,beta频道,release频道。在分别解释这三种频道之前需要先说明的是,各个大版本分支(Firefox 1.0.*, 1.5.*, 2.0.*, 3.0.*等)的升级路线和频道是相互独立的,即分别有各自的nightly频道、beta频道和release频道;除非这个版本分支已经停止维护,也就是说已经升级到头了,否则无论在nightly/beta/release中的哪个频道,都不会从一个大版本分支升级到另一大版本分支,比如从 1.5.*升级到2.0.*,或从2.0.*升级从3.0.*。

1. nightly频道
每天晚上自动化的build工具自动从Mozilla的源代码管理系统(CVS)中将某一版本分支(trunk, Mozilla1.8等)上的最新源代码版本下载下来,build出一个版本,并放到ftp服务器上和发布到nightly频道中。该版本即为该分支当天的nightly版本。如果一个用户的Firefox在nightly频道上,这时手动或自动检查升级,就会检查到这个最新的版本。所以nightly频道代码很新,每天都可以升级一次,但是因为没有经过较充分和较正式的测试,质量和稳定性没有保证,可能有很多或很严重的问题。为了与正式版本明显地区别,nightly版本采用了专门的名称(Minefield)和图标(一个蓝色的炸弹,危险啊^_^)。nightly频道适用于Firefox的开发人员和测试人员。

2. beta频道和release频道
beta频道就是升级到rc版本的频道,包括前面说的“大版本的测试版”、“大版本的正式版”和“小版本的正式版”三种版本的所有rc。每个rc都会首先发布到beta频道,如果一个用户的Firefox在beta频道上,这时手动或自动升级,就会升级成这个版本。所以一个典型的beta频道的Firefox的升级路线会是:2.0 b1 rc1 -> 2.0 b1 rc2 -> 2.0 b2 rc 1 -> 2.0b2 rc2 -> 2.0 rc1 -> 2.0 rc2 -> 2.0 rc3 -> 2.0.0.1 rc1 -> 2.0.0.2 rc1 -> 2.0.0.2 rc2 -> 2.0.0.3 rc1 -> ……. (这里只是举例,各版本实际的rc个数不一定是这样的,下同)

大量beta频道用户对rc版本有意或无意地使用和测试是发现bug的重要途径。发现问题后有多种途径可以反馈给Mozilla和相关人员。这个过程的大概持续3-7天。最后核心团队根据发现问题的多少和严重程度,决定是否还需要另一个rc。如果不需要的话,则这个rc就成为release版。如果这个release版rc对应的是正式版(2.0, 2.0.0.1等)而不是测试版(2.0 beta 1等),则将其发布到release频道,这样release频道的Firefox就可以升级了。所以一个典型release频道的Firefox的升级路线是:2.0(相当于2.0 rc3) ->2.0.0.1(相当于2.0.0.1 rc1) ->2.0.0.2(相当于2.0.0.2 rc2) -> ……

所以beta频道的Firefox会经历一些release频道不会经历的rc,会比release频道Firefox早升级到某个正式版的release版,在这之后和下一个正式版的rc之前,两个频道的Firefox版本是一样的。beta频道可以获得测试版和正式版的所有rc,适用于全球热心的、想参与测试或想尝鲜的Firefox用户;release频道只会获得正式版的release版,适用于普通用户。

下面以Firefox 2和Firefox 3为例,说明进入各个频道的方法:

方法1:从Mozilla FTP服务器下载并安装相应的版本
> 进入nightly频道:

> 进入beta频道:

> 进入release频道:

  • Firefox 2:下载并安装Firefox 2.0.0.11
  • Firefox 3: 尚无正式版本,所以尚无releae频道。

安装以上版本后,手动升级一次即可升级到该频道的最新版本。

方法2: 修改本地Firefox升级频道设置
无论最初安装的是什么版本或者当前处于哪个频道,都可以通过直接修改本地Firefox升级频道设置来更换频道。方法是安装扩展Update Channel Selector。之后,即可在Firefox选项对话框中设置升级频道。(似乎也可以通过修改Firefox安装目录中的文件channel-prefs.js来达到同样的目的。)

如果你还没有安装Firefox或者想安装另一个Firefox来测试,可使用方法1;如果希望修改已安装Firefox的升级频道,可使用方法2.

最后提一下现实中可能不那么理想的情况。在上面的描述中,假定了每个版本的release版等同于对外的最后一个rc。但在实际操作中,在对外的最后一个rc之后,release版中可能又新加入了极少量“很有把握”的“最后一分钟修改”。但是,“很有把握”是不是就意味着真的没问题呢?倒不见得。所以这样做的风险也可以想象。

参考:
Software Update – MozillaZine Knowledge Base
John O’Duinn’s Soapbox » When to use the Beta Update channel vs the Release Update channel?

No Comments Yet »

还没有评论。

RSS方式表示的feed TrackBack URI

留下评论

Blog at WordPress.com.