后续发布

本指南介绍了如何发布已经发布过的ROS软件包的新版本。

成为发布团队的一员

如果您不是具有对发布存储库的写入访问权限的发布团队成员,请参阅 加入发布团队

安装依赖项

根据你的平台安装你将在接下来的步骤中使用的工具:

sudo apt install python3-bloom python3-catkin-pkg

设置个人访问令牌

警告

如果您的计算机上存在文件 ~/.config/bloom,那么您很可能之前已经进行过这个操作,所以您应该跳过此部分。

在发布过程中,将执行多个需要密码验证的 HTTPS Git 操作。为了避免反复询问密码,将设置一个 个人访问令牌 (PAT)。如果您的 GitHub 帐户已设置了多因素身份验证,必须 设置一个个人访问令牌。

按照以下步骤创建个人访问令牌:

  1. 登录 GitHub 并转到 个人访问令牌

  2. 点击 生成新令牌 按钮。

  3. Note 设置为类似于 Bloom token 的内容。

  4. Expiration 设置为 无过期时间

  5. 选中 public_repoworkflow 复选框。

  6. 点击 生成令牌 按钮。

创建令牌后,您将返回到*个人访问令牌*页面。复制突出显示的绿色字母数字令牌

将您的GitHub用户名和PAT保存到名为``~/.config/bloom``的新文件中,格式如下:

{
   "github_user": "<your-github-username>",
   "oauth_token": "<token-you-created-for-bloom>"
}

确保存储库是最新的。

请确保:

  • 您的代码仓库已托管在诸如GitHub之类的远程服务器上。

  • 您在计算机上克隆了该代码仓库,并且处于正确的分支上。

  • 远程代码仓库和您的克隆版本都是最新的。

更新变更日志

为了您的用户和开发人员,请确保变更日志简明扼要且保持最新。

catkin_generate_changelog

在编辑器中打开所有的 CHANGELOG.rst 文件。您会看到 catkin_generate_changelog 自动生成了一个即将发布的部分,其中包含了提交信息的注释:

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package your_package
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Forthcoming
-----------
* you can modify this commit message
* and this

整理提交信息列表,以简明扼要地传达自上次发布以来软件包所做的重要更改,并**提交所有的 CHANGELOG.rst 文件。**不要修改 Forthcoming 标题。

提升软件包版本

每个软件包的发布版本必须具有比上一个发布版本更高的唯一版本号。运行:

catkin_prepare_release

执行以下操作:

  1. 在``package.xml``中增加软件包版本

  2. 在``CHANGELOG.rst``文件中用``版本(日期)``(例如``0.0.1(2022-01-08)``)替换``即将发布``标题

  3. 提交这些更改

  4. 创建一个标签(例如``0.0.1``)

  5. 将更改和标签推送到您的远程存储库

注解

默认情况下,软件包的补丁版本会递增,例如从``0.0.0``增加到``0.0.1``。若要递增次要版本或主要版本,请运行``catkin_prepare_release --bump minor``或``catkin_prepare_release --bump major``命令。有关详细信息,请参阅``catkin_prepare_release --help``。

Bloom发布

运行以下命令,将``my_repo``替换为包含软件包的存储库名称:

bloom-release --rosdistro humble my_repo

Bloom将自动为您创建针对`rosdistro <https://github.com/ros/rosdistro>`_的拉取请求。

下一步

一旦您的拉取请求被提交,通常在一两天内,rosdistro的维护人员将会审查并合并您的拉取请求。如果您的软件包构建成功,在24-48小时内,您的软件包将会在**ros-testing**存储库中可用,您可以在那里:doc:测试预发布的二进制文件

大约每两到四周,发行版的发布经理会手动将ros-testing的内容与主要ROS仓库同步。这时候你的软件包才会真正对整个ROS社区可用。要获取下一次同步的更新信息,请订阅ROS Discourse上的“打包和发布管理”分类:<https://discourse.ros.org/c/release/16>。