You are here

31 维护一个Drupal模块

admin 的头像
Submitted by admin on 星期六, 2015-09-19 01:19

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

如果你创建了一个Drupal模块,想把它贡献到drupal.org的话,你首先需要申请一个账号,这个账号可以向GIT提交代码,这里是Drupal项目的Git,也就是以前的CSV账号。通常情况下,这个申请都是比较困难的,因为需要得到GIT管理员的批准,他们会对代码里面的问题提出很多的意见,让你修改,你可以按照他们的要求,来修改,直到账号批准下来。对于很多中文开发者来说,这个过程比较麻烦。还有一个办法就是,找一个拥有GIT账号的人,帮你创建这个项目,然后把代码提交上来,这个时候你可以申请成为项目的维护者,当你成为了一个项目的维护者的时候,自然就拥有了代码提交的权限。我就是通过后一种途径获得的CSV账号,现在升级成为GIT账号了。当然,你还可以创建一个沙盒项目,通过这种方式维护你的代码,但是沙盒项目里面有很多的限制。

当我们创建一个新的项目的时候,需要看看,是不是已经有了这样的项目,如果已经有了这样的项目,最好的办法是去完善已有的项目,而不是做重复的工作。我们这里以要编写的面包屑模块为例,其实已经有很多面包屑模块,这个时候,如果我们有新的想法,此时可以申请成为已有模块的维护者,但是如果没有人批准的话,我们再去创建一个啊。比如现在已经有了一个breadcrumb模块了,如果我们再去创建一个entity_breadcrumb或者breadcrumb2的话,drupal.org上面,就会有人冒出来,提出这样的问题,这个模块与什么什么模块有哪些区别啊? 如果没有区别的话,合并了算了。我在breadcrumb模块的问题列表里面申请成为维护者,但是没有回应,这个时候,我就可以创建一个新的模块了,再有人来问,也有了理由答复他们。

我们把要创建的模块命名为breadcrumb2,现在我们来添加一个这样的项目,如果你已经拥有GIT账号了,此时可以访问http://drupal.org/project/user,这里有你已有的项目列表,我维护的模块有点多了,在这里的截图太大了。

图片1.png 

点击最下面的“Add a new project”链接,进入页面http://drupal.org/node/add/project-project,这个页面就是一个普通的节点添加页面,我们在这里输入相关的信息即可:

图片2.png 

这是创建好的样子:

图片3.png 

项目描述里面,咱用的可是英文啊,不过这些英文都是从profile2模块里面复制过来的,改了一下里面的名字而已。中间的对号的右边是提示信息,提示我们Git的资源库正在准备创建中,只需要等待几秒钟就可以了。

现在,我们点击页面标签里面的“Version control”标签,进入页面http://drupal.org/project/breadcrumb2/git-instructions。这个时候,我们的Git资源库还没有建立起来,我们会看到以下信息:

图片4.png 

这里面列出来了Git命令,这些命令对于像我这样不熟悉Git的用户,就很方便了。我用的是Windows下面的Git客户端,大家可以到http://code.google.com/p/msysgit/下载。安装好以后,会有一个Git Bash快捷键,点击这个快捷键,就会出来Git的命令行式的对话框。

图片5.png 

我把维护的项目都放到E盘的ghr/test目录了,需要使用命令先导航到这个目录。输入以下命令即可:

cd e:/ghr/test

接下来,我们按照页面上面的提示,依次执行相应的命令即可。这里分别是:

mkdir breadcrumb2

 cd breadcrumb2

 git init

 echo "name = Breadcrumb2" > breadcrumb2.info

 git add breadcrumb2.info

 git commit -m "Initial commit."

 git remote add origin g089h515r806@git.drupal.org:project/breadcrumb2.git

 git push origin master

有些命令,比如mkdirgit add breadcrumb2.info,我们也可以通过Window的图形界面完成,能够通过图形界面完成的,我都采用图形界面。省事。

当输入最后一个命令“git push origin master”时,会提示输入你在git.drupal.org上面的密码,输入密码后,才会将本地的代码提交上去。

执行完这些命令以后,刷新,此时这个页面的内容会有变化,此时显示出来更多的Git命令:

