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

Add Ubuntu 24.04 Noble and switch Rolling to it #658

Merged
merged 5 commits into from
Mar 27, 2024

Conversation

christophebedard
Copy link
Member

@christophebedard christophebedard commented Mar 11, 2024

Relates to ros-tooling/action-ros-ci#842

See also ros-tooling/setup-ros-docker#69 (required for the Test on a setup-ros-docker container CI job)

Closes #659

Rolling is moving to Ubuntu 24.04 Noble: https://discourse.ros.org/t/preparing-ros-2-rolling-for-the-transition-to-ubuntu-24-04/35673.

Note: the ubuntu-24.04GitHub runner is not available yet: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#choosing-github-hosted-runners. I changed the workflow configs to use a Ubuntu Noble Docker image on top of ubuntu-latest. We could just keep this and not have to remove the workaround + bring it back for Ubuntu 26.04.

I also removed some apt from the list for Noble, since we can just rely on rosdep:

  1. Some flake8 plugins, see: Remove the instructions to install some flake8 plugins by hand. ros2/ros2_documentation#3945
  2. libtinyxml2-dev installed for tinyxml2_vendor

@christophebedard christophebedard self-assigned this Mar 11, 2024
@christophebedard christophebedard requested a review from a team as a code owner March 11, 2024 17:58
@christophebedard christophebedard requested review from gbiggs and jhdcs and removed request for a team March 11, 2024 17:58
Copy link

codecov bot commented Mar 11, 2024

Codecov Report

Attention: Patch coverage is 57.14286% with 3 lines in your changes are missing coverage. Please review.

Project coverage is 91.09%. Comparing base (ec1b086) to head (0876b68).

Files Patch % Lines
src/setup-ros-linux.ts 57.14% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #658      +/-   ##
==========================================
- Coverage   92.47%   91.09%   -1.38%     
==========================================
  Files           8        8              
  Lines         186      191       +5     
  Branches       22       24       +2     
==========================================
+ Hits          172      174       +2     
- Misses         14       17       +3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@christophebedard
Copy link
Member Author

The desktop variant seems to be available for Rolling on Noble, but not desktop_full: https://repo.ros2.org/status_page/ros_rolling_default.html?q=variant. So I assume that not all packages are available yet. We could still merge this in.

ct2034 added a commit to ros/diagnostics that referenced this pull request Mar 26, 2024
Signed-off-by: Christian Henkel <christian.henkel2@de.bosch.com>
@ct2034
Copy link

ct2034 commented Mar 26, 2024

@christophebedard
Copy link
Member Author

christophebedard commented Mar 26, 2024

Looks like there is an incompatibility between python3-flake8 (5.0.4) and python3-pycodestyle (2.11.1) on Noble that leads to this runtime (test-time) error:

flake8.exceptions.FailedToLoadPlugin: Flake8 failed to load plugin "pycodestyle" due to cannot import name 'missing_whitespace_around_operator' from 'pycodestyle' (/usr/lib/python3/dist-packages/pycodestyle.py).

See this CI job from the action-ros-ci PR: https://github.com/ros-tooling/action-ros-ci/actions/runs/8425209031/job/23070850980?pr=842#step:7:3242.

The apt version should hopefully eventually be fixed, but in the meantime we could try to install flake8<5 from pip like what is done in ros2/ci#761, or we could try to install a newer version from noble-proposed like what is done in ros2/ci#765.

@christophebedard
Copy link
Member Author

christophebedard commented Mar 26, 2024

I can confirm. It works for me: https://github.com/ros/diagnostics/actions/runs/8439160454/job/23113100580?pr=335

You're not hitting the issue I mentioned in my comment above?

Ah, probably because the package you're testing doesn't use flake8.

@ct2034
Copy link

ct2034 commented Mar 26, 2024

Yes, I can also confirm the flake8 issue.

@ct2034
Copy link

ct2034 commented Mar 26, 2024

The downgrade to flake8<5 fixes the above-mentioned error.
But on one of the packages I now get a new one:
https://github.com/ros/diagnostics/actions/runs/8439870785/job/23115500760?pr=335

      File "/usr/local/lib/python3.12/dist-packages/flake8/plugins/manager.py", line 261, in _load_entrypoint_plugins
          eps = importlib_metadata.entry_points().get(self.namespace, ())
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'EntryPoints' object has no attribute 'get'

@christophebedard christophebedard force-pushed the christophebedard/ubuntu-noble-rolling branch from 5b12f23 to 04cf11b Compare March 26, 2024 17:48
@christophebedard
Copy link
Member Author

christophebedard commented Mar 26, 2024

It may be because pip seems to install other (newer?) versions of some packages when you do pip3 install --break-system-packages 'flake8<5', so you'd need to figure out which ones lead to this incompatibility.

Can you try to do ros2/ci#765 instead of using pip? If it works, then I'll just do that here.

@christophebedard
Copy link
Member Author

Can you try to do ros2/ci#765 instead of using pip? If it works, then I'll just do that here.

Well I did it and it seems to work!

Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
We can rely on rosdep for:

1. Some flake8 plugins, see:
   ros2/ros2_documentation#3945
2. libtinyxml2-dev from tinyxml2_vendor
3. libasio-dev for Fast DDS

Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
@christophebedard christophebedard force-pushed the christophebedard/ubuntu-noble-rolling branch from 1a3d4c1 to 0876b68 Compare March 27, 2024 16:15
@christophebedard
Copy link
Member Author

Since this works, I'll go ahead and merge it. I may not create a new release just yet since the transition to Noble is not officially complete. I'll let people using setup-ros@master use/test it.

@christophebedard christophebedard merged commit 326be42 into master Mar 27, 2024
17 of 20 checks passed
@christophebedard christophebedard deleted the christophebedard/ubuntu-noble-rolling branch March 27, 2024 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

rosdep: command not found when running on noble
2 participants