ros-tooling / cross_compile

A tool to build ROS and ROS2 workspaces for various targets
Apache License 2.0
188 stars 60 forks source link

Separate gathering rosdeps from sysroot creation #145

Closed emersonknapp closed 4 years ago

emersonknapp commented 4 years ago

Preserves the Docker cache on source changes.

This has the side effect of also making builds be truly incremental, but doesn't meet full criteria for #108 so I won't close that yet.

Fixes #106

codecov[bot] commented 4 years ago

Codecov Report

Merging #145 into master will increase coverage by 1.36%. The diff coverage is 90.47%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #145      +/-   ##
==========================================
+ Coverage   87.11%   88.47%   +1.36%     
==========================================
  Files           6        7       +1     
  Lines         225      243      +18     
==========================================
+ Hits          196      215      +19     
+ Misses         29       28       -1
Flag Coverage Δ
#unittests 88.47% <90.47%> (+1.36%) :arrow_up:
Impacted Files Coverage Δ
ros_cross_compile/dependencies.py 100% <100%> (ø)
ros_cross_compile/ros_cross_compile.py 73.46% <77.77%> (+6.02%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 5c4c1f7...b533b93. Read the comment docs.

emersonknapp commented 4 years ago

Sorry everyone for the random review requests - i was trying to put the "approvers" team but it seems like it randomly picked individuals instead

emersonknapp commented 4 years ago

Also although this passes all current test cases, it does not allow for rosdep source customization as the README describes (via custom-data-dir and custom-setup-script).

On further thought, based on the amount of arbitrary customization users might want to do there, it may make sense to just expect users to have rosep installed and initialized locally. It's a Python package so we could import and call it, wouldn't even need subprocess - I'd appreciate any thoughts on that approach, I'll probably just implement it that way instead if nobody has an opinion. Regardless I'll close this PR for now until I have a regression test for customized rosdep sources.