SUMO版本号及其含义#
SUMO在多个位置都有版本号,即
- 发布版本(在调用
sumo -V时可见,或在GUI应用程序的关于对话框中可见),例如1.6.0 - 开发者版本(在每日构建或自行编译的开发者版本中,在相同位置可见),例如v1_6_0+1520-cb474809f6
- 网络版本(在每个.net.xml文件的开头可见,如
<net version="1.0" ...) - 由TraCI或libsumo的getVersion命令返回的TraCI版本
发布版本#
SUMO大致遵循语义化版本控制,区分了主版本(第一个数字变化)、次版本(第二个数字变化)和补丁或错误修复版本(第三个数字)。 我们大约每年发布三到四次,大多数时候发布的是次版本。 变更量相对较大(连续发布之间有1000多次提交),因此总会有一些额外的功能来证明新次版本的合理性。 由于发布频率相对较高且每日构建可用,我们仅在次版本存在严重错误时才发布错误修复版本。 主版本非常罕见(自2001年以来我们只做过一次),或多或少是一个政治性决定。
我们不发布服务版本(例如,在1.6.0已经发布的情况下发布1.5.1),也不维护单独的发布轨道或分支。 只有一条开发线。
开发者版本#
它由一个字符串表示,该字符串由一个"v"、上一个发布版本(例如"1_6_0")、一个加号以及自上次发布以来的提交次数(例如"+1520")组成,然后是一个减号,后跟github主分支上最后一次提交哈希的首字母(例如"-cb474809f6")。对于Python包,这被转换为"1.6.0.post1520"以符合PEP440标准。
网络版本#
这也是一个"主版本.次版本"的版本号,仅表示引入此格式的SUMO发布版本。netconvert工具通常也可以解析较旧的网络(至少可以回溯到2015年0.25.0版本引入网络版本控制方案时),并将其转换为当前格式。
TraCI版本#
请参阅相关命令的描述。
向后兼容性#
输入#
主要的输入文件,如网络和路径,相当稳定,我们通常只在其中添加新的元素或属性。
处理#
在引入新功能或更改行为时,我们通常会尝试提供选项以恢复旧行为,除非我们认为旧变体是一个错误。由于所有模型仍处于非常动态的开发中(且主要开发用于研究目的),因此在复杂的交通场景中,要在非常不同的SUMO版本之间获得完全相同的行为可能很困难。如果您向某人提供场景,最好注明其预期运行的SUMO版本。版本也会在所有输出文件中注明。
输出#
输出格式也相当稳定,但当然会受到车辆行为变化和一般错误修复的影响。
GUI#
在用户体验稳定性方面,GUI得到的关注最少,尽管我们总是努力不让用户感到困惑(真的!)。
