Solidity编译器版本概述
Solidity的版本遵循 语义化版本原则,作为发布版本的补充, 每日开发构建 也是可用的。这个每日开发构建不保证能正常工作,尽管尽了最大的努力,但 仍可能包含未记录的和/或重大的改动。我们推荐使用最新的发布版本。 下面的包安装程序将使用最新发布版本。
1、版本字符串
Solidity 版本名包含四部分:
- 版本号
- 预发布版本号,通常为 develop.YYYY.MM.DD 或者 nightly.YYYY.MM.DD
- 以 commit.GITHASH 格式展示的提交号
- 由若干条平台、编译器详细信息构成的平台标识
如果本地有修改,则 commit 部分有后缀 .mod。
这些部分按照 Semver 的要求来组合, Solidity 预发布版本号等价于 Semver 预发布版本号, Solidity 提交号和平台标识则组成 Semver 的构建元数据。
发行版样例:0.4.8+commit.60cc1668.Emscripten.clang.
预发布版样例: 0.4.9-nightly.2017.1.17+commit.6ecb4aa3.Emscripten.clang
2、版本信息详情
在版本发布之后,补丁版本号会增加,因为我们假定只有补丁级别的变更会在之后发生。当变更被合并后,版本应该根据semver和变更的剧烈程度进行调整。最后,发行版本总是与当前每日构建版本的版本号一致,但没有 prerelease 指示符。
例如:
- 0.4.0 版本发布
- 从现在开始,每晚构建为 0.4.1 版本
- 引入非破坏性变更 —— 不改变版本号
- 引入破坏性变更 —— 版本跳跃到 0.5.0
- 0.5.0 版本发布
该方式与 version pragma 一起运行良好。