软件包 (Packages)#
有关已创建软件包及其内容的概述,请参见 下载 (Downloads)。
发布步骤 (Release steps)#
下面列出了发布新版本需要按顺序执行的步骤。所有没有自己工单 (ticket) 的必要提交都可以引用 #563。所有步骤都假设你正在使用 bash(无论是原生的 Linux、macOS,还是在 WSL 或 git bash(或其他 mingw bash)中)。 此外,你应该准备好密码,或者更好的是在所有相关远程服务器上部署 ssh 密钥。
合并阶段 (Merge phase)#
对 SUMO 主干 (trunk) 的重大更改应在发布日期前约两周结束。这尤其指将项目分支合并到主干。此时通知依赖软件(Veins、VSimRTI、flow 等)的开发者也是一个好主意。 - 向 sumo-dev 发送邮件,通知即将发布的版本,以便“贡献” (contributed) 的作者可以检查他们的代码是否兼容。
冻结阶段 (Freeze phase) (发布日 - 7)#
- 检查源代码
- 编译,尝试消除警告并提交补丁
- 运行 tools/build_config/checkStyle.py 并提交更改的文件
- 检查日历以更新版权声明
- 检查是否需要 增加 TraCI 版本 并在 python 中重建 TraCI 常量 (tools/traci/rebuildConstants.py)
- 检查是否需要增加网络版本,并更新 NWFrame::MAJOR_VERSION 中的值。之后需要更新 netconvert 测试。
- 更新作者信息
- 检查常规测试
- 特别注意作为示例的测试,见 tests/examples.txt!
- Win64 和 gcc4_64 不应有失败的测试,其他平台的重要性较低
- 如果有失败的测试,且未标记为已知错误 (known bugs),请在仔细检查后保存它们,或打开一个工单并分配一个已知错误。
- 如果由于 netconvert 更改而有必要,请重新检查/重建测试网络
- 运行
tools/devel/orphaned_tests.py tests检查孤立测试,并修补测试套件以将它们重新添加回去 - 再次检查测试
- 检查文档
- 更新 变更日志 (ChangeLog)
- 使用
tools/build_config/rebuildConfigDocsAndXsd.py生成选项文档和配置文件的 xsd 模式
- 更新
tools/build_config/templates.py以包含自上次发布以来添加或兼容性已修复的任何工具 - 检查内部测试(同上),特别是(将要)发布的场景
- GitHub
- 如有必要,添加新的 里程碑 (milestone)
- 检查所有剩余的工单,并将它们分配给以后的里程碑或分配给人员。
- 场景(可选)
- 如果旧版本无法在当前版本上运行,或者对场景进行了重大更改,请为发布准备场景
- 运行
git submodule update --remote更新子模块,并在必要时提交更改
现在主干已冻结。所有不引用即将发布的版本的开放工单的提交都必须在单独的分支上进行。冻结阶段不应超过一周。目标是修复所有场景并修复所有未分配给以后里程碑的失败测试。
发布日 - 1 (Release day - 1)#
所有场景此时都应已修复。
- 在 Zenodo 中启动并保存一个新版本草稿(使用 sumo@dlr.de 用户),以保留 DOI。暂不要发布它,也不要向其上传文件!
- 在 CITATION.cff 和 README 徽章中将版本 DOI 更新为此新保留的 DOI
- 如有必要,再次更新 变更日志 (ChangeLog)
- 检查
tools/build_config/ubuntu_release.sh中的正确电子邮件地址和当前 ubuntu 版本列表 - 使用
tools/build_config/updateReleaseInfo.py 1.25.0修补版本信息并仔细检查更改- 在 src/config.h.cmake 中,也应禁用 HAVE_VERSION_H 宏
- 在 CMakeLists.txt 中
- 在 mkdocs.yml 的 extra: 部分末尾,以更新 下载链接
- 在 org.eclipse.sumo.metainfo.xml 中,以获取正确的 flatpak 信息
- 在 CITATION.cff 中
- 在 变更日志 (ChangeLog) 中
- 提交更改
- 通过执行
git submodule update --remote重新检查子模块是否已更改,并在仔细检查后提交更改 - 检查 IP 尽职调查
- SUMOLibraries、src/foreign 和 tools/contributed 中的每个库都需要在 库列表 (Libraries list) 和 https://github.com/eclipse-sumo/sumo/blob/main/docs/dependencies.txt 中有一个条目
- iplab 应该为每个条目都有一个已关闭的问题
- 检查文档
- 检查 https://build.opensuse.org/package/show/science:dlr/sumo_nightly 上是否存在 RPM
- 添加新的版本标签
> git tag -a v0_13_7 -m "tagging release 0.13.7, refs #563"
> git push --tags
发布日 (Release day)#
夜间构建 (nightly build) 应该已经生成了所有可发布的软件包。如果没有,则推迟发布。(完整的文档、测试和源代码发行版可以通过 "make dist" 构建。) 以下内容需要在 S:\daily 目录中:
- 发行版的平台无关部分;
- 源代码和所有包含的发行版 (.tar.gz, .zip) ("make dist")
- 发行版的二进制部分
- Windows 二进制发行版 (zip,解压 x64 文件并至少运行 sumo-gui)
- Windows 安装程序 (msi,Win32 和 x64,包含文档)
- 检查 S:\daily\wheels 中的 wheels
- Windows、macOS、Linux x64 和 Linux aarch64 的 eclipse-sumo 和 libsumo(所有当前 python 版本的 libsumo)
- sumolib, traci
- 检查 Maven 构建 https://ci.eclipse.org/sumo/job/maven-artifacts/ 并确保工件已上传至:
如果一切正常:
- 在 S:\Releases 中创建一个新文件夹
- 创建新的 sumo.dlr.de-release
- 将文件夹从 S:\Releases 复制到 releases 目录
scp -r /s/Releases/1.25.0 delphi@ts-sim-front-ba.intra.dlr.de:docs/releases
- 将文件夹从 S:\Releases 复制到 releases 目录
- 更新 eclipse.dev/sumo 网站
- 在 config.yaml 的 Default Parameters 部分修改版本号 (Version) 和 DOI 号 (DOI)
- 创建新的 sourceforge-release
- 在 Web 浏览器上登录,在 https://sourceforge.net/projects/sumo/files/sumo/version%201.25.0/ 创建新文件夹并上传文件
- 由于文件大小,可能需要分几轮进行
- 通过单击每个文件后的带圆圈的 "i" 更改默认下载属性
- Windows 的默认值是 sumo-win64extra-1.25.0.msi,macOS 是 sumo-1.25.0.pkg,其他所有平台是 sumo-src-1.25.0.tar.gz
- 在 Web 浏览器上登录,在 https://sourceforge.net/projects/sumo/files/sumo/version%201.25.0/ 创建新文件夹并上传文件
- 完成 Zenodo 版本草稿,上传
sumo-src-1.25.0.tar.gz,添加发布信息(也可以稍后完成)并发布它 - 在 https://projects.eclipse.org/projects/automotive.sumo 创建一个新的 Eclipse 发布(登录后应有一个 "Create Release" 按钮)
- 在 elib 中创建一个新条目
- 最简单的方法是转到 Einträge verwalten 并单击旧发布上的放大镜图标,然后转到 "Aktionen" 选项卡并选择 "Als Vorlage verwenden"
- 查看 Eintrag von Forschungssoftware-Publikationen - Tutorial,或先前发布的条目:https://elib.dlr.de/205320/
- 如有必要,请与部门/研究所的 elib 指定人员沟通
- 更新 opensuse build service 上的文件
- 更新 ubuntu ppa(参见 https://askubuntu.com/questions/642632/how-to-bump-the-version-of-a-package-available-in-another-users-ppa)
- 这假设你已安装 devscripts 包以及所有 sumo 依赖项
- 解压特殊的源代码发布
tar xzf sumo_1.25.0.orig.tar.gz - 运行
cd sumo-1.25.0 && tools/build_config/ubuntu_release.sh并输入发布评论 - 使用
dput -f ppa:sumo/stable ../sumo_1.25.0*_source.changes进行上传
- 针对 winget 发起拉取请求 (pull request)
- 使用
twine upload /s/daily/wheels/*1.25.0*.whl将 wheels 上传到 PyPI- 你可能需要在虚拟环境中使用最新的 twine 来执行此操作,请参见 https://github.com/pypi/warehouse/issues/15611
- 场景(可选)
- 将文件添加到 场景文件夹
- 更新 README.txt
- 通知用户新版本
- 将有关发布的信息发布到 sumo-user@eclipse.org 和 sumo-announce@eclipse.org
- 在 Eclipse Newsroom https://newsroom.eclipse.org/node/add/news 提交有关发布的新闻
- 在 Twitter、Facebook 和 Instagram Stories 上发布
- 关闭 里程碑 (目前需要手动重新定位开放工单)
- 将最新版本添加到 Wikidata 中的 "software version identifier" 语句(这将更新有关 SUMO 的维基百科文章),确保选择最新版本作为 "preferred rank",并将前一个版本设置为 "normal rank"。
发布后清理 (After-release cleanup)#
现在主干已重新开放以进行更改。
- 等待自动的 flatpak 拉取请求出现并构建,然后接受它
- 在 src/config.h.cmake 中重新启用 HAVE_VERSION_H
- 在 CMakeLists.txt 中将版本重命名为 "git"
- 在 变更日志 (ChangeLog) 顶部插入一个新的空 "Git Main" 部分
- 提交更改
- 喝你最喜欢的饮料和/或吃蛋糕
