Internal Publishing - cyberbotics/webots_ros2 Wiki

Updating the Packages

Make sure python command point to python3 and not python2.

Tag

Make sure that every branch version is up to date, the changelogs date are set, and create a tag corresponding to the version (specified in the package.xml files, make also sure the version in these files is up to date):

git tag -a 1.0.0 -m "Version 1.0.0"
git push origin 1.0.0

Bloom Release

Premise

If you use ssh for authentication on Github, then it is suggested to add the following lines to your .gitconfig otherwise you won't be able to authenticate (changing the url from https to ssh in the bloom-release command below would result in the [email protected] url being being pushed to rosdistro which is not something we wish to do):

# Always use ssh for github, even if the remote URL uses https or git
[url "[email protected]:"]
  insteadOf = git://github.com/
[url "[email protected]:"]
  insteadOf = https://github.com/

Procedure

Use pip3 install bloom to install bloom.

Launch bloom release to update the content of the ros2-gbp/webots_ros2-release repo. Here is an example for Foxy but the same procedure is valid for other versions of ROS (e.g., Galaxy), we ask for the webots_ros2 package because this is the root package.

bloom-release -r foxy webots_ros2 --override-release-repository-url https://github.com/ros2-gbp/webots_ros2-release.git --edit

You can say yes to all the default options (except for last one), which should be:

  • Repository Name: webots_ros2
  • Upstream Repository URI: https://github.com/cyberbotics/webots_ros2.git
  • Upstream VCS Type: git
  • Version: should match the version, e.g, 1.2.3 (or {auto})
  • Release Tag: same as version, e.g, 1.2.3 (it can also be master, foxy, hash or anything as long as it can be checked-out)
  • Upstream Devel Branch: master
  • ROS Distro: foxy
  • Patches Directory: None
  • Release Repository Push URL: None (This indicates that the default release url should be used.)
  • Releasing complete, push to release repository?: Y
  • Would you like to create an OAuth token now: n (or y if one is not available yet)

In order for the the pull request to be automatically made on rosdistro, an auth token is required. Check the message written in the console in order to establish which privileges it should have.

ROS-Distro update

Preferably, it can be done automatically in the previous step or by calling the same command with the option --pull-request-only. Bloom will take care of filling everything up. Alternatively, it can be done manually by creating a PR on https://github.com/ros/rosdistro (the diff is shown at the end of the bloom-release procedure).

Debugging

To create a test Debian package navigate to the target package and:

source /opt/ros/${ROS_DISTRO}/local_setup.bash
bloom-generate rosdebian
fakeroot debian/rules binary

The Debian package will be generated in the parent directory.