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

[noetic] Restrict boost dependencies to components used #1871

Merged
merged 7 commits into from
Mar 3, 2020

Conversation

mikaelarguedas
Copy link
Member

@mikaelarguedas mikaelarguedas commented Jan 26, 2020

To be targeted at the noetic-devel branch

depends on ros/rosdistro#23620 and ros/rosdistro#23622

Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
@gavanderhoorn
Copy link
Contributor

Should this target a (to be created) noetic-devel?

Comment on lines -23 to +27
<depend>boost</depend>
<depend>libboost-date-time-dev</depend>
<depend>libboost-filesystem-dev</depend>
<depend>libboost-program-options-dev</depend>
<depend>libboost-regex-dev</depend>
<depend>libboost-thread-dev</depend>
Copy link
Contributor

Choose a reason for hiding this comment

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

Could we split this into exec_depend and the various build*_depend?

Did you not do this on purpose?

Copy link
Member Author

Choose a reason for hiding this comment

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

Purposeful 😬 , currently I just replaced the keys without changing the scope of the tags.

I figured that when splitting the depends tags, we should decide which to put in build_depend vs exec_depend vs build_export_depend which would require a closer audit of each package rather than just duplicating them all in build and exec depends.

It could be done in this PR though, it was just out of scope of my first pass

@mikaelarguedas
Copy link
Member Author

Should this target a (to be created) noetic-devel?

Indeed, I put it in the PR description but I should have put it in the title for more visibility, editing now

@mikaelarguedas mikaelarguedas changed the title Restrict boost dependencies to components used [noetic-devel] Restrict boost dependencies to components used Jan 26, 2020
@mikaelarguedas mikaelarguedas changed the title [noetic-devel] Restrict boost dependencies to components used [noetic] Restrict boost dependencies to components used Jan 26, 2020
@dirk-thomas
Copy link
Member

@mikaelarguedas Please retarget the noetic-devel branch.

@mikaelarguedas mikaelarguedas changed the base branch from melodic-devel to noetic-devel March 2, 2020 21:50
@mikaelarguedas
Copy link
Member Author

Done,

Note: CI will still install all boost packages because some PRs on underlying packages are pending ros/rospack#115

@@ -37,6 +40,9 @@

<run_depend version_gte="0.3.17">cpp_common</run_depend>
<run_depend>message_runtime</run_depend>
<run_depend>libboost-chrono-dev</run_depend>
<run_depend>libboost-filesystem-dev</run_depend>
<run_depend>libboost-system-dev</run_depend>
Copy link
Member

Choose a reason for hiding this comment

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

Moving to format 2 would permit deduplicating these.

Copy link
Member Author

Choose a reason for hiding this comment

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

Agreed moving to format 2 for all packages would be a nice improvement.

Regarding deduplication: in the context of Generating ‘dev’ and runtime artefacts from ROS packages we're aiming for not using the <depend> tag to be able to generate pure runtime packages without bringing in all the dev dependencies.

@dirk-thomas
Copy link
Member

CI will still install all boost packages because some PRs on underlying packages are pending ros/rospack#115

With rospack recently released and rebuilt with that change I will trigger another round of CI for this:

@ros-pull-request-builder retest this please

@dirk-thomas
Copy link
Member

Thanks for the patch.

@dirk-thomas dirk-thomas merged commit 0b6c2c5 into ros:noetic-devel Mar 3, 2020
@mikaelarguedas mikaelarguedas deleted the restrict-boost-deps branch March 3, 2020 09:05
@mikaelarguedas
Copy link
Member Author

With rospack recently released and rebuilt with that change I will trigger another round of CI for this:

Note: The resulting debs are still pulling all the boost packages because this repo depends on pluginlib and ros/pluginlib#171 hasn't been merged and released.

@ros-discourse
Copy link

This pull request has been mentioned on ROS Discourse. There might be relevant details there:

https://discourse.ros.org/t/rfc-restricting-the-size-of-ros-docker-images/13252/1

nim65s added a commit to nim65s/robotpkg that referenced this pull request Mar 12, 2021
Because DEPEND_ABI.ros-comm.noetic?= ros-comm>=1.15

