为什么无界版本约束是一个坏主意?#

没有上限的版本约束,例如 *>=3.4dev-master,将允许更新依赖项的任何未来版本。这包括会破坏向后兼容性的主要版本。

一旦您的包版本被标记,您就不能再调整它的依赖项,以防依赖项破坏 BC - 您必须进行新的发布,但之前的版本仍然存在问题。

唯一好的替代方案是在您的约束中定义一个上限,您可以在测试您的包与依赖项的新主要版本兼容后,在新的版本中增加上限。

例如,不要使用 >=3.4,而应该使用 ^3.4,它允许所有版本,直到 3.999,但不包括 4.0 及更高版本。^ 运算符与遵循 语义版本控制 的库配合得很好。

注意:作为包维护者,您可以通过为您的开发分支提供 别名版本 来帮助您的用户,以便它能够匹配绑定约束。

发现错别字?文档中有错误?Fork 并编辑 它!