前言
在上一總結中,講述瞭如何將ROS1的包發佈到ROS版本(Indigo、jade、kinetic、lunar等),在這一節中,講述如何把ROS2的包發送到ROS社區,比如發佈到ROS2版本(ardent)。
這個頁面描述瞭如何準備在公共ROS 2 buildfarm上發佈存儲庫。在你創建了一個包之後,這是將你的包引入到公開可用的Debian軟件包(即:你將能夠通過apt-get安裝包。這個頁面包含了ROS 2特定的指令,它取代了在ROS Wiki上的Bloom發佈教程的第2部分。
注意:早期的ROS 2版本的發佈過程主要依賴於git-bloom-release
的子命令bloom-release
,而不是完整的開放版本工作流,所以可能會有問題。
對比ROS1 bloom不同
如果你在ROS1之前使用bloom發佈過ROS包,ROS2的先決條件和ROS1差不多。然而,ROS 2還沒有爲你自動進行標記和版本控制的工具(沒有等價於catkin_create_changelog工具)。
要求工具
對於ROS2的Ardent來說:
- bloom >= 0.6.2
- catkin_pkg >= 0.4.0
過程
第一步:changelog(可選)
創建/更新CHANGELOG.rst,使用即將到來的新格式。注意,changelog嚴格來說是可選的,但它是非常推薦的。
注意你的changelog格式中的錯誤可能會導致你的包發佈問題。提交併將更改提交給變更日誌。
第二步:標記包版本號
在package.xml
中更新包的版本。版本號必須比前一個版本高。對於你的第一個版本,我們建議0.0.1或1.0.0。提交併推動這個變更。
注意,你不能使用以前使用的版本號(參見下面)。一些包釋放到ROS 1和ROS 2,但是由於這個需求,必須使用不同的版本控制系列。ROS包通常不遵循嚴格的語義版本控制,所以不要過分擔心。如果你想了解其他人已經做了什麼,請使用ROS 1發佈包中的0.x.x或1.x.x系列和ROS 2發佈包中的1.x.x或2.x.x系列。
第三步:標記你的包
創建一個與你剛剛輸入到package.xml中的版本號相匹配的標記,在提交時,會遇到版本號。現在你知道了不能重用版本號的原因——git只允許在存儲庫中使用給定名稱的一個標記。
第四步:確保你的bloom和catkin_pkg是最新版本
查看以上版本要求,運行以下命令追蹤當前版本:
sudo apt-get install python-catkin-pkg python-bloom
第五步:設置ROS 2環境變量
ROS 2使用的是全新的存儲庫,該版本的所有索引保存在https://github.com/ros2/rosdistro,forked該存儲庫。你可以通過設置ROSDISTRO_INDEX_URL環境變量來配置bloom。
export ROSDISTRO_INDEX_URL='https://raw.githubusercontent.com/ros2/rosdistro/ros2/index.yaml'
導出這個之後,你將能夠在你的bloom-release終端命令中使用ROS 2發行版的ardent
, bouncy
等名稱。
下一步
現在,你的存儲庫設置完畢。你已經手動完成ROS 2在這個界面的內容
返回到ROS Wiki上的Bloom發佈教程,並繼續“創建一個發佈存儲庫”。