注:本节未经校验,如有问题欢迎提issue
该子项目用来作为外部开发人员贡献模块的地方,随着时间的推移它可能会,也可能不会进入正式支持的代码中。这种转变可以发生的条件包括:
如果贡献被发现不足以"起飞",它可能会再次在稍后的时间移除。
在此子项目中的模块并不都得服从小版本之间的二进制兼容规则。次要版本中可能引入破坏 API 的更改并且没有通知,只是基于用户的反馈意见。一个模块可能未经事先通知而丢弃。Typesafe订阅并不包括对这些模块的支持。
由于Akka团队不限制到此子项目的更新,即使在二进制兼容的切换版本中,而且有可能在没有警告的情况下删除模块,因此建议将源文件复制到你自己的代码基中,更改包名称。通过这种方式,你可以选择何时更新或哪些修补程序需要包括进来(以保持二进制兼容性,如果需要的话),而且更高版本的Akka不可能破坏你的应用程序。
每个贡献应该是一个自包含的单元,包括一个源文件或一个专门使用的包,没有对此子项目中其他模块的依赖;不过它可以依赖于Akka发布。这将确保贡献可以单独移动到标准发布中。该模块应在 akka.contrib
的一个子包中。
每个模块必须伴随一个测试套件验证其提供的功能,可能辅之以集成和单元测试。测试应遵守开发者指南,并放在src/test/scala
或src/test/java
目录中(被测试的模块需要正确匹配包名)。例如,如果该模块被称为 akka.contrib.pattern.ReliableProxy
,则其测试套件应命名为 akka.contrib.pattern.ReliableProxySpec
。
每个模块还必须有用reStructured Text编写的恰当的文档。文档应该是一个单一的 <module>.rst
文件,在akka-contrib/docs
目录中,包括从index.rst
(此文件)的链接。