4
升级时无法修补开源软件吗?
最近,我在集成到应用程序中的开源软件包中遇到了一个令人讨厌的(已确认)错误。根据公共问题跟踪工具,此错误已在该软件的最新版本中得到解决。 有时您需要该错误修复程序来避免对特定模块进行昂贵的重构,但是由于技术和/或政治原因,您将无法升级到最新版本。 在检查所做的代码更改时,此修复程序似乎很简单,我认为可行的选择是自己修补代码并重新编译我当前批准的软件版本,但是批评者希望证明这种情况几乎总是一个坏主意。这是有风险的,并且会带来麻烦的复杂性。 在他们眼中,因为此代码更改仅由我们完成,仅供我们使用,所以它必须是代码库的一部分,这意味着,与其将开源软件作为第三方依赖项引入,我们还必须将其作为一个新项目引入并纳入将其自动构建到我们的构建过程中。 对我来说,我认为这是错误的做法,因为我们会将他们的代码从其源代码控制存储库中提取到我们的代码中,并且在此之前发生的任何代码更改背后,我们都失去了历史。同样,对于需要进行如此小的代码更改而言,这似乎太复杂了。 在这种情况下执行上述操作会不好吗?如果是这样,那么当开源需要改变但仅出于内部利益而改变时,理想的情况是什么?