Internal Publishing - cyberbotics/webots_ros2 GitHub Wiki

Release Status

Whenever a change is committed to the master branch of this repository, we should create a new version and ensure it is listed for the next sync of each ROS 2 distribution we support, that is:

The new versions of the Webots ROS 2 packages should appear in the SYNC list with the following icons:

image

Updating the Packages

Make sure python command point to python3 and not python2.

Package versions

Update all the packages to the new version by running the version_increase script.

./scripts/version_increase.bash 2023.1.3

Changelogs

Each package contains its CHANGELOG.rst file. These files must be updated manually for each new feature. For consistency matter, they should be modified the following way:

  • Every change made to a package must be reflected in its CHANGELOG.rst file. For example, if a new feature is added to webots_ros2_epuck and webots_ros2_mavic, their respective changelogs should be updated, i.e. webots_ros2_epuck/CHANGELOG.rst and webots_ros2_mavic/CHANGELOG.rst.
  • All changes for a new version reported in the packages should also be reported in the main CHANGELOG.rst file, contained in the webots_ros2 package.

Tag

Make sure that every branch version is up to date, the changelogs date are set, and create a tag corresponding to the version:

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

Bloom Release

Premise

Your GitHub username should be listed in this file as a member of Cyberbotics' team. If it is not there, please open a PR to add it and notify me about it.

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 git@github 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.

If already installed, make sure it is up to date.

pip3 install bloom --upgrade

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

bloom-release -r humble 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 the version and the last one if token was already created), 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 new version, e.g, 2023.1.3 (or {auto})
  • Release Tag: same as version, e.g, 2023.1.3 (it can also be master, hash or anything as long as it can be checked-out)
  • Upstream Devel Branch: master
  • ROS Distro: humble
  • 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).

Create the release assets

Go to webots_ros2/releases and press the Draft a new release button.

Choose the tag corresponding to your new version. Put it also as title. In the description field, write the following by replacing by your data:

**Targets Webots RXXXXx**

Notable changes:
<changes reported in the main changelog file>

Tick the Set as the latest release box and publish the release.

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.