0
$\begingroup$

Rosanswers logo

I am about to check out the source of ros2 foxy, using this command vcs import src < ros2.repos. The file ros.repos is here https://github.com/ros2/ros2/blob/master/ros2.repos.

The GitHub repository has a branch called foxy-release, and another branch called foxy. How are they different and which branch should be used?


Originally posted by Zhoulai Fu on ROS Answers with karma: 186 on 2021-02-17

Post score: 1


Original comments

Comment by gvdhoorn on 2021-02-17:
It was only a comment, but I believe this was discussed in #q371016 as well:

If you replace eloquent-release with eloquent, you'd get the state of the branches targetting Eloquent in those repositories, which is potentially different from the packages released into Eloquent.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

If you want to checkout the source code for Foxy, you should use the ros2.repos file from the foxy branch. This is the branch referenced by the "install from source" instructions for Foxy. It will give you the latest development for Foxy.

The master branch is always used for the next upcoming release (currently Galactic), and is not compatible with Foxy.

The foxy-release branch using git tags for each source repository, representing what we call a "patch release". This is a more formal release, representing a snapshot of all the core packages that we used to produce binaries for all platforms (e.g. archives for Windows, macOS, and Linux).


Originally posted by jacobperron with karma: 1870 on 2021-02-17

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by gvdhoorn on 2021-02-18:
From a user perspective, the "source code for Foxy" will typically be understood to mean

the code used to build the packages I install when running apt install ros-foxy-....

That's different from "the current state of development of Foxy", which is what the foxy branch gets you.

With that in mind, it might be clearer to just say:

$ROS_DISTRO-release contains/points to the code used to build the binary packages for each Foxy release. The $ROS_DISTRO branches are the development branches, which may have already changed from what was released during the last release.

Comment by jacobperron on 2021-02-18:
Unfortunately, it's not completely true that the $ROS_DISTRO-release branch points to the code used for all binary packages. Strictly speaking it points to the code that is used to produce "patch release" tarballs. If the user is installing from debs on Ubuntu, then they are getting whatever version of was most recently bloomed (and synced).

Typically, if a user wants to build Foxy from source, they are wanting to make changes to the code (and hopefully contribute back!). Or maybe they're trying to get a recent patch that hasn't been released yet. So, I would recommend working with the latest set of fixes. If you are not planning to change code, then I'd recommend installing the binaries instead.

Comment by gvdhoorn on 2021-02-18:\

Unfortunately, it's not completely true that the $ROS_DISTRO-release branch points to the code used for all binary packages. Strictly speaking it points to the code that is used to produce "patch release" tarballs.

that is certainly unfortunately.

Is this documented somewhere?

Comment by jacobperron on 2021-02-18:
I thought so, but couldn't find it. We could probably document this caveat on this page: https://index.ros.org/doc/ros2/Installation/Maintaining-a-Source-Checkout/#release-versions

Comment by jacobperron on 2021-02-18:
I've proposed adding a note to the docs: https://github.com/ros2/ros2_documentation/pull/1120

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.