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:
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 towebots_ros2_epuck
andwebots_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.