发布新版本catkin功能包
Contents
默认情况下,bloom会向公共ROS构建工厂发布包。 请参阅build.ros.org以获得关于发布包的更多信息和策略。
先决条件
本教程假设你或其他人,在此之前已经按照首次发布一个包教程进行过一次。
|
我们建议你在真正发布之前进行预发布。 |
遵循这个教程介绍: 运行预发布测试 |
准备上游存储库
这个页面将指导你通过设置你的存储库来创建一个Bloom的release版本。
注意: 由于ROS2使用了一个新的构建系统,所以这个过程不适合ROS2包。如果使用ROS2,你将不得不自己创建changelog并释放标记。请查看在ROS2 wiki上的Bloom Release页面得到更多信息。
更新Changelogs
它们不是强制的,而是推荐的:(ref: REP-132).
生成一个Changelog
$ catkin_generate_changelog
运行catkin_generate_changelog来生成或更新CHANGELOG.rst 文件。如果一个或多个包不包含CHANGELOG.rst, 添加--all选项来为每一个包填充所有的注释。
清理Changelog
命令catkin_generate_changelog只是简单的把git的提交记录填充至Changelog中,这些日志并不总是适合于变更日志。打开CHANGELOG.rst文件按照你自己的格式进行日志变更说明。这是一个CHANGELOG.rst的良好示例.
不要忘记进行下一步!
注意: 不正确的CHANGELOG.rst将会导致包的一些问题。
注意: 如果你有任何以下划线结尾的提交消息,例如成员变量(例如:name_)这将使RST Changelog格式出现错误,因为RST将其视为超链接。这有可能出现以下错误:
<string>:21: (ERROR/3) Unknown target name: "name".
想要修复这个,你需要避免变量,例如:
* fix for checking the ``name_``
提交
这个步骤非常重要,不要忘记! 检查新建或更新的changlog。
注意: catkin_generate_changelog的一些额外信息, 例如命令行标志,可以在原始的讨论话题中找到 ( 这个参考最终应该被一个更权威的文档所取代,而不是一个电子邮件讨论思路)
更新package.xml版本
你必须在你的包里package.xml里更新这个版本。在你的上游存储库中创建匹配该版本的tag。catkin提供了一种工具,称为catkin_prepare_release:
$ cd /path/to/your/upstream/repository $ catkin_prepare_release
这个命令将在你的上游存储库中找到所有的包,检查它们是否有changelogs(然后它们没有未提交的本地更改),在你包的package.xml中增加版本,并使用bloom兼容的标志commit/tag更改。使用此命令是确保你的包具有一致和建议的发布的最佳方法。
默认情况下,这个命令会增加包的补丁版本。例如:0.1.1 -> 0.1.2,但你可以使用--bump选项来选择小的或专业的版本。
即使你不使用catkin_prepare_release,你也必须有一个或多个有效的package.xml,在你的上游存储库中有相同的版本和一个匹配的tag。
发布catkin包
注意: 如果在github上,你有两个因素需要授权,请首先遵循这个教程: Github手动授权
这部分很容易,在任何文件夹运行:
$ bloom-release foo --rosdistro kinetic
其中foo是存储库的名称(在ROS发行版中使用的名称)和kinetic是你想要运行的发布ros分布版本的名称,除非其他制定,否则,"track"的含义和rosdistro一致。
这个命令将获取你的发布存储库,运行git-bloom-release <track>,然后将你的更改推到托管的发布存储库,然后将所获取的发布存储库丢弃,并最终为你打开一个pull请求。
就是这样。
如果你从某人手中接过一个已经被释放的pkg,然后运行bloom-release,你可以查看像这样的情况。在这种情况下,请求访问该存储库。
通知构建工厂
如果自动的pull请求不起作用,那么你需要手动打开一个pull请求,通知build farm,你有一个新版本的包要构建。
对于每个ROS分布,有一个在Github上托管的发行版文件,因为它是:
https://github.com/ros/rosdistro/blob/master/kinetic/distribution.yaml
你可以通过访问上面的URL并单击edit按钮来打开这个文件的pull请求(注意:你必须登录到Github才能工作),进行你的更改,然后单击页面右下角的"Propose Changes"。
要更新你的版本,只需在列表中找到你的存储库并更新相关的版本。请注意,你必须使用完整版本,这是你包的版本,加上由连字符分隔的释放增量号。每次发布相同版本的包时,都会增加释放增量号,这可能发生在向发布存储库添加补丁或更改发布设置时。