"公共API"在语义版本控制中意味着什么?

Nee*_*key 26 semantic-versioning

我正在学习如何使用http://semver.org/中名为"语义版本控制"的规则来分配和增加版本号.

在其所有规则中,第一个规则说:

使用语义版本控制的软件必须声明一个公共API.此API可以在代码本身中声明,也可以严格存在于文档中.无论如何,它应该是精确和全面的"

我对"公共API"感到困惑.它指的是什么?

fdi*_*rre 7

公共API指的是外部世界(用户,其他程序和/或程序员等)对您的软件具有的"访问点".

例如,如果您正在开发库,则公共API是可以对库进行的所有方法调用的集合.

据了解,除非主要版本发生变化,否则您的API将向后兼容,即在版本上有效的所有调用在更高版本上都有效.您可以阅读这些规则的第9点:

如果向公共API引入任何向后不兼容的更改,则必须增加主要版本X(Xyz | X> 0).

  • 这个答案是不完整的:公共API也引用了所述库的公共文档.记录的行为也是必须依赖的东西. (3认同)

Rou*_*ica 5

我今天发现了SemVer,并从几个来源阅读了它,以确保我完全掌握了它。

我对“公共 API”感到困惑。它指的是什么?

我也对此感到困惑。我想一套关于使用SemVer立即版本我的一些脚本,但他们并没有public API和他们是如何它甚至不是很清楚,我可能有一个。

我找到的最佳答案是一个解释:

SemVer明确不用于对所有代码进行版本控制。它适用于具有公共 API 的代码。

使用 SemVer 对错误的软件进行版本控制是一个非常常见的挫败感来源。SemVer无法对未声明公共 API 的软件进行 版本控制

声明公共 API 的软件包括库和命令行应用程序。软件不声明公共API包括许多游戏和网站。考虑一个博客;与库不同,它没有公共 API。其他软件无法以编程方式访问它。因此,向后兼容性的概念不适用于博客。正如我们将解释的,semver 版本号 取决于向后兼容性。由于这种依赖性,semver 无法对博客等软件进行版本控制。

来源: SemVer 版本可以使用哪些软件?