Replies: 5 comments 4 replies
-
I am in favor of this and I have looked at this multiple times, but for myself it seems like an overwhelming task that I cannot take on personally. If someone or company is interested in such a task I would personally support this endeavor and help with the development.
|
Beta Was this translation helpful? Give feedback.
-
I will create fork and try to create first prototype of tesseract without boost, if I find some time in the next weeks. For boost graph replacement, I need your advice/help, because i am not yet really expert in scene graph implementation, neither in boost_graph. What features from a graph framework do we really need in tesseract? Do we really need comprehensive graph solution, then maybe also CXXGraph could be alternative. Otherwise, we can just try to use light weight solution based std:: collections, e.g. Adjacency List (using std::unordered_map and std::vector). For boost_dll (plugin loader), I would try to integrate "shared_library" code from ROS2 rcutils package (with removed ROS dependencies). As this is OSRF Apache 2.0 licensed, this should be OK? For serialization my idea is to create stub library for boost serialization, which satisfies the dependencies from tesseract code, but basically does nothing, so that we do not need to change tesseract classes itself For the rest, like boost_filesystem or algorithms, I would adapt tesseract code to alternative solution, e.g. use std::filesystem. |
Beta Was this translation helpful? Give feedback.
-
I have mixed feelings on replacing Why not just copy-paste the elements of |
Beta Was this translation helpful? Give feedback.
-
The vcpkg actions in the github workflows install a minimal set of boost packages. The overhead is pretty small. |
Beta Was this translation helpful? Give feedback.
-
I agree that boost is stable and widely used open source framework and also has liberal license for commercial use. Disadvantage in my opinion is inner dependency tree in boost, using one lib results in dependency to 10 other boost packages, which itself have dependencies to others and so on. When my analysis was correct, used boost libs in tesseract result in about 70 boost packages, because of inner dependencies to other boost packages. Do you have here other number? And even pinning boost to fix version, would not solve my issue. In our industrial domain, I would still have the obligation to check and evaluate on each SW release, whether there are new known issues in these 70 boost repos, which can influence the functionality of my SW. I also agree, that replacing boost, with a number of other open source libs, which are less community proven, is also not a good idea. I will analyze it in more detail and will share a proposal |
Beta Was this translation helpful? Give feedback.
-
I like tesseract-robotics, as it is light weight and limits the number of external dependencies.
But dependency to "boost" results in dependency to ~70 boost libraries, because of inner dependencies. (when my analysis was correct)
In my industry field, we have to analyse on each release all open issues of all used open source libraries regarding influence on desired functionality. This would mean to check all 70 boost libraries on each release, if they have new open issues and evaluate influence on functionality!
Would it be possible to remove the dependency to boost from tesseract core or at least make it optional?
I already analyzed the tesseract code and see the following three boost dependencies as most critical to remove:
What do you think about it?
Beta Was this translation helpful? Give feedback.
All reactions