Semantic Versioning Specification中的第一点指出兼容软件必须声明一个公共API。描述语义版本化的红宝石公共API
我想知道如何建立这个公共API的宝石。它似乎通常是通过自述文件完成的(例如,参见ActiveRecord),它并不觉得它在公共API代码和其他代码之间绘制了严格的界限。更好的做法是使用,其公开API代码为API directory,但即使在那里,该行也是灰色的,因为公共API的配置方法在API目录之外的twitter.rb中定义。
作为试图坚持语义版本控制(这是其中大多数,因为我们有像捆绑软件的工具)的宝石的潜在贡献者,我想知道哪些方法是公共API的一部分,哪些不是。也许我需要查看更多的源代码,但是有没有指导方针可以清楚地定义您的公共API?