采摘平台¶
无论何时编写开源软件,您都必须选择您要支持的平台。
一般来说,你想让你的程序尽可能的可移植,并覆盖尽可能多的平台,发行版和奇怪的电脑。
但是让你的程序在所有东西上运行是一项非常艰苦的工作。
例如,你知道吗:
Sizeof(空 *) != sizeof(void * 常量)
在符合ISO-C的环境中合法吗?
Varnish runs on a Nokia N900 但我不会不遗余力地确保情况总是如此。
为了对Varnish有意义,一个平台必须能够交付,无论是在性能方面,还是在我们用来获得性能的API方面。
在我长大的FreeBSD项目中,我们最终建立了平台层,以努力记录我们关心哪些平台,以及我们确实同样热爱哪些平台。
如果我们对Varnish执行同样的操作,结果将如下所示:
A-我们关心的平台¶
我们之所以关心这些平台,是因为我们的用户使用它们,也因为它们为Varnish带来了很多实惠。
这些平台在我们的“火药桶”测试中,我们自己使用它们,它们一直通过所有回归测试。对特定于平台的错误报告采取行动。
FreeBSD
Linux
显然,您可以忘记在您的 WRT54G 但如果你有一台真正的计算机,你可以期待Varnish在任何有可用的包的发行版上都能“正常或更好地”工作。
B-我们尽量不打破的平台¶
我们尽量不破坏这些平台,因为它们基本上可以工作,可能会有一些脚注或小限制,而且它们有活跃的用户基础。
我们可能会也可能不会定期在这些平台上进行测试,或者我们可能会依赖贡献者来提醒我们问题。没有补丁的特定于平台的错误报告可能会过上平静的生活。
Mac OS/X
Solaris-decendants (Oracle Solaris、OmniOS、Joyent SmartOS)
Mac OS/X被视为开发平台,而不是生产平台。
Solaris-Dendants被视为一个生产平台。
可以想象,NetBSD、AIX和HP-UX是这一级别的候选者,但到目前为止,我还没有听到多少用户感兴趣的消息。
我们可以容忍的C-平台¶
我们容忍任何其他平台,只要这样做的负担与瓦尼什社区的利益成正比。
在没有附加解决问题的补丁程序的情况下,不要提交特定于这些平台的错误报告,我们只会关闭它。
就目前而言,其他一切都在这里,当然是N900和WRT54G。
恐怕我现在不得不把OpenBSD放在这里,它在套接字API上严重落后,解决这些问题是不值得的。
如果人们给我们发送一个小的非侵入性补丁,让Varnish在这些平台上运行,我们就会接受它。
如果他们给我们发送的补丁重新组织了一切,损害了代码的可读性和质量,或者只是通常不能满足我们的口味,他们会被告知谢谢,但不谢谢。
是这样吗?放弃所有的希望等等?¶
这些层级并不是静态的,如果出于某种原因,Varnish突然成为某个技术上合理的平台的强制性附件,(zOS有人吗?)该平台将得到升级。如果悲观主义者对甲骨文意图的看法是正确的,Solaris可能会被降级。
直到下一次,
鲍尔-亨宁,2010-08-03编辑的尼尔斯,2014-03-18经鲍尔-亨宁斯同意