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

extensions: support for content sharing for ROS #4221

Merged
merged 87 commits into from
Sep 14, 2023

Conversation

artivis
Copy link
Contributor

@artivis artivis commented Jun 19, 2023

This PR introduces the support of content sharing for ROS together with a few extensions that make building a ROS content sharing snap seamless.

To that effect several snaps meant to distribute ROS through content-sharing were created and are available on the store (hidden, e.g. ros-foxy-ros-base & ros-foxy-ros-base-dev)

This PR is large as it concerns,

  • core20 & 22 (ROS Noetic, Foxy, Humble)
  • colcon, catkin, catkin-tools plugins

To note:

  • requires the 'dev' snap providing the build-time material to execute a script listing all ROS packages it contains when it's built

  • Have you followed the guidelines for contributing?

  • Have you signed the CLA?

  • Have you successfully run make lint?

  • Have you successfully run pytest tests/unit?


@artivis
Copy link
Contributor Author

artivis commented Jun 23, 2023

Not sure why pyright is failing here. It seems unrelated to this PR tho. If anyone has a pointer?

@artivis artivis marked this pull request as ready for review June 27, 2023 07:35
@mr-cal
Copy link
Collaborator

mr-cal commented Jun 29, 2023

Tracking with CRAFT-1848

Copy link
Collaborator

@mr-cal mr-cal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! I have no concerns with the design or implementation. My feedback is minor and related to linters and best practices.

I see two blockers:

  1. You will need to resolve the conflicts with the main branch
  2. You will need to rebase onto Sergio's upcoming feature to make extensions part plugin aware (scheduled for this pulse)

snapcraft/extensions/_ros2_humble_meta.py Outdated Show resolved Hide resolved
snapcraft/parts/plugins/_ros.py Outdated Show resolved Hide resolved
snapcraft/parts/plugins/_ros.py Outdated Show resolved Hide resolved
tests/unit/parts/extensions/test_ros2_humble_meta.py Outdated Show resolved Hide resolved
tests/unit/parts/plugins/test_colcon.py Show resolved Hide resolved
tests/unit/parts/extensions/test_ros2_humble_meta.py Outdated Show resolved Hide resolved
tests/unit/parts/plugins/test_colcon.py Outdated Show resolved Hide resolved
@artivis
Copy link
Contributor Author

artivis commented Jul 10, 2023

I see two blockers:

  1. You will need to resolve the conflicts with the main branch
  2. You will need to rebase onto Sergio's upcoming feature to make extensions part plugin aware (scheduled for this pulse)

Would you prefer that I merge or rebase?

@mr-cal
Copy link
Collaborator

mr-cal commented Jul 10, 2023

Would you prefer that I merge or rebase?

No preference. It will get squash-merged in the end, so whichever path is easier for you is fine.

@mr-cal
Copy link
Collaborator

mr-cal commented Jul 12, 2023

#4271 contains the functionality for extensions to be part plugin aware

artivis and others added 23 commits July 13, 2023 09:41
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
@artivis artivis force-pushed the feature/ros_content_sharing branch from ad72ee5 to 2fd47e4 Compare July 13, 2023 10:00
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
@artivis artivis force-pushed the feature/ros_content_sharing branch from 2fd47e4 to 2d5b98a Compare July 13, 2023 14:48
@codecov-commenter
Copy link

codecov-commenter commented Jul 13, 2023

Codecov Report

Merging #4221 (43e3aa2) into main (9680075) will decrease coverage by 0.07%.
Report is 1 commits behind head on main.
The diff coverage is 84.85%.

❗ Current head 43e3aa2 differs from pull request most recent head b08702e. Consider uploading reports for the commit b08702e to get more accurate results

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

@@            Coverage Diff             @@
##             main    #4221      +/-   ##
==========================================
- Coverage   89.20%   89.13%   -0.07%     
==========================================
  Files         300      315      +15     
  Lines       20639    21037     +398     
==========================================
+ Hits        18410    18752     +342     
- Misses       2229     2285      +56     
Files Changed Coverage Δ
snapcraft_legacy/plugins/v2/_ros.py 48.06% <35.89%> (-3.56%) ⬇️
snapcraft/parts/plugins/_ros.py 51.06% <39.47%> (-4.18%) ⬇️
...oject_loader/_extensions/ros1_noetic_perception.py 87.50% <87.50%> (ø)
...al/project_loader/_extensions/ros1_noetic_robot.py 87.50% <87.50%> (ø)
...project_loader/_extensions/ros1_noetic_ros_base.py 87.50% <87.50%> (ø)
...project_loader/_extensions/ros1_noetic_ros_core.py 87.50% <87.50%> (ø)
...l/project_loader/_extensions/ros2_foxy_ros_base.py 87.50% <87.50%> (ø)
...l/project_loader/_extensions/ros2_foxy_ros_core.py 87.50% <87.50%> (ø)
...al/project_loader/_extensions/_ros1_noetic_meta.py 93.93% <93.93%> (ø)
...rnal/project_loader/_extensions/_ros2_foxy_meta.py 96.29% <96.29%> (ø)
... and 12 more

... and 4 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@artivis
Copy link
Contributor Author

artivis commented Jul 17, 2023

The PR was rebased on top of main and thus on top of #4271.

Note that I had to disable the test_extensions_all_combinations_validate test which execution exploded with the addition of the new extensions in this PR.

Signed-off-by: artivis <jeremie.deray@canonical.com>
extensions/ros2/launch Show resolved Hide resolved
extensions/ros2/launch Show resolved Hide resolved
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Signed-off-by: artivis <jeremie.deray@canonical.com>
Copy link
Collaborator

@mr-cal mr-cal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1, I have no further concerns.

@sergiusens sergiusens changed the title Support content sharing for ROS extensions: support for content sharing for ROS Aug 11, 2023
@MirkoFerrati
Copy link
Contributor

@sergiusens @mr-cal what's the ETA on merging this? can we help somehow?
I see there are still 2 unresolved conversations, are those the blockers?

@MirkoFerrati
Copy link
Contributor

@sergiusens any update here?

@mr-cal
Copy link
Collaborator

mr-cal commented Sep 14, 2023

@sergiusens @mr-cal what's the ETA on merging this? can we help somehow? I see there are still 2 unresolved conversations, are those the blockers?

Hey @MirkoFerrati, sorry I missed your ping. Since Sergio and I both approved this, I'll get it merged today.

@sergiusens
Copy link
Collaborator

@MirkoFerrati sorry about that, this should have been merged when I merged back main back then

@mr-cal mr-cal merged commit 374c5c6 into canonical:main Sep 14, 2023
11 checks passed
@MirkoFerrati
Copy link
Contributor

@sergiusens no worries, I didn't want to spam with the pings as I didn't know the status. Next time I see "main" merged in the PR branch I will know how it works and ping you more often! Thanks for the fast response today!

@sergiusens
Copy link
Collaborator

@MirkoFerrati no sweat, re-requesting review also works as it shows up in our review queue more prominently

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.

6 participants