-
Notifications
You must be signed in to change notification settings - Fork 2
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
Development workflows #139
Comments
Prereqs installed packages to construct the workspace
Prereqs installed packages to use maliput
Prereqs installed packages to use delphyne
Prereqs installed packages to use delphyne-gui
Prereqs installed packages to use drake-vendor
Extra packages in the workspace needed but not maintained
|
Per meeting on 10/28/2020 we will try to get rid of proj4 by implementing the functionality in maliput (math). |
Related issues:
|
About tinyxml in ODRM, here are some @stonier 's notes from the CMakeLists.txt:
|
We also have |
Great, I think you're moving in the right direction re minimising dependencies:
Aside from minimising dependencies, other objectives I'd like to hit here (please comment if you think they make sense or not):
|
Re proj4 --> maliput/maliput#356 |
The new implementation of malidrive relies on TinyXML2 from system packages (installed via rosdep) for xodr map parsing.
I believe we can proxy the access to unique_ptrs. I also know @andrewbest-tri and @liangfok wanted to include boost-python bindings. Would that make sense in favor of deprecating pybind11? (I still need to analyze the impact on delphyne and delphyne-gui)
Makes sense to me.
We are using dashing now. Is it a requisite or can we push this migration to a separate effort? I haven't checked how much it would take to migrate though, note that combinatoric escalation is a problem for CI infrastructure maintenance and budget.
Understood. |
I didn't mention this during the meeting, but it looks like I assume at some point we will move to 20.04; perhaps we could at least test with 6.3.1 to see if it is suitable? it could save us from maintaining extra code in maliput |
All custom gtest and gmock versions were removed from the workspace. |
Dumping a few decisions taken in weekly meetings:
For maliput, we will split maliput bindings into a separate package and from there develop a plugin architecture. Backends will require a new load interface so they can be seamlessly loaded in python or any other language (not C++). For delphyne, we still require pybind due to drake's interaction. We could move all the bindings to another package (potential increased and unnecessary complexity) and release from pybind11 dependency delphyne. It also brings another question onto the table, is it necessary to have delphyne on its own? Do we foresee or is it there already another package that uses delphyne but not delphyne-gui / delphyne-demos?
Started a migration of these libraries to newer versions. |
Just sane dependency management. Over the years I've practiced/advocated carving up msg / non-gui and gui packages from the get-go separately because user stories frequently want/need installation of them separately to avoid dependency headaches in workspaces or installations. I find it also helps in keeping the architecture from getting entangled (no matter how good initial intentions are) and that also is a reason to do it from the get-go. What are the advantages of the borg approach? |
Great, thanks! |
We can probably unpack this one a bit further. Bindings for maliput and family are critical to be done right since it's broadening it's user base beyond N=2. Delphyne isn't planning to yet, so we can accommodate a little less rigour there, but it would be good to get it off a dependency on drake's python bindings. We don't really use them as intended (pythonic construction of drake systems) and could easily(?) just implement a few of our own with whatever library we choose to minimise our dependency tax. |
After a F2F chat with @agalbachicar: Next steps to finally deprecate
|
FYI we won't need the script for installing ignition packages on 20.04 since they are handled by |
That's right. It will be even cleaner after we move to 20.04. So that script for installing ignition packages and also the instructions for installing the ignition packages in the installation and quick start guide will be happily removed. UPDATE:
|
What's blocking us now to close this ticket is to migrate to Ubuntu focal + ROS2 Foxy ( #196 ) and to solve pybind11 issues. |
Recently changed to system version downstream and it was already as a system dependency (via rosdep) for maliput_malidrive. |
@stonier , per #225 investigation it is not possible to move forward with pybind11 as a system dependency because of unique_ptrs in bionic ( needed by maliput repositories ). As soon as we move to focal in all repositories, that will be solved. I believe we have covered everything else. Do you agree with closing this ticket and keeping #225 open to track the pybind11 migration? |
@agalbachicar @stonier Is it now a good moment to re-ask: Should we still support bionic-dashing? |
It was agreed during weekly meeting: #249 |
I don't think they solved it for the version that is distributable for Focal (2.4.3). They seemed to solve it later on at pybind/pybind11#2672 |
Closing as all the tasks were finished |
Support simpler and more flexible development workflows.
tinyxml \in odm \in malidrive
→ enable dependency sharing & avoid release incompatibilitiesThese are essentially the precepts of the ROS federated ecosystem. It's a set of rules that works and enables scaling and flexibility. Just a bit trickier to handle with closed source packages sans a build farm, but it's doable. I believe it is a good goal.
FYI @scpeters just to kick-start the thread.
The text was updated successfully, but these errors were encountered: