solidity 版本控制
版本控制
Solidity 版本遵循语义版本控制。此外,主版本 0(即 0.xy)的补丁级别版本将不包含重大更改。这意味着使用版本 0.xy 编译的代码可以预期使用 0.xz 编译,其中 z > y。
除了发布之外,我们还提供每日开发构建版本,目的是让开发人员更容易尝试即将推出的功能并提供早期反馈。但是请注意,虽然每日开发构建通常非常稳定,但它们包含来自开发分支的前沿代码,并且不能保证始终有效。尽管我们尽了最大努力,但它们可能包含未记录和/或损坏的更改,这些更改不会成为实际版本的一部分。它们不适用于生产用途。
部署合约时,您应该使用最新发布的 Solidity 版本。这是因为定期引入重大更改以及新功能和错误修复。我们目前使用 0.x 版本号来表示这种快速变化的步伐。
详细的版本字符串
Solidity 版本字符串包含四个部分:
-
版本号
-
预发布标签,通常设置为
develop.YYYY.MM.DD
或nightly.YYYY.MM.DD
-
提交格式为
commit.GITHASH
-
平台,具有任意数量的项目,包含有关平台和编译器的详细信息
如果有本地修改,提交将使用.mod
.
这些部分按照 SemVer 的要求组合在一起,其中 Solidity 预发布标签等于 SemVer 预发布,Solidity 提交和平台组合构成了 SemVer 构建元数据。
发布示例:0.4.8+commit.60cc1668.Emscripten.clang
.
预发布示例:0.4.9-nightly.2017.1.17+commit.6ecb4aa3.Emscripten.clang
关于版本控制的重要信息
发布后,补丁版本级别会发生变化,因为我们假设只有补丁级别更改。合并更改时,应根据 SemVer 和更改的严重性来调整版本。最后,总是使用当前夜间构建的版本进行发布,但没有说明prerelease
符。
例子:
-
发布了 0.4.0 版本。
-
从现在开始,nightly build 的版本为 0.4.1。
-
引入了非破坏性更改 –> 版本没有更改。
-
引入了一项重大更改 –> 版本升级为 0.5.0。
-
发布了 0.5.0 版本。
此行为适用于 版本 pragma。