图片6.png 

这些命令上面的提示都是英文的,我们这里分别介绍一下。

 

1,如果是第一次下载这些资源库里面的内容的话,也就是将Git 上面的代码复制到本地,使用以下命令:

git clone --recursive --branch master g089h515r806@git.drupal.org:project/breadcrumb2.git

 cd breadcrumb2

这里的master是当前的分支,我们一般是不使用这个分支的,而是使用7.x-1.x7.x-2.x8.x-1.x这样的分支。在下面我们会介绍如何创建一个新的分支。如果本地已经有了现成的代码,就不需要使用这段命令了。

 

2,将你本地的资源库,与你的drupal.org帐户关联起来,这里的关联使用的是电子邮件。命令如下:

git config user.email g089h515r806@gmail.com

当然,这里的电子邮件地址不一定使用真实的,也可以使用这样的形式g089h515r806@174740.no-reply.drupal.org。能够在Git上面将你标识出来即可。

 

3,检查资源库的状态,用来检查当前的代码与Git上面的代码是否同步:

git status

 

4,切换到一个不同的分支:

git branch -a

git checkout [branchname]

这里的第一行命令,用来列出所有可用的分支,也就是你拥有权限访问的分支,第二行命令用来切换。

 

5,提交本地的变更:

git add -A

git commit -m "Issue #[issue number] by [comma-separated usernames]: [Short summary of the change]."

如果这个变更是由别人提交的补丁,此时最好注明作者,也就注明谁做的贡献,我们可以在说明里面列出来,也可以使用下面的命令:

git commit --author="deviantintegral <deviantintegral@71291.no-reply.drupal.org>" -m "Issue #[issue number] by [comma-separated usernames]: [Short summary of the change]."

这里面的作者选项,可以在作者所在的页面http://drupal.org/user/71291,里面的“Git attribution”找到。deviantintegralField Validation模块提交过补丁,我在将代码提交上去的时候,将这个提交的作者设置为了deviantintegral。这样可以调动更多地人的积极性。

 

6,将你本地的修改,提交到Drupal.org上面的资源库中:

git push -u origin master

这个命令通常和上面的两个命令一起用的。

 

7,更新最新的代码,使本地的代码与Drupal.org上面的资源库保持同步:

git pull origin master

这里是以线上的代码为标准的,本地的和线上的保持一致。通常在为模块创建补丁的时候,使用这个命令,来做准备工作。

 

8,创建一个补丁文件:

git diff >  [description]-[issue-number]-[comment-number].patch

中括号里面的文字需要替换为你自己的。

 

9,应用一个补丁,你需要把别人的补丁下载到本地的对应目录,然后执行以下命令:

git apply -v [patchname.patch]

 

打好补丁以后,需要将这个补丁删除:

rm  [patchname.patch]

 

10,撤销没有提交的变更,首先将变更保存到一个文件里面:

git checkout [filename]

然后,撤销所有的变更:

git reset –hard

 

11,创建一个新的开发分支,并将其传到drupal.org上:

git checkout -b 7.x-1.x

git push -u origin 7.x-1.x

12,为稳定版打标签:

git checkout  7.x-1.x

git tag 7.x-1.0

git push origin 7.x-1.0

如果我们当前已经处在了7.x-1.x,此时就不需要执行第一行命令了。除了7.x-1.0以外,还可以用7.x-1.0-alpha1, 7.x-1.0-beta1这样的名字。

 

当我们创建一个新的项目后,记住,不要使用master分支,而是创建一个专门的分支,这里我们为Breadcrumb2执行命令11里面所列的命令。平时维护项目的时候,用到哪些命令,现查现用即可。另外需要注意的是,访问这个页面的时候,上面有个下拉选择框:

图片7.png 

这里可以选择master7.x-1.x7.x-2.x这样的开发分支,选择后,下面的命令提示也会有相应的变化。

 

如果我们编写的模块,对很多人有用,慢慢地,用的人就会多起来,如果模块的代码质量不好,功能有限,很快就会无人问津了。模块本身是否成功,很大程度上,取决于模块的维护者。


Drupal版本: