codecamp

solidity 版本控制

版本控制

Solidity 版本遵循语义版本控制。此外,主版本 0(即 0.xy)的补丁级别版本将不包含重大更改。这意味着使用版本 0.xy 编译的代码可以预期使用 0.xz 编译,其中 z > y。

除了发布之外,我们还提供每日开发构建版本,目的是让开发人员更容易尝试即将推出的功能并提供早期反馈。但是请注意,虽然每日开发构建通常非常稳定,但它们包含来自开发分支的前沿代码,并且不能保证始终有效。尽管我们尽了最大努力,但它们可能包含未记录和/或损坏的更改,这些更改不会成为实际版本的一部分。它们不适用于生产用途。

部署合约时,您应该使用最新发布的 Solidity 版本。这是因为定期引入重大更改以及新功能和错误修复。我们目前使用 0.x 版本号来表示这种快速变化的步伐

详细的版本字符串

Solidity 版本字符串包含四个部分:

  • 版本号

  • 预发布标签,通常设置为develop.YYYY.MM.DDnightly.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符。

例子:

  1. 发布了 0.4.0 版本。

  2. 从现在开始,nightly build 的版本为 0.4.1。

  3. 引入了非破坏性更改 –> 版本没有更改。

  4. 引入了一项重大更改 –> 版本升级为 0.5.0。

  5. 发布了 0.5.0 版本。

此行为适用于 版本 pragma

以太坊 创建、停用和销毁
solidity 在线运行
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }