HASS.Agent的版本系统¶
Warning
如果你想要开发HASS.Agent的任何部分,你必须阅读并理解这一整页内容。它帮助你理解版本控制以及如何理解不同版本的HASS.Agent
概述¶
HASS.Agent基于一个版本系统¶
HASS.Agent的所有部分都使用semver来跟踪它们的版本。
SemVer的总结¶
这是一个关于SemVer以及你将在开发过程中如何表示不同版本的总体总结。如果你知道SemVer,可能会想跳过这部分,但不要这么做,因为我们在表示开发版本和测试版的方式与其他人不同。
稳定发布的版本¶
HASS.Agent的所有发布版本号看起来是这样的:<主版本>.<次版本>.<修订版本>
一个已发布版本号的示例:1.5.4
主版本¶
主版本号很少更改,如果你正在阅读这份文档,你很可能永远不需要更改它。但对于你的信息,它只在添加了破坏性API更新时才会更改。因此,版本2.*.*
的客户端,不与版本2.*.*
向后兼容。这也意味着所有版本的1.*.*
都将向后兼容,可能会有小的警告或缺失的功能,但所有之前的API调用和功能都按预期工作。基本上,这个版本号只需要在没有添加向后兼容性时增加。这也迫使开发团队不经常发布向后兼容的更新。
示例
- 客户端版本
1.4.2
具有与版本1.8.3
的向后兼容性 - 客户端版本
2.3.2
不具有与版本1.8.3
的向后兼容性
次版本¶
次版本号应在以向后兼容的方式添加新功能时增加。每个版本号可以添加多个功能,但它们都必须具有向后兼容性。
示例
- 客户端版本
1.4.1
将比1.5.0
具有更少的功能 - 客户端版本
1.6.0
将比1.5.0
具有更多的功能
注意,在这两个示例中,版本都是向后兼容的。
修订版本¶
修订版本号应在以向后兼容的方式发布错误修复(补丁)时增加。所有错误修复都必须以向后兼容的方式发布,因此基本上每次发布补丁时,这个数字都会增加。关于修订版本号需要注意的是,不能添加新的功能。
示例
- 客户端版本
1.3.0
将比客户端版本1.3.1
具有更多的错误 - 客户端版本
1.5.6
将比客户端版本1.5.2
具有更多的补丁,因此具有更少的错误
在这些示例中,版本之间没有添加新的功能。只有错误修复和补丁被添加。
测试版的开发版本¶
在开发HASS.Agent客户端的新版本期间,代码中将存在测试版。这些版本将这样表示:<主版本>.<次版本>.<修订版本>-beta.<测试版版本>
你会注意到唯一的区别是添加了-beta
标志和第四个版本号<测试版版本>
即将发布的1.5.3
版本的第一个测试版将如下所示:1.5.3-beta.0
测试版版本¶
测试版版本号应在构建或发布新测试版代码时增加。
示例注释
当前稳定版本是
2.5.4
,开发团队正在开发一个新功能
第一次开发更新期间的测试版应该是2.6.0-beta.0
每次向这个功能添加新的开发更新时,最后一个数字都应该增加。
开发团队现在已经完成了这个功能
发布的稳定版本应该是2.6.0
开发团队发现了错误,正在开发热修复。他们目前正在开发第二个热修复。
当前测试版应该是2.6.1-beta.1
(1)
他们现在已经完成了这个热修复
稳定发布版本应该是2.6.1
- 我们在这里使用
1
作为<测试版版本>
,因为热修复1是.0
,热修复2是.1
其他信息¶
重置数字¶
每当一个“父”版本号增加时,“子”版本号必须重置为零。
示例
- 如果当前版本是
1.5.6
并且正在添加一个新的向后兼容的功能,新版本将是1.6.0
- 如果当前版本是
1.5.6
并且正在添加一个新的向后不兼容的功能,新版本将是2.0.0
文档¶
文档基于<主版本>.<次版本>
的版本。这仍然会与客户端匹配,因为在HASS.Agent客户端的补丁期间不会发生主要的文档更改。
这个版本系统与客户端版本系统之间的另一个区别是测试版属性将不存在。在文档中,如果即将发布的版本是1.5.0
并且当前的测试版是1.5.0-beta.3
,那么文档将显示1.5
并带有beta
标签属性/。
客户端和集成之间的关系¶
客户端和集成都将使用SemVer,但它不会是同一个版本。相反,当你检出HASS.Agent的安装时,它会告诉你需要哪个版本的集成。另一件事是,集成的开发大部分将是向后兼容的,并且不会从版本2
开始移动。