为什么无界版本约束是一个坏主意?#
没有上限的版本约束,例如 *
、>=3.4
或 dev-master
,将允许更新依赖项的任何未来版本。这包括会破坏向后兼容性的主要版本。
一旦您的包版本被标记,您就不能再调整它的依赖项,以防依赖项破坏 BC - 您必须进行新的发布,但之前的版本仍然存在问题。
唯一好的替代方案是在您的约束中定义一个上限,您可以在测试您的包与依赖项的新主要版本兼容后,在新的版本中增加上限。
例如,不要使用 >=3.4
,而应该使用 ^3.4
,它允许所有版本,直到 3.999
,但不包括 4.0
及更高版本。^
运算符与遵循 语义版本控制 的库配合得很好。
注意:作为包维护者,您可以通过为您的开发分支提供 别名版本 来帮助您的用户,以便它能够匹配绑定约束。
发现错别字?文档中有错误?Fork 并编辑 它!