一位非提交者的Apache CloudStack贡献

本文的内容最初由Joe Brockmeier编写,发表在Cloudstack博客上。

如果您是Apache项目的贡献者,则意味着您可以直接提交到项目的存储库。例如,使用Apache CloudStack(孵化)的贡献者可以直接将提交到git仓库。

但是,非提交者必须提交补丁以供审阅。别担心,这不是一个繁重的过程。第一次提交补丁时,你将花费一两分钟时间在审阅板块注册一个账户,不过从头到尾都是小菜一碟。

假设

为了这篇文章的目的,我们假设你已经有了一个安装了Git的系统,并且发现了一个需要修复的bug或者有一个你想提交的功能,而且你愿意依据Apache许可证2.0贡献这个代码或者文档。

此外,如果您正在修复一个bug,我们会假设您已经提交了一个错误修复报告或正在提交一个已知错误的修复。如果你发现一个错误,并想修复它,那太棒了!不过也请确保也提交一下错误。

如果你想添加一个特性,在实现它之前,你应该把它提交给cloudstack-dev邮件列表以供讨论。这可以确保它与其他贡献者对Apache CloudStack的计划相互配合,并且不会做冗余工作。其他开发人员也可能有想法的功能或建议,这将有助于您更快完善功能,而不必重新开展工作。

简而言之,沟通是对Apache项目作出贡献的重要组成部分。

入门

首先,请确保您已将您的姓名和电子邮件添加到〜/ .gitconfig中

git config --global user.name“Your Name”
git config --global user.email you@domain.com

您将使用git获取CloudStack源代码:

 $ git clone https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git 

如果你已经有了源码,请确保你正在使用最新的版本。如果你在几个小时以前克隆了这个数据源,那么请做一个git pull。(Apache CloudStack发展速度得相当快!)

现在您已经拥有最新版本的源代码,请创建一个分支来进行您的工作:

 $ git checkout -b mybranch 

这样做有两个方面:一是创建分支mybranch,它将你的工作分支转换mybranch。运行git分支会显示你正在工作的分支,在活动分支旁边有一个星号,如下所示:

[user @ localhost incubator-cloudstack] $ git分支

  主
* mybranch

不管你做了什么改变,一定要使用git add来保存你的修改,然后你将这些修改提交到你的工作分支:

 git commit -m "在这里插入一个有意义的更改摘要"

最后,你要创建一个补丁以便上传到审查板块

 git format-patch master --stdout>〜/ patch-name.patch 

使用审查板块

审核板块是批准将修补程序发送到Apache CloudStack项目的方法。这并不是说直接发送到邮件列表的补丁将被忽略,但强烈推荐是通过审查板块提交补丁。别担心,这是一个非常简单的工具。

如果还没有账户,请在Review Board中创建一个帐户。注册只需要一个电子邮件地址,名字和姓氏。注册后,前往新建审阅请求并选择仓库(cloudstack-git)并上传使用git创建的补丁(diff)。

点击创建审查请求,然后填写所需的信息。

重要信息:

  • 概要
  • 组(选择cloudstack)
  • 人员(仅在需要特定提交者才能查看更改时使用)
  • 描述
  • 测试完成

摘要是已发送到的CloudStack-dev邮件列表的主题。因此,如果您的摘要是“固定功能foo”,则发送到列表的邮件的主题将是“审阅请求:固定功能foo”。尝试使用摘要进行描述。如果你正在提交一个bug的补丁,请确保在摘要中包含bug编号。(如“Bugfix CS-15942:解决冗余路由器问题”。)

描述应该是你所做的工作的完整描述。请具体说明,并提供足够的信息,以便任何审阅者不需要任何后续信息便能够查看您的补丁。

如果您提交修改代码的补丁,添加功能等,你应在提交之前进行测试。请一定在这里描述你的测试。

一旦确定一切正常,请继续并提交补丁。但还没结束。直到补丁提交成功后才完成工作!

审阅

