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