1.15.9 (2020-10-16)
-------------------
* Fix deadlock when service connection is dropped (ros/ros_comm#2074)
* Update maintainers (ros/ros_comm#2075)
* Fix case where accessing cached parameters shuts down another node (ros/ros_comm#2068)
* Fix spelling (ros/ros_comm#2066)
* Fix Lost Wake Bug in ROSOutAppender (ros/ros_comm#2033)
* Fix compatibility issue with boost 1.73 and above (ros/ros_comm#2023)
* Gracefully stop recording upon SIGTERM and SIGINT (ros/ros_comm#2038)
* Use heapq.merge instead of custom merge sort code (ros/ros_comm#2017)
* Fix handling of single quotes in command arguments on Windows (ros/ros_comm#2051)
* Clearer error message (ros/ros_comm#2035)
* Ignore underscores when parsing literal numeric values for Python 3 compatibility (ros/ros_comm#2022)
* Clear cached URI for a node that has gone offline (ros/ros_comm#2010)
* Add skip_cache parameter to rosnode_ping() (ros/ros_comm#2009)
* Install advertisetest (ros/ros_comm#2046)
* Use range instead of xrange for Python 3 compatibility (ros/ros_comm#2013)
* Fix to address CVE-2020-16124 (ros/ros_comm#2065)
* Fix XmlRpcValue::_doubleFormat being unused (ros/ros_comm#2003)

1.15.8 (2020-07-23)
-------------------
* change is_async_connected to use epoll when available (ros/ros_comm#1983)
* allow mixing latched and unlatched publishers (ros/ros_comm#1991)
* remove not existing NodeProxy from rospy __all_\_ (ros/ros_comm#2007)
* fix typo in topics.py (ros/ros_comm#1977)
* fix bad relative import (still Python 2 style) (ros/ros_comm#1973)
* improve shutdown message with duplicate node name (ros/ros_comm#1992)
* remove dependency on rostopic from rostest package (ros/ros_comm#2002)
* fix missing reload() function in Python 3 (ros/ros_comm#1968)
* add latch param to throttle (ros/ros_comm#1944)
* add const versions of XmlRpcValue converting operators (ros/ros_comm#1978)

1.15.7 (2020-05-28)
-------------------
* fix Windows build break (ros/ros_comm#1961)
* fix NameError in launch error handling (ros/ros_comm#1965)

1.15.6 (2020-05-21)
-------------------
* fix a bug that using a destroyed connection object (ros/ros_comm#1950)

1.15.5 (2020-05-15)
-------------------
* check if async socket connect is success or failure before TransportTCP::read() and TransportTCP::write() (ros/ros_comm#1954)
* fix bug that connection drop signal related funtion throw a bad_weak exception (ros/ros_comm#1940)
* multiple latched publishers per process on the same topic (ros/ros_comm#1544)
* fix negative numbers in ros statistics (ros/ros_comm#1531)
* remove extra \n in ROS_DEBUG (ros/ros_comm#1925)
* add option to repeat latched messages at the start of bag splits (ros/ros_comm#1850)
* fix bag migration failures caused by typo in connection_header assignment (ros/ros_comm#1952)
* fix brief description comments after members (ros/ros_comm#1920)
* add --sigint-timeout and --sigterm-timeout parameters (ros/ros_comm#1937)
* roslaunch-check: search dir recursively (ros/ros_comm#1914)
* sort printed nodes by namespace alphabetically (ros/ros_comm#1934)
* remove pycrypto import (not used) (ros/ros_comm#1922)
* avoid infinite recursion in rosrun tab completion when rosbash is not installed (ros/ros_comm#1948)
* fix bare pointer in topic_tools::ShapeShifter (ros/ros_comm#1722)
* clear message queue on simtime jumping back (ros/ros_comm#1518)
* use undefined dynamic_lookup on macOS (ros/ros_comm#1923)
* check if enough FDs are free, instead counting the total free FDs (ros/ros_comm#1929)

1.15.4 (2020-03-19)
-------------------
* restrict boost dependencies to components used (ros/ros_comm#1871)
* add exception for ConnectionAbortedError (ros/ros_comm#1908)
* fix mac trying to use epoll instead of kqueue (ros/ros_comm#1907)
* fix AttributeError: __exit__ (ros/ros_comm#1915, regression from 1.14.4)

1.15.3 (2020-02-28)
-------------------
* remove Boost version check since Noetic only targets platforms with 1.67+ (ros/ros_comm#1903)

1.15.2 (2020-02-25)
-------------------
* export missing Boost dependency (ros/ros_comm#1898)
* add timestamp formatting for rosconsole (ros/ros_comm#1892)

1.15.1 (2020-02-24)
-------------------
* fix missing boost dependencies (ros/ros_comm#1895)
* use setuptools instead of distutils (ros/ros_comm#1870)
* increase time limit of advertisetest/publishtest.test to reduce flakyness (ros/ros_comm#1897)

1.15.0 (2020-02-21)
-------------------
* fix dictionary changed size during iteration (ros/ros_comm#1894)
* update test to pass with old and new yaml (ros/ros_comm#1893)

Packaging changes:
- removed patch-an, as there are no more boost version checks
- updated patch-ao
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.

None yet

5 participants