您正在阅读的是开发版本的文档。有关最新发布的版本,请访问 Jazzy.
发布的开发流程
每个 ROS 2 发行版都经历了长达一年多的开发过程,这个过程始于上一个发行版发布之前。以下是这一开发过程的高级视图。这个过程中的项目没有具体的截止日期,但一般来说,早期项目应在后期项目完成之前完成。
有关特定版本的流程进度,请参阅该版本的文档页面。
项目 |
说明 |
---|---|
寻找 ROS 老板 |
ROS Boss "是指负责指导发行版完成开发、发布、更新和终结阶段的人员。他们从开放机器人公司的 ROS 2 内部团队中选出。 |
运行程序以选择分发名称 |
ROS 老板在选择发行版名称的过程中,会参考社区和潜在命名冲突等方面的意见。 |
创建发行版的文档页面 |
每个发行版都有一个文档页面,其中列出了重要的统计数据,如计划发布日期、停用日期以及自上次发布以来的重大变更。 |
设定发布时间表 |
发布日(通常是世界海龟日)前的最后几周非常繁忙,充满了各种截止日期,例如何时冻结默认 RMW 的实施。这些最后期限必须提前计划好。 |
编制路线图 |
虽然 ROS 的每个贡献者都有自己为每个发行版规划的功能,但我们会尽量保持一个新功能的整体路线图,以及我们期望在发行版中看到的重大变化。开放机器人公司的 ROS 负责人和 ROS 2 开发团队的负责人与 ROS 2 技术委员会和其他相关方合作,共同制定一个在可用时间内可以实现的路线图,以满足 ROS 社区的需求。 |
公布路线图 |
计划中的功能和重大变更列表将通过 GitHub 问题公开,该问题将跟踪路线图中每个项目的开发进度。当然,这并不意味着路线图就此固定下来,因为开发计划可能会发生变化,我们始终(并经常)欢迎新的贡献,即使它们不在计划的路线图上。 |
设置目标平台和主要依赖项 |
目标平台(操作系统、发行版和版本)必须提前足够长的时间设定,以便基础架构的开发工作(如构建农场中的支持)能够顺利进行。同样,每个主要依赖项的版本(哪个 Python 版本、哪个编译器、哪个 Eigen 版本等)也必须固定下来。这可以通过更新 REP-2000. |
为构建农场添加平台支持 |
构建农场是支持 ROS 2 发行版的基础设施的重要组成部分。它提供持续集成设施,帮助我们保持质量,并构建社区所依赖的二进制软件包,避免从源代码构建 ROS 2 和软件包。如果目标平台与之前的 ROS 2 发行版不同,则必须在构建农场中添加必要的支持。 |
委托制作徽标和相关艺术品 |
徽标是每个 ROS 2 发行版(以及 ROS 发行版!)深受喜爱的一部分。徽标是根据所选发行版名称委托专业艺术家制作的。在徽标的基础上,我们还制作了其他艺术品,如 turtlesim 图标。 |
创建用于分发的邮件列表 |
要发布重要公告,就必须建立邮件列表,以便联系有兴趣了解发行版信息的人,比如他们的软件包在构建农场上无法构建成二进制文件。 |
创建测试用例 |
随着开发过程进入最后几个月,测试工作正式开始。在开发的最后阶段将使用的集成测试用例必须制作完成,并提供给负责执行这些测试用例的发布团队。 |
宣布即将冻结 RMW |
RMW 冻结是指新发行版的默认 RMW 实现被功能冻结。这就为开发人员提供了一个稳定的目标来测试他们的软件包,这对客户端库开发人员尤为重要,因为他们需要知道客户端库可以使用 RMW 层的哪些功能。 |
升级依赖软件包 |
ROS 依赖的软件包,但不是 ROS 软件,且在平台软件包管理器(如 Ubuntu 的 aptitude)中不可用,即所谓的 "供应商软件包",必须更新到 REP-2000 中指定的版本(或 REP-2000 中未列出的适当版本)。这一点在 Windows 上尤为重要。 |
制定详细的发布计划 |
对开发过程的最后两个月进行规划。这将产生详细的测试计划、某些软件包必须在何时可用的时间表等。这样就能找到发布流程中各个步骤之间的依赖关系,并找到执行每个步骤的人员。 |
冻结 RMW |
RMW 实现现已功能冻结。理论上,现在可以对其进行详尽的测试,以确保其在发布日前正常工作。 |
宣布即将全面冻结 |
冻结 RMW 实现之后的下一个冻结是冻结整个发行版。此时,ROS 核心软件包的功能将被冻结,从而为非核心软件包的开发者提供了一个稳定的目标来测试他们的软件包,同时也为发行版测试者提供了一个在他们测试之后不会立即改变的测试对象。 |
冻结分配 |
从这时起,任何 ROS 核心软件包都不能再添加新功能。只有对开发过程中密集集成测试阶段发现的(不可避免的)错误进行修复后,才能纳入代码库。这意味着,Rolling Ridley 实际上已经被冻结。 |
宣布即将成立的分部 |
Rolling Ridley 推出新的 ROS 2 发行版是一个重要时刻。值得为此做好准备。 |
宣布即将推出测试版 |
发行版进入测试阶段后,ROS 社区就可以对其进行更广泛的测试。测试版在发行版从 Rolling Ridely 分支出来后不久就会推出。 |
滚雷德利分部 |
新的 ROS 2 发行版是在 Rolling Ridley 分支的基础上创建的。实际上,新版本就是在这个时间点诞生的。与此同时,Rolling Ridley 已从开发过程中解脱出来,可以继续滚动到未来,再次接收新功能。 |
将分发添加到 CI |
持续集成系统已更新,允许使用新发行版的分支和核心 ROS 软件包进行构建。这意味着软件包开发人员可以针对新发行版而不是 Rolling Ridley 为其软件包运行 CI。 |
开始构建临时测试压缩包 |
测试人员精英团队将对新发行版进行测试,他们需要在不不断从源代码编译 ROS 2 的情况下进行测试。构建农场用于在某个时间点生成一组包含发行版的压缩包,供测试人员测试。 |
添加分发文件 |
在 ROS 2 文档网站上添加了有关该发行版的详细文档,例如自上一个发行版以来的重大变化。 |
公布测试版 |
发行版的测试版发布后,整个 ROS 社区都会被邀请参与测试(对于那些尚未参与测试的人来说)。此时,测试人员越多越好,因为发行版需要在发行前通过尽可能广泛的场景来查找错误。 |
最终发布准备工作 |
当新发行版进入 "一切完全冻结 "阶段时,就要为发布做最后的准备。其中包括使用构建农场制作二进制软件包,以便有东西可以发布。 |
发布 |
如果一切按计划进行,这一天正好是 5 月 23 日世界海龟日。发行版的二进制软件包在发布库中发布,并发布公告。举行派对,ROS 2 开发团队也可以好好休息一下了。 |