"2006年8月中旬,...开始摸索向OpenOffice.org社区提交由红旗2000的工程师修改的Bug的流程及方法。提交的第一个Bug是在演示文稿项目中,提交Bug时联系的第一个人是Graphics的Leader:KaiAhrens。由于当时的人力非常有限,公司在开源社区的知名度相对很小,所以,工作艰难地展开着,而开源技术部的工程师们细心、耐心、专心地工作着"--红旗2000开源历程之三
有了和Intel的合作,终于知道了社区的一些情况,也了解了贡献的过程,在和Keskarv 谈的过程中,他告诉我,和社区就是要不停的交流,他们当时就是直接和SUN在美国的公司直接聊得,谈了很长时间才确定从什么地方做起,社区的人很喜欢交流的,你有想法他们愿意听,不管贡献大小,他们都欢迎你。这给了我很大的信心。
当时我让刘涛整理bug,李渊跟着intel做那个AsynDialog的事情,刘涛整理了一下过去几年中做的事情,把修改的代码筛了又筛,整了又整,最后把觉得代码风格写的还行的patch理出来了30来个,然后我们讨论看从那个开始提交,最后确定先从演示文稿着手,当时我们大部分都是基于windows开发的,而社区采用的技术相当一部分是基于Linux的,我是从2000年底接触Linux的,熟悉一些,可是手下人都刚毕业,什么都不清楚,社区中的一些最基本的东西也都不知道,比如如何做个patch等等之类,对于这些初级的琐碎的问题,社区的人都给与耐心的回答,下面的信是刘涛和社区Graphics Leader Kai Ahrens的通信,从中可以看出我们当时是多么的无知和社区的热情和耐心:
----- Original Message -----
From: "Kai Ahrens" <[email protected]>
To: "blueeagle" <[email protected]>
Cc: "Thorsten Behrens" <[email protected]>
Sent: Friday, August 18, 2006 5:37 PM
Subject:Re: Fw: [Issue 68512] Direction of the text is wrong when
palying lantern slide
> blueeagle wrote:
>> Dear kai,
>>
Many thanks for your last letter.I am very sorry to disturb you
again.
>>
In your last letter you said that I should attach the whole patch
to the issue 68512. But I still don't know how to make the patch .
I don't know what is the patch.(could you give me a example?)
>>
by the way,I wan't to ask another questions .
>
> A patch is a file that contains the differences
between pairs of files,
> e.g. old file versus changed file, collected as
normal text output
> within the *.patch file.
>
> CVS is our internally used versioning system.
Some
> interesting pointers for beginners are here:
>
> http://www.gnomebangalore.org/?q=node/708
>
>> what is the CVS account and how to
get it?
>
> Working on our CVS tree directly (this is giving
you developer
> rights right now), doesn't seem to be a good idea,
obviously
> having no background of your work, so that the
only way
> to get your changes into the tree is to attach
your patch(es)
> to your issuezilla task and let them be reviewed
and committed
> by one of our experienced developers. Your role
might change
> in the future, but currently, I'm not willing to
grant
> you commit rights:
>
> This HowTo for creating a patch might help you to
create
> your own patch:
>
> http://cocoon.apache.org/2.1/howto/howto-patch.html
>
>> what is the CWS means?
>> what is the relationship between
CVS and CWS?
>
> A CWS is a so called Child Workspace, where
people
> can make their changes without the risk to break
the
> master tree. Actually, a CVS branch is created for
each
> workspace. The developer than works on this
branch
> only. After finishing his work completely, the
CWS
> is given to QA for testing the changes. After
the
> CWS has passed the QA, the changes within the
branch
> are joined into the master tree of the source
code.
>
> HTH
> Kai
从那时候起,我们开始慢慢学会了如何做符合要求的patch,按照社区要求搭建环境,编译源码,注册CWS帐号等等,我们似乎看到了社区的门墙在那里了,前进的道路没选错,让我看看我过去的日记,当时能做到这一步,主要还是李渊跟着人家Intel的人,从那里学到了流程,然后总结,8月21日李渊就写了个社区提交patch的初稿,摘录一部分吧:
“ oo.org的工作环境简介
oo.org所有的代码的编写都是先基于CWS(Child Workspace )上的,然后再移植到发布版的源码里的。在oo.org里CWS就是CVS的一个分支(branch),CVS为每个branch都创建了一个工作空间(Workspace),所有做与这个branch有关工作的开发者(developer)都在这个CWS里工作,所以当这个 branch 的工作未完成之前,所有改变产生的影响只出现在这个CWS里,和发布版的源码没有关系,只有当此 branch 的所有工作都完成了,之后再把代码提交给相关的QA 去测试,如果通过测试了,这样,这个 branch 的所有改变的代码才会移植到发布版的源码中去.
所有在CWS上工作的人都应该是developer 角色,并拥有可以提交代码的 CVS accout ,然后用这个CVS accout登入后,通过CVS工具直接往相应的CWS提交代码( commit code ) .所有的有关CWS的操作都必须基于拥有可以提交代码的 CVS accout的基础上的。
每个issue都应该隶属于某一个CWS。当一个issue被解决,更改的代码应该上传到这个CWS.
下面介绍怎样进入到oo.org的工作环境中..."
当时写的比较稚嫩,但进步还是迅速的,方法也是有效的,大家都热火朝天,现在我再招的人,看不到了那个热情。 看看第一个issue是什么吧,毕竟有着第一桶金的意义,这个bug在:
http://graphics.openoffice.org/issues/show_bug.cgi?id=68512
是一个关于幻灯片放映的bug,
I have found a bug in SDrawing(presentation) (OO2.0.3).The bug can be described as follows : 1. build a new presentation 2. Input some words 3. change the style of these words to contour. 4. change the text direction from top to buttom.(or click the "text direction from top to buttom."button) 5. click the slide show button. You will find the direction of the text is wrong .
10月13日第一次提交patch
------- 附加注释人: liutao 2006/10/13 01:28:49 +0000 -------
Created an attachment (id=39708) the update patch of this bug 看看这个patch:
diff -uNr cppcanvas.new/source/mtfrenderer/textaction.cxx cppcanvas/source/mtfrenderer/textaction.cxx
--- cppcanvas.new/source/mtfrenderer/textaction.cxx 2006-10-13 08:52:46.000000000 +0800
+++ cppcanvas/source/mtfrenderer/textaction.cxx 2006-10-13 08:52:10.000000000 +0800
@@ -2140,6 +2140,8 @@
rStartPoint.Y() + aBaselineOffset.Height() ) ) );
const ::Size aReliefOffset( rVDev.LogicToPixel( rReliefOffset ) );
const ::Size aShadowOffset( rVDev.LogicToPixel( rShadowOffset ) );
+ OutDevState rStateCopy=rState;
+ rStateCopy.fontRotation = 0.0;
if( rState.isTextOutlineModeSet )
{
@@ -2155,7 +2157,7 @@
pDXArray,
rVDev,
rCanvas,
- rState,
+ rStateCopy,
rParms );
}
很简单,开源里修改几行代码都是需要经过大量的时间才能达到的。
下面是Kai安排Thorsten的检查工作
> Hi Thorsten,
>
> could you follow up on reviewing/integrating
the
> patch, please? Task is already assigned to
you:
>
>
http://so-web.germany.sun.com/iBIS/servlet/edit.ControlPanel?tid=i68512
>
> TIA
> Kai
看看社区的过程,有序而有效率
------- 附加注释人: thb 2006/10/13 20:02:52 +0000 -------
Fixed in CWS thbpp5.
------- 附加注释人: thb 2006/10/18 20:04:32 +0000 -------
@cgu: fixed in CWS thbpp5, please verify.
------- 附加注释人: thb 2006/10/18 21:49:38 +0000 -------
@wg: I'm load-balancing this...
------- 附加注释人: wg 2006/10/26 07:14:27 +0000 -------
Verified in CWS.
11月2日,这个patch被集成了
“
------- 附加注释人: wg 2006/11/02 11:56:12 +0000 -------
Tested in master m1. Closed.”
这个patch有着非凡的意义,虽然简单倒是是里程碑式的。