You are here

Drupal核心与模块版本及版本号的选择的一些个人经验

本文试图根据个人一点经验,对Drupal核心及模块版本号的选择做出一点说明。并尝试回答Drupal 8何时可用的问题。

软件版本号的基础知识,可以自行到百度百科上学习。
http://baike.baidu.com/view/707808.htm
一般来说,一些知名软件,如Windows, office, linux等都有一套自己的软件版本号规则。

对于Drupal来说,根据我的经验观察,会遵循如下规律:
Drupal核心:
    主版本号.子版本号[-版本后缀]
    实例:8.0-alpha10
Drupal第三方模块:
    Drupal核心版本号.x-主版本号.子版本号[-版本后缀]
    实例:7.x-3.0-rc3

一般情况下用到的版本后缀如下:

alpha (内测版)
beta (外测版)
rc (发行候选版)
关于各个版本后缀的区别,请自行到上面的百度百科阅读之。

Druapl核心及Drupal上面一些知名模块,基本都能很好的遵循上面的命名规则。

对于Drupal核心,只看前面的数字很容易辨识Drupal的核心版本,比如上面的是8。0对应着相应的小版本号;在Drupal核心没有正式发布前,小版本号一般都是0,下面是一个比较典型的Drupal版本发布时间线。

8.0-alpha1
8.0-alpha2
...
8.0-beta1
8.0-beta2
...
8.0-rc1
8.0-rc2
...
8.0
8.1
8.2
...

截止到这篇文章的写作日期,Drupal核心的版本号是8.0-alpha10。就是说Drupal8仍处于内测阶段,很多底层的api仍然会变化。
对于一般的用户,比如不写代码的同学,强烈不推荐这个时候使用Drupal 8.
如果有一定的代码能力,能进行一些比较简单的模块自定义开发,仍然不建议这个时候使用。
如果你是Drupal的核心发烧友,那估计这个世界上没有什么能阻止你使用Drupal8 的alpha版本了。
即使是这样,网站的将来升级也是很大的问题。除非不升级,否则一升级,必然是一个很痛苦的过程。

什么时候推荐使用Drupal 8?答案是Drupal 8.0-rc1发布的时候。这个时候核心api基本稳定了。除非有必要,一般情况下不会在api上有所改变了。网站升级仍然一定得风险,但是相比于alpha版本,风险已经大大降低了。

关于Drupal8何时可以使用,目测最快也要到今年(2014年)年底。因为现在还是的alpha阶段仍未结束,粗略估计还需要2个月时间才能结束。之后就是beta阶段,这个阶段应该不少于6个月;最后的rc阶段,应该也会持续两个月左右。之后才是drupal 8.0的正式发布日期。

扯完Drupal核心,下面看看模块的版本号问题。
一个比较典型模块版本号:7.x-3.0-rc3

7.x对应这Drupal核心版本号
3.0中的3,对应这个模块本身的api版本号。如何理解?
一般来说,模块会有不同是实现方式。
比如userpoints模块,有1.x版本,2.x版本。
    1.x版本的底层实现是完全使用数据库操作的方式实现的。
    2.x是准备基于Drupal 7的entity来实现,很多基于数据库的操作,完全可以使用entity api来说实现;这样代码量会降低,维护的时间成本降低。但是很遗憾,这个主版本号的代码已经有13个月没有更新了。

对于一个维护比较好的模块,其版本号应该是如下的样子:

6.x-1.0-alpha1
6.x-1.0-alpha2
...
6.x-1.0-beta1
6.x-1.0-beta2
...
6.x-1.0-rc1
6.x-1.0-rc2
...
6.x-1.0
6.x-1.1
...

6.x-2.0-alpha1
6.x-2.0-alpha2
...
6.x-2.0-beta1
6.x-2.0-beta2
...
6.x-2.0-rc1
6.x-2.0-rc2
...
6.x-2.0
6.x-2.1
...

7.x-1.0-alpha1
7.x-1.0-alpha2
...
7.x-1.0-beta1
7.x-1.0-beta2
...
7.x-1.0-rc1
7.x-1.0-rc2
...
7.x-1.0
7.x-1.1
...

7.x-2.0-alpha1
7.x-2.0-alpha2
...
7.x-2.0-beta1
7.x-2.0-beta2
...
7.x-2.0-rc1
7.x-2.0-rc2
...
7.x-2.0
7.x-2.1
...

看完上面的列表,对于我们选择模块有一定的指导意义。
对于一般建站者,不涉及代码方面的建站,推荐选择模块的稳定发行版,即不带alpha,beta,等后缀的版本。
对于有一定开发能力的建站者,仍然推荐做出如上选择。但是不排除有时候模块的dev版本会修复一些bug,如果经过认真测试不会对现有功能产生破坏,可以使用模块的dev版本。

对于那些狂热的粉丝,可能没有什么阻止你去通过git直接下载模块的最新代码了。

上面文字,全部原创,如有谬误及不足指出,欢迎留言及拍砖。