采摘平台

无论何时编写开源软件,您都必须选择您要支持的平台。

一般来说,你想让你的程序尽可能的可移植,并覆盖尽可能多的平台,发行版和奇怪的电脑。

但是让你的程序在所有东西上运行是一项非常艰苦的工作。

例如,你知道吗:

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经鲍尔-亨宁斯同意