Merge lp://qastaging/~mterry/snapcraft/ros-project into lp://qastaging/~snappy-dev/snapcraft/core

Proposed by Michael Terry
Status: Rejected
Rejected by: Sergio Schvezov
Proposed branch: lp://qastaging/~mterry/snapcraft/ros-project
Merge into: lp://qastaging/~snappy-dev/snapcraft/core
Diff against target: 485 lines (+338/-29)
12 files modified
examples/ros/README (+7/-0)
examples/ros/meta/package.yaml (+3/-0)
examples/ros/meta/readme.md (+1/-0)
examples/ros/snapcraft.yaml (+141/-0)
plugins/ros-project.yaml (+7/-0)
snapcraft/__init__.py (+13/-10)
snapcraft/common.py (+14/-6)
snapcraft/plugin.py (+6/-3)
snapcraft/plugins/autotools_project.py (+4/-4)
snapcraft/plugins/cmake_project.py (+4/-4)
snapcraft/plugins/go14_project.py (+2/-2)
snapcraft/plugins/ros_project.py (+136/-0)
To merge this branch: bzr merge lp://qastaging/~mterry/snapcraft/ros-project
Reviewer Review Type Date Requested Status
Sergio Schvezov Disapprove
Review via email: mp+266099@code.qastaging.launchpad.net

Commit message

Add simple ROS project support.

This is very preliminary. You have to manually add all the depends for your leaf ROS project in the parts list (from catkin up).

This isn't very different from other project types (python3-project for example). But it does make it a bit annoying to deal with. So this is a sort of minimally-viable-product branch.

There is an example with an extensive dependency hierarchy. But it is not a real working example! It needs Ubuntu packages included that aren't captured in snapcraft.yaml (because they would conflict with each other). To fix that, we need to allow the ubuntu plugin to install multiple packages in one part or dependency-flattening support.

This plugin would really benefit from dependency-injecting-and-flattening support. That way it could automatically create the very verbose dependency hierarchy from a few top-level parts. And it could inject all the Ubuntu package dependencies that are listed in each component's package.xml. But that's stage 2. This first branch is just basic ROS support.

I do a new thing in this branch, which is to hold data in a plugin-wide cache dir (~/.cache/snapcraft/plugins/ros-project). I use this for the rosdistro information that tells us where each branch for a given project is, rather than download the whole git branch each time. Might be useful idea in other plugins too (like go1.4 for the Go tarball?).

Description of the change

Add simple ROS project support.

This is very preliminary. You have to manually add all the depends for your leaf ROS project in the parts list (from catkin up).

This isn't very different from other project types (python3-project for example). But it does make it a bit annoying to deal with. So this is a sort of minimally-viable-product branch.

There is an example with an extensive dependency hierarchy. But it is not a real working example! It needs Ubuntu packages included that aren't captured in snapcraft.yaml (because they would conflict with each other). To fix that, we need to allow the ubuntu plugin to install multiple packages in one part or dependency-flattening support.

This plugin would really benefit from dependency-injecting-and-flattening support. That way it could automatically create the very verbose dependency hierarchy from a few top-level parts. And it could inject all the Ubuntu package dependencies that are listed in each component's package.xml. But that's stage 2. This first branch is just basic ROS support.

I do a new thing in this branch, which is to hold data in a plugin-wide cache dir (~/.cache/snapcraft/plugins/ros-project). I use this for the rosdistro information that tells us where each branch for a given project is, rather than download the whole git branch each time. Might be useful idea in other plugins too (like go1.4 for the Go tarball?).

To post a comment you must log in.
110. By Michael Terry

Use package name rather than part name in file tree

111. By Michael Terry

Merge from trunk

112. By Michael Terry

Don't use installdir in env() call, rather use given root

Revision history for this message
Sergio Schvezov (sergiusens) wrote :

I think ted is working on something based or not on this, but I want to get rid of the clutter here :-)

Thanks for contribution in any case, it opened up the path for the work ahead.

review: Disapprove

Unmerged revisions

112. By Michael Terry

Don't use installdir in env() call, rather use given root

111. By Michael Terry

Merge from trunk

110. By Michael Terry

Use package name rather than part name in file tree

109. By Michael Terry

Add README detailing some of the limitations of the example

108. By Michael Terry

Expand whole dependency hierarchy for test

107. By Michael Terry

Get python build depends in a generic way

106. By Michael Terry

Merge from trunk

105. By Michael Terry

Another snapshot

104. By Michael Terry

Snapshot of ros work

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches