如果该错误在软件包的较新版本(测试版或不稳定版)中得到修复,是否有希望在下一个主要版本之前修复后将其降至稳定版?我想不会,除非有严重的严重性或类似的情况。
它对开发可能更新两年甚至三年的版本的开发人员实际上有帮助吗?我希望在错误报告方面尽我所能提供帮助,为此,我想在虚拟机中设置 Sid 安装,以便我可以在报告错误之前尝试重现我的稳定版错误,但即使bug 仍然存在于新版本中,开发者真的会非常关注针对 Stable 报告的 bug 吗?
我想围绕这个问题还有很多额外的、更模糊的问题,我无法用语言来表达——但基本上,我很想听听一些开发人员的意见,如果我只是纠缠他们,或者报告旧包的错误是否真的有帮助。
答案1
首先澄清一下,发行版(二进制)包和原始源代码包之间存在差异。虽然有些发行版将存储库分为“测试”、“不稳定”和“稳定”等开发商还维护“稳定”、“不稳定”、“夜间”等版本,这些不一样(但版本号确实对应)。
另请注意,此处的“源包”不是指发行版的-src
包。它指的是独立于发行版分发的原始源。即,这些是您通常不直接使用的包——发行版将它们重新打包成二进制(和-src
)形式。
例如,我维护 ; 的原始来源foobar
。当前稳定源码包是1.2.4
,当前不稳定源码包是1.2.5
。 Debian(不是我)将其打包以供分发;他们当前的稳定回购版本是1.2.3
,他们当前的测试回购版本是1.2.5
。我(原开发者)不是 负责 debian 包,或者哪个源版本位于哪个 repo 包中。我不进行发行版二进制版本的编译或打包。我只是保留原始来源。
这些错误报告也是单独的。作为原始开发人员,我可能会也可能不会阅读和响应发行版包上报告的错误。如果没有,并且这个问题应该引起我的关注,那么发行版打包程序将提交有关原始来源的报告。
如果该错误在软件包的较新版本(测试版或不稳定版)中得到修复,是否有希望在下一个主要版本之前修复后将其降至稳定版?
修复很少向后移植,这意味着,如果您的稳定发行版软件包是 1.2.3 并且您知道 1.2.5 有修复,那么除非下一个稳定发行版是 1.2.5,否则它将不包含该修复。也就是说,如果发行版发布 1.2.4 作为下一个稳定版,则 1.2.5 的修复将不会向后移植到它,因此错误仍然存在。
与源代码相关的错误(WRT 到二进制包,有时可能不是)要求原始开发人员在新版本中修复源代码,然后将其合并到发行版包的相应版本中。有一些例外,因为发行版有时会自行修补内容并在版本中添加后缀以指示(例如1.2.4-1
),但我认为,在修复位于源的后续版本中的情况下,情况并非如此。
它对开发可能更新两年甚至三年的版本的开发人员实际上有帮助吗?
这取决于错误是否已修复。版本控制的要点在于它是固定的——1.2.3 版本发布后,无论如何您都不会更改它。如果您在 1.2.3 中修复了某些内容,该修复将出现在下一个版本中。如果它已经被破坏了很多年,那么该版本可能是 1.2.6 等。
因此,如果您知道源代码的更高版本中已修复某些内容,那么向原始开发人员报告它是没有意义的。 然而,如果它是您的发行版当前使用的稳定版本,并且尚未报告该错误(请记住,为源和包报告的错误不同),那么您应该报告它,并表明它已在更高版本的源。再次请记住,负责发行版软件包及其错误报告的人员与原始开发人员不同。因此,尽管我可能已经解决了问题,但发行版打包者可能不知道或不关心。尽管他们可能会通过报告问题来随时了解情况给他们(不是我),您已经明确地引起了他们的注意,这可能会激励他们升级稳定包(不同的发行版对此使用不同的标准)。
答案2
首先,错误报告通常是一个好主意,即使它通常是吃力不讨好的工作,就像自由软件中的许多事情一样。
为了按顺序回答您的问题,
如果该错误在软件包的较新版本(测试版或不稳定版)中得到修复,是否有希望在下一个主要版本之前修复后将其降至稳定版?
可能不会。通常,向后移植到稳定版本的修复仅出于安全目的。
它对开发可能更新两年甚至三年的版本的开发人员实际上有帮助吗?
如果您在稳定版本中发现错误,您需要做的第一件事就是尝试为该软件的当前版本或至少是更新的版本重现该错误。通常,这在不稳定版本中可用,因此您可以尝试将不稳定版本向后移植到稳定版本,或者只是在不稳定系统上进行测试。如果该错误可以在不稳定版本上重现,我通常会向项目邮件列表查询其他人是否可以重现该错误。有时我只是报告错误。
请记住,即使不稳定版本是最新版本,该错误也可能在开发版本中得到修复,因此除非您正在测试软件的当前开发版本(通常只能从软件存储库中获得),否则您无法不确定该错误尚未修复。然而,我常常懒得测试绝对前沿的代码,部分原因是它还没有被打包,而我喜欢使用打包的软件。但是YMMV。
如果该错误已在软件的更新版本中修复,我通常不会报告它。理论上可以这样做,但上游开发者肯定不会在意,AMD 软件的 Debian 打包者也不太可能在意。
最后,你写:
但即使该错误仍然存在于新版本中,开发人员是否会真正关注针对稳定版报告的错误?
我不明白这是什么意思。如果较新版本中存在该错误,请针对较新版本报告该错误。为什么要针对稳定版本报告它?