如何记录第三方库修改?

fhu*_*cho 3 java documentation comments

有时我需要修改第三方库以满足我的特定需求.它可以是错误修复,性能改进,添加功能等.

例如,我将JSoup和Android支持库源包含到我的项目中并进行了一些更改.我也用Android源代码中的2个Java文件做了同样的事情.

我应该如何记录这个?

Tom*_*icz 11

规则1

别.维护分叉版本的库非常痛苦,特别是当您想要升级库并需要反复向后移动更改时.更不用说有一天会有人忘记你的版本并使用标准版本.

因此,总是试图以包括未经您更改失败(在外部库暴露错误的表现测试用例代码).

规则0

始终将您的更改提交给原始作者/维护者.提出问题并提供补丁.如果您的更改值得违反规则-1,则可能会包含在下一版本中.

规则1

提交库的原始源文件而不做任何更改.然后使用描述性消息提交每个改进/错误修复.最好包括发票/票证ID,它将指向您(或图书馆)票务系统中的说明.

这样,当浏览此给定目录或项目的提交列表时,您可以轻松查看已更改的内容.如果提交消息不足以描述分叉和修改外部库的需要,则可以始终浏览问题/故障单.同样在理想的世界中,这样的提交是一个理想的补丁(参见规则0).


额外奖励:我曾经想过通过插件自动分叉和修补外部库.基本上我们指示这个假设插件在特定库上应用给定的补丁.Maven可以轻松地自动下载源代码,重建,安装和包含修改后的版本,而不是目标工件中的原始版本.

无需维护分叉二进制文件,轻松升级,只要补丁仍适用于新版本.有空闲时间在这里的人吗?