发布 Track

什么是 Track?

Bloom 要求用户在首次发布软件包时输入配置信息。 将此类配置存储在发布存储库中是有益的,这样我们就不必手动输入后续版本不会更改的配置。

由于在为不同的 ROS 发行版发布软件包时某些配置会有所不同,因此 bloom 使用 发布轨道 来存储每个发行版的发布配置。

按照惯例,您应该创建与您要发布的 ROS 发行版同名的轨道。

所有发布轨道配置都存储在发布存储库主分支上的“tracks.yaml”中。

轨道配置

轨道配置与 bloom 的提示一起进行了更详细的说明。

发布存储库 URL

这是您的发布存储库的 URL,如果您的发布存储库托管在 ros2-gbp 上,则应采用“https://github.com/ros2-gbp/my_repo-release.git”的形式。

No reasonable default release repository url could be determined from previous releases.
Release repository url [press enter to abort]:

粘贴您的发布存储库 URL 并按 Enter。

Bloom 可能还会询问您有关初始化新存储库的信息,如下所示:

Freshly initialized git repository detected.
An initial empty commit is going to be made.
Continue [Y/n]?

只需按 Enter 即可接受默认值。

存储库名称

存储库名称很简单,但建议将其设置为项目名称。

Repository Name:
   upstream
      Default value, leave this as upstream if you are unsure
   <name>
      Name of the repository (used in the archive name)
   ['upstream']:

输入您的项目名称(例如“my_project”)并按 Enter。

上游存储库 URI

上游存储库 是您的源代码所在的存储库。 这很可能是指向托管在 GitHub 或 GitLab 等 git 托管服务上的项目的 https 链接。

Upstream Repository URI:
   <uri>
      Any valid URI. This variable can be templated, for example an svn url
      can be templated as such: "https://svn.foo.com/foo/tags/foo-:{version}"
      where the :{version} token will be replaced with the version for this release.
   [None]:

确保**使用 https 地址**(例如 https://github.com/my_organization/my_repo.git)而不是 ssh 地址。

上游 VCS 类型

这是 上游存储库 URI 的版本控制系统 (VCS) 类型。 您必须指定存储库使用的 vcs 类型,可以是 svngithgtar

Upstream VCS Type:
   svn
      Upstream URI is a svn repository
   git
      Upstream URI is a git repository
   hg
      Upstream URI is a hg repository
   tar
      Upstream URI is a tarball
   ['git']:

大多数存储库将使用 git,但一些旧存储库可能使用 hg 或 svn。

版本

这是您要发布的软件包的版本。(例如“1.0.3”)

Version:
   :{ask}
      This means that the user will be prompted for the version each release.
      This also means that the upstream devel will be ignored.
   :{auto}
      This means the version will be guessed from the devel branch.
      This means that the devel branch must be set, the devel branch must exist,
      and there must be a valid package.xml in the upstream devel branch.
   <version>
      This will be the version used.
      It must be updated for each new upstream version.
   [':{auto}']:

将其设置为 ``:{auto}``(默认和推荐设置)将自动从 devel 分支的 package.xml 中确定版本。

将其设置为 :{ask} 将在每次使用 bloom 运行发布时弹出提示,询问版本。

发布标签

发布标签是指您要从哪个标签或分支导入代码。

Release Tag:
   :{version}
      This means that the release tag will match the :{version} tag.
      This can be further templated, for example: "foo-:{version}" or "v:{version}"

      This can describe any vcs reference. For git that means {tag, branch, hash},
      for hg that means {tag, branch, hash}, for svn that means a revision number.
      For tar this value doubles as the sub directory (if the repository is
      in foo/ of the tar ball, putting foo here will cause the contents of
      foo/ to be imported to upstream instead of foo itself).
   :{ask}
      This means the user will be prompted for the release tag on each release.
   :{none}
      For svn and tar only you can set the release tag to :{none}, so that
      it is ignored.  For svn this means no revision number is used.
   [':{version}']:

将其设置为 ``:{version}``(默认和推荐设置)将使发布标记与版本标记匹配。

不太常见的设置是将其设置为分支名称,以便在从上游项目发布时始终拉入该分支。

或者,如果您希望每次发布时都提示您输入不同的标记,请输入 :{ask}。 如果上游项目有频繁的标记发布,并且您希望每次发布时都引用新标记,则 :{ask} 很有用。

上游开发分支

上游开发分支是您的 上游存储库 中的分支名称。 如果您为每个 ROS 发行版使用单独的分支,则此字段对于每个发布轨道都会有所不同。 当 版本 设置为 :{auto} 时,它用于确定您要发布的软件包的版本。

Upstream Devel Branch:
   <vcs reference>
      Branch in upstream repository on which to search for the version.
      This is used only when version is set to ':{auto}'.
   [None]:

要从名为“rolling”的分支发布,请输入“rolling”。 如果将其保留为“无”,则版本将根据存储库的默认分支确定(不建议这样做)。

ROS 发行版

这是您计划将软件包发布到的发行版。

ROS Distro:
   <ROS distro>
      This can be any valid ROS distro, e.g. indigo, kinetic, lunar, melodic
   ['indigo']:

如果您计划发布到 ROS rolling,请输入“rolling”。

补丁目录

这是发布的所有附加补丁所在的目录。

Patches Directory:
   <path in bloom branch>
      This can be any valid relative path in the bloom branch. The contents
      of this folder will be overlaid onto the upstream branch after each
      import-upstream.  Additionally, any package.xml files found in the
      overlay will have the :{version} string replaced with the current
      version being released.
   :{none}
      Use this if you want to disable overlaying of files.
   [None]:

向发布版本添加附加补丁是一项很少使用的功能。 对于几乎所有软件包,这应保留为默认的“无”。

发布仓库推送 URL

Release Repository Push URL:
   :{none}
      This indicates that the default release url should be used.
   <url>
      (optional) Used when pushing to remote release repositories. This is only
      needed when the release uri which is in the rosdistro file is not writable.
      This is useful, for example, when a releaser would like to use a ssh url
      to push rather than a https:// url.
   [None]:

大多数情况下可以保留为默认值。