发布新版本catkin功能包

默认情况下,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"。

要更新你的版本,只需在列表中找到你的存储库并更新相关的版本。请注意,你必须使用完整版本,这是你包的版本,加上由连字符分隔的释放增量号。每次发布相同版本的包时,都会增加释放增量号,这可能发生在向发布存储库添加补丁或更改发布设置时。

Wiki: cn/bloom/Tutorials/ReleaseCatkinPackage (last edited 2020-05-19 00:43:34 by Playfish)