首次发布
本指南解释了如何发布尚未发布的ROS 2软件包。由于在发布ROS软件包时有许多选项可用,本指南旨在涵盖最常见的情况,不涵盖每个特例。
成为发布团队的一员
您必须是一个:ref:`发布团队 <what-is-a-release-team>`的成员。如果您还不是发布团队的一员,请按照以下方式之一进行操作:
:ref:启动一个新的发布团队
创建一个新的发布仓库
你需要一个:ref:`发布仓库 <what-is-a-release-repository>`来发布一个软件包。请按照:ref:`创建一个新的发布仓库 <create-a-new-release-repository>`进行操作。
安装依赖项
根据你的平台安装你将在接下来的步骤中使用的工具:
sudo apt install python3-bloom python3-catkin-pkg
sudo dnf install python3-bloom python3-catkin_pkg
pip3 install -U bloom catkin_pkg
设置个人访问令牌
警告
如果您的计算机上存在文件 ~/.config/bloom
,那么您很可能之前已经进行过这个操作,所以您应该跳过此部分。
在发布过程中,将执行多个需要密码验证的 HTTPS Git 操作。为了避免反复询问密码,将设置一个 个人访问令牌 (PAT)。如果您的 GitHub 帐户已设置了多因素身份验证,必须 设置一个个人访问令牌。
按照以下步骤创建个人访问令牌:
登录 GitHub 并转到 个人访问令牌。
点击 生成新令牌 按钮。
将 Note 设置为类似于
Bloom token
的内容。将 Expiration 设置为 无过期时间。
选中
public_repo
和workflow
复选框。点击 生成令牌 按钮。
创建令牌后,您将返回到*个人访问令牌*页面。复制突出显示的绿色字母数字令牌。
将您的GitHub用户名和PAT保存到名为``~/.config/bloom``的新文件中,格式如下:
{
"github_user": "<your-github-username>",
"oauth_token": "<token-you-created-for-bloom>"
}
生成变更日志
使用以下命令为您的仓库中的每个软件包生成一个 CHANGELOG.rst
文件:
catkin_generate_changelog --all
在编辑器中打开所有的 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
执行以下操作:
在``package.xml``中增加软件包版本
在``CHANGELOG.rst``文件中用``版本(日期)``(例如``0.0.1(2022-01-08)``)替换``即将发布``标题
提交这些更改
创建一个标签(例如``0.0.1``)
将更改和标签推送到您的远程存储库
注解
默认情况下,软件包的补丁版本会递增,例如从``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 --new-track --rosdistro humble --track humble my_repo
小技巧
将提示你输入信息以配置一个新的轨道。在常见的场景中,比如:
你的软件包存储在一个名为
my_repo
的仓库中你正在发布一个名为
main
的分支该代码库托管在 GitHub 上,地址为
https://github.com/my_organization/my_repo.git
你的发布代码库位于
https://github.com/ros2-gbp/my_repo-release.git
你应按照以下提示进行回答:
配置 |
值 |
---|---|
|
|
|
|
|
|
|
|
注解
表格中的空单元格表示应使用默认值。只需按Enter键回答提示即可。
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>。