提交补丁后,您应在几天内收到回复。如果您在一周内没有收到回复,请ping cloudstack-dev邮件列表。审查板块的一个特点是它显示了所有发来的的请求,以便知道提交者需要得到及时的回复。

当你的补丁被审查,它可能会被原样接受,或者你可能会被要求进行修改。如果您被要求进行更改,请与提交者一起查看补丁程序的验收。

如果补丁被接受和提交,你有最后一个任务(不要担心,这是小的和满意的)。

返回审阅板块,点击我的信息中心,然后点击发送评论。去你的提交,你应该看到“正在运送”的消息。点击关闭按钮,然后选择提交。状态现在已经从挂起提交

就是这样 - 您已经帮助Apache CloudStack成为更好的项目。谢谢!

进一步阅读

您可能需要仔细阅读Apache.org上的Get Involved页面以及On Contribution Patches文档。请注意,其中一些不适用于Apache CloudStack,因为我们使用git而不是Subversion。但要尊重CloudStack代码的原始风格,并确保使用的是空格而不是制表符,并且您的修补程序具有Unix行结束符(LF)而不是Windows类型结束符(CRLF)。

本文最初张贴在分离出版社

本文的版权归 用户1206945 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

手把手 | 如何在计算机上配置数据科学开发环境

从Python、R等编程语言到以Git为例的版本控制系统甚至Unix Shell等命令行工具,数据科学家的武器库现在越来越丰富了,在个人计算机上同时使用这些武器...

600
来自专栏知晓程序

开发 | 如何在小程序中,获取微信群 ID?

微信在 5 月 8 日晚间,突然又宣布了一个新能力——小程序可以读取微信群的唯一 ID。

851
来自专栏phodal

你不再需要动态网页——编辑-发布-开发分离

尽管没有特别的动力去构建一个全新的CMS,但是我还是愿意去撰文一篇来书写如何去做这样的事——编辑-发布-开发分离模式是如何工作的。微服务是我们对于复杂应用的一种...

1999
来自专栏Jerry的SAP技术分享

在Kubernetes上运行SAP UI5应用(下)

上一篇文章 在Kubernetes上运行SAP UI5应用(上),我介绍了如何在Docker里运行一个简单的SAP UI5应用,并且已经成功地将一个包含了这个U...

111
来自专栏QQ音乐前端团队专栏

Puppeteer 初探之前端自动化测试

puppeteer 翻译是操纵木偶的人,利用这个工具,我们能做一个操纵页面的人。puppeteer是一个 nodejs 的库,支持调用 Chrome 的 API...

5.3K3
来自专栏信安之路

python的反反暴力破解

本文适合刚刚学完 python,光听别人说强大,但是自己没有直观感受过的人。介绍两种防暴力破解的方法,以及用 py 的绕过方法。(暂不考虑 sql 注入,不谈机...

730
来自专栏张戈的专栏

解决mstsc无法连接问题:由于没有远程桌面授权服务器可以提供许可证…

最近一直很忙很忙,完全没时间打理博客,回家后基本上就是洗洗睡的节奏,我之前真的从未想过,我会有回到家不想碰电脑的情况。。。不但不想碰电脑,而且失眠症也消失无遗,...

4135
来自专栏FreeBuf

极客都应该知道的Linux技巧

是什么区分开普通的Linux用户和超级极客的呢?很简单:用在学习那些使长时工作转变为一瞬间工作的技巧、诀窍、秘诀和技术上的时间。如果你想提高效率而又不用做这些搜...

2068
来自专栏张善友的专栏

社区网站系统 jsGen

jsGen是用纯JavaScript编写的新一代开源社区网站系统,主要用于搭建SNS类型的专业社区,对客户端AngularJS应用稍作修改也可变成多用户博客系统...

1845
来自专栏北京马哥教育

10个实用的Django建议

Django 作为一个杰出的Python开源框架,或许得不到和其它流行框架如Rails这样多的赞美,但是它和其他框架一样精炼,非常注重DRY(Don’t Rep...

3698

扫码关注云+社区