Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jazzy migration #628

Draft
wants to merge 37 commits into
base: main
Choose a base branch
from
Draft

Jazzy migration #628

wants to merge 37 commits into from

Conversation

Flova
Copy link
Member

@Flova Flova commented Nov 23, 2024

No description provided.

@JanNiklasFeld
Copy link
Contributor

TODO: Fix cppformat in Jazzy

@Flova Flova changed the title Jazzy devcontainer Jazzy migration Nov 24, 2024
README.md Show resolved Hide resolved
@Flova
Copy link
Member Author

Flova commented Nov 24, 2024

The CI seems to fail due to floating point errors in the team_communication.

@texhnolyze
Copy link
Contributor

I've adjusted the team_communication snapshots

texhnolyze and others added 9 commits December 5, 2024 17:44
starting from `~` instead of using the whole path
to prevent issues when interacting with the repository both from within
the container and outside the container, due to permissions not being
correct
in `Dockerfile`, because the `updateRemoteUserUID` setting of the
devcontainer does not change the `GID` of the `containerUser`
dynamically to the one of the host user if the group exists in the
container already microsoft/vscode-remote-release#2402.

In our case the `containerUser` is set to `bitbots`, because it
automatically uses the last `USER` instruction from the `Dockerfile` and
the `remoteUser` inherits from `containerUser`.

For reference see: microsoft/vscode-remote-release#1155
as with upgrade to jazzy or packages floating point handling seems to
have changed slightly
@texhnolyze texhnolyze force-pushed the feature/jazzy-ubuntu2404-devcontainer branch from 4b8b0e9 to 8ecfb93 Compare December 5, 2024 16:44
@Flova
Copy link
Member Author

Flova commented Dec 12, 2024

TODO after merge: Revert #634

Flova and others added 12 commits December 12, 2024 10:50
to ensure that the CI `colcon test` run works, because with a change to
python 3.12 the `unittest` standard library used by default with colcon
now exits with an error code of 5 for an empty test suite.

See: colcon/colcon-core#678
See: python/cpython#102051
When using the colcon `--symlink-install` flag (as we usually do),
one gets shown the following huge warning for every Python-package:

```
/usr/lib/python3/dist-packages/setuptools/command/develop.py:40: EasyInstallDeprecationWarning: easy_install command is deprecated.
!!

        ********************************************************************************
        Please avoid running ``setup.py`` and ``easy_install``.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See pypa/setuptools#917 for details.
        ********************************************************************************

!!
  easy_install.initialize_options(self)
---
```

Has been solved by: ros2/ros2#1577 (comment)
This resolves the following cmake warning, that seems to appear when pybind is in use:
```
lto-wrapper: warning: using serial compilation of 2 LTRANS jobs
lto-wrapper: note: see the ‘-flto’ option documentation for more information
```
```
--- stderr: bitbots_webots_sim
CMake Warning at /opt/ros/jazzy/share/gazebo_msgs/cmake/gazebo_msgs-extras.cmake:6 (message):
  This gazebo_msgs package hosts messages designed initially for Gazebo
  Classic which is not available on ROS 2 Jazzy which is unavailable on ROS 2
  Jazzy.  The new Gazebo uses the ros_gz bridge message vailable
  at:https://github.com/gazebosim/ros_gz/tree/ros2/ros_gz_bridge#bridge-communication-between-ros-and-gazebo

  To avoid this warning and use this Gazebo Classic messages anyway you can
  use flag -DIGNORE_GAZEBO_MSGS_WARNING
Call Stack (most recent call first):
  /opt/ros/jazzy/share/gazebo_msgs/cmake/gazebo_msgsConfig.cmake:41 (include)
  CMakeLists.txt:18 (find_package)
```
jaagut added 3 commits January 4, 2025 22:52
```
CMake Warning (dev) at CMakeLists.txt:15 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

This warning is for project developers.  Use -Wno-dev to suppress it.
```
@jaagut
Copy link
Member

