ROS package发布工作流
ROS package发布工作流
小编为大家讲一讲的相关话题,下面IT袋网为您详细介绍
对于API相对稳定的ROS package通常会采用二进制发布的方式向社区项目提供支持,这里的二进制发布有许多可选的流程,最终的包形态也不尽相同,不同的包发布方式也各有优劣。
当前较为主流的包发布方式还是以ROS社区的bloom+ros_buildfarm为主,但是很多特定场景下开发者们也可能通过snapshot/bundle或者container的形式进行发布。
最近为了解决上述发布形式的一些问题也有开发者提出了基于nix的发布方式,以及结合C++包管理工具Conan进行发布的一系列方法。
现状分析
当前常见包发布流程特点
| bloom+ros_buildfarm | snapshot/bundle/container |
|---|---|
| 支持增量构建 | 环境版本化,可回退 |
| 强制要求每次发布打tag | 编译资源、存储资源网络资源消耗巨大 |
| 对于下游项目缺乏系统集成后的版本管理 | 没有统一工具集 |
| 无回退流程 | |
| 发布为.deb存入apt源 |
上述发布流程中大部分情况只对模块本身进行自测,将集成测试推后,模块自身API的稳定性和向前兼容性是二进制版本发布的前提。
可能的包发布流程需求
- 支持增量构建
- 环境版本化,可回退
- 统一的框架和工具集
可能难以解决的问题
对于二进制集成的迭代模式,下游项目通常选择可用版本进行集成,放在末端项目级别来考虑的话如果涉及对已发布包的变更和再次发布的需求,往往相比于直接源码集成迭代周期会被出包+验证流程拉长。
ROS Build Farm
ROS Build Farm 是支持 ROS 生态系统的重要基础设施之一。它提供源代码和二进制包的构建、持续集成、测试和分析。它旨在满足公共 ROS 社区的需求,并且在http://build.ros.org/上有一个开源包的托管实例。
ROS Build Farm 还旨在支持部署自定义构建农场。这对于发布闭源包、为官方 ROS 构建农场未提供的平台和架构构建或根据特定需求定制过程的场景很有用。
构建的各项工作主要由 Jenkins 实例完成。当然还有其他人将这些工具与 Build Bot 一起使用。ROS Build Farm 的设计目标是大部分基础设施是模块化的和可重用的。
release准备
更新源码仓库change log:b
更新源码仓库版本、tag信息,并push至release仓库:catkin_prepare_release
更新release仓库,准备进行新的一次release:bloom-release
bloom会自动向rosdistro仓库提交pr,以vision_opencv的一次release为例:
vision_opencv (foxy) – 3.0.7-1
The packages in the
相关阅读
-
刀剑英雄2官方网站首页 刀剑英雄游戏礼包领取中心
全面为您解析刀剑英雄2官方网站首页和刀剑英雄游戏礼包领取中心的教程内容,下面IT袋为您详细介绍 畅游旗下国产竞技格斗网游开创者《刀剑英雄》年度资料片“侠者归来”于12月8日震撼公
-
HTTP协议:常见网页错误代码及其含义
一个电脑小知识,为大家介绍HTTP协议方面的知识,下面IT袋网为您详细介绍 在使用互联网浏览网页时,我们有时可能会遇到一些错误代码,这些错误代码通常代表了HTTP协议中的某种特定状态。
-
公司主页是指什么意思 网页网站主页的概念
小编为你解答公司主页是指什么意思和网页网站主页的概念的相关知识,接下来一起来看看吧。 创建Linkedin公司主页相当于公司在领英的发声平台,有助于提升公司形象和品牌。 第一步:登录
-
html自己制作一个网页怎么做 简单网页设计模板html
对于许多网友来说html自己制作一个网页怎么做和简单网页设计模板html的电脑小知识,下面IT袋为您详细介绍 用 HTML怎么制作网页 呢?静态网站的编写主要是用HTML DIV+CSS JS等来完成页面的排版设


