如果它没有通过“补丁测试”,那它就不是开源的。
我认为现在大多数人都知道,仅仅有许可证不足以使某物真正开源。 许可证只是帮助通过初步检验。 我使用另一个我喜欢称之为“补丁测试”的测试。
什么是补丁测试? 补丁测试回答的问题是“如果我提交一个格式良好且有用的补丁,是否有明确的提交方式并将其合并到 HEAD/主干/等等中?” 如果答案不是肯定的,那么即使有开源许可证,它也不是开源的。 许可证使其有可能成为开源的(如果有人 fork 它),但它还不是开源的。 虽然补丁测试本身不足以使某物合格,但我还没有遇到任何真正开源的东西没有通过它,只要它有一个 OSI 批准的开源许可证。 许多拥有开源许可证的东西肯定会未能通过“补丁测试”。
例如,大多数 Apache 项目都有明确的途径,您创建一个错误报告并附加一个补丁。 Linux 在 FAQ 中为此提供了一个条目,详细说明了更复杂的过程。 如今,许多商业项目都未能通过补丁测试。 一个明显的迹象是他们不屑于记录一个过程。 有些记录了一个过程,但由于主干是在其他地方开发的,然后在某种内部决定的周期中被祝福到开源社区。 这意味着提交补丁是不切实际的,因为您实际上无法针对主干创建补丁。
如果您认为某些东西不是开源的,请尝试编写一个单元测试或一些有用的文档补充。 看看它是否通过了“补丁测试”。 如果没有,希望有人会 fork 它并产生一个可行的开源替代方案。