jaagut commented Jan 5, 2025

At this point, my devcontainer (built 6 days ago) only has a small warning on bitbots_pybullet_sim:

--- stderr: bitbots_pybullet_sim
CMake Warning:
  Manually-specified variables were not used by the project:

    CATKIN_INSTALL_INTO_PREFIX_ROOT
    CATKIN_SYMLINK_INSTALL

Now, I noticed that my bitbots_main was not clean. Therefore, I recloned and rebuilt the devcontainer. Finally, I can see the same compile failures and warnings from the CI!

@jaagut
Copy link
Member

jaagut commented Jan 5, 2025

Since the latest apt-release, the CI and local builds fail because realtime_tools (transitive dependency) deprecated its .h header files (ros-controls/realtime_tools#206), but the control_toolbox's fix (ros-controls/control_toolbox#247) has not yet been released. So, we have to wait for this or turn off warnings being treated as errors in the meantime. This effects bitbots_dynup, bitbots_dynamic_kick, and bitbots_quintic_walk.

Similar issues appear with other components, but not as errors. We have to wait for moveit/moveit2#3197 and then update:

  • bitbots_moveit_bindings
  • bitbots_ros_control
  • bitbots_heaad_mover
  • bitbots_dynup
  • bitbots_dynamic_kick
  • bitbots_quintic_walk

Once this is done, all issues are resolved (except the minor one listed in my comment above)!

EDIT: I have migrated everything to .hpp (where available) in our @bit-bots repositories. And I have turned off "warnings as errors" temporarily in 65d0099
We should revert this commit, once ros-controls/control_toolbox#247 is released in apt

@jaagut
Copy link
Member

jaagut commented Jan 5, 2025

I have opened an issue #642 to turn warnings as errors back on.

@jaagut
Copy link
Member

jaagut commented Jan 5, 2025

Now, only this warning remains at compilation. Nothing has yet been executed. We should test thoroughly in sim and on robot.

At this point, my devcontainer (built 6 days ago) only has a small warning on bitbots_pybullet_sim:

--- stderr: bitbots_pybullet_sim
CMake Warning:
  Manually-specified variables were not used by the project:

    CATKIN_INSTALL_INTO_PREFIX_ROOT
    CATKIN_SYMLINK_INSTALL

Now, I noticed that my bitbots_main was not clean. Therefore, I recloned and rebuilt the devcontainer. Finally, I can see the same compile failures and warnings from the CI!

@Flova
Copy link
Member Author

Flova commented Jan 5, 2025

EDIT: I have migrated everything to .hpp (where available) in our @bit-bots repositories. And I have turned off "warnings as errors" temporarily in 65d0099
We should revert this commit, once ros-controls/control_toolbox#247 is released in apt

We can also just build this from source for now by adding it to lib

@Flova
Copy link
Member Author

Flova commented Jan 5, 2025

Now, only this warning remains at compilation

This has been addressed in #643

@jaagut
Copy link
Member

jaagut commented Jan 5, 2025

We can also just build this from source for now by adding it to lib

I know, but that's more effort and we get unclean lib/ but I guess, that would be resolved with a make fresh libs...

Btw, do you know, why we had imu_tools in our lib/? I guess it was just not fully available in the past.

@Flova Flova mentioned this pull request Jan 5, 2025
6 tasks
@Flova
Copy link
Member Author

Flova commented Jan 5, 2025

Btw, do you know, why we had imu_tools in our lib/? I guess it was just not fully available in the past

I think it was not available in the package sources when we started out with ros2 or something like this.

@Flova
Copy link
Member Author

Flova commented Jan 5, 2025

TODO: revert #646 on this branch if it is merged into main and this branch is updated. These are iron specific fixes.

Edit: Done

@Flova
Copy link
Member Author

Flova commented Jan 5, 2025

The second merge was weird but needed for some reason

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: 🏗 In progress
Development

Successfully merging this pull request may close these issues.

4 participants