WIne 开发系列之——提交补丁

定这个题目思考良久之后都没有想到如何写能够对需要提供补丁的人有很好的帮助,因为Wine提交补丁的的难点是有一个很好提交的patch。在这里只有把Wine如何提交补丁的文档翻译一遍,让新人少走点弯路。

  1. 1、准备一个邮箱,订阅WineHQ的邮件列表
    WineHQ的邮箱会过滤没有订阅的邮箱地址,WineHQ的邮件列表说明
    提交补丁需要订阅wine-devel或者wine-patches。在如订阅或者取消订阅

 

  1. 2、配置git
    git config –global user.name “Your Name”
    git config –global user.email “me@example.com”
    name最好用真实的名字,email最好和发送补丁的邮箱保持一致。

 

  1. 3、生成patch文件,补丁需要满足如下规则
    a、满足WineHQ要求的编码规范,参考WIKI中Code guidelines的描述。
    b、补丁文件尽量做到最小化,单个patch文件尽量在一个文件中。较大的补丁或者在不同模块的提交分为多个补丁。
    c、一般情况提交到上游都需要编写相关函数的测试补丁,除非补丁比较简单,能够通过邮件中的描述表述清楚并切能够说服code review的人。
    如何证明补丁的正确并且说服code review的人收录补丁是最麻烦的。wine的补丁不仅要满足某个应用运行正常,还需要保证API行为和Windows一致。
    很多情况下很难写测试的补丁,还有些API在不同的Windows版本行为不一样。没有测试补丁就只有通过沟通说服code review的人。
    d、生成的补丁要基于master分支。
    e、补丁的描述要以模块名称开头,如ntdll: xxx,测试补丁ntdll/test:

 

  1. 4、验证测试补丁
    testbot提供在不同版本Windows系统中验证Windows API行为的工具。
    在每一个模块下面有一个test目录,在test目录生成的补丁在这里验证编译成执行文件在不同的Windows版本运行。

 

  1. 5、发送补丁
    邮件的标题命名规则[PATH] 模块名: 描述,单个补丁[PATCH] ntdll: Fix xxx。
    多个补丁分为多个邮件发送,如[PATCH 1/n] xxx,[PATCH 2/n] xxx,…,[PATCH n/n] xxx
    邮件要以纯文本的形式,不要任何签名

 

  1. 6、关注补丁进度
    WineHQ收到邮件之后会在patch列表中显示
    补丁会先通过机器人验证是否能够合并。如果有人review代码上面也会显示review代码的人的名字。

发表评论

电子邮件地址不会被公开。 必填项已用*标注