-
Notifications
You must be signed in to change notification settings - Fork 13.6k
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
Matrix library submoduled twice: in Firmware and in ecl #7991
Comments
Even when not using EKF2 the Firmware requires ecl (data validator used by sensors, L1 controller, FW attitude controller). ECL requires the Matrix library. It seems to me Firmware should be getting Matrix through ECL. Additionally I think the standalone EKF2 build shouldn't be different than the way it's built for Firmware inclusion, but that can be a separate issue. |
Hey, this issue has been closed because the label (This is an automated comment from GitMate.io.) |
This is still a problem which I cannot fix myself, are there no plans? |
We should make firm plans. |
I'm happy to remove ecl/matrix provided we provide a documented way for developers wanting to incorporate ecl into their own projects to create a shared library. See current instructions in README.md |
That sounds like a plan. |
Hey @priseborough, is there any progress on this? We just had a new case of confusion resulting from the "double include". Do you know who are the main clients of the ecl library? We could make very clear documentation how to use ecl by itself or what I would suggest a repo for self contained one-click usage of the latest ecl stable version that includes all necessary dependencies including ecl itself and matrix. |
TU Delft were integrating it into the paparazzi project, but I do not know the current status of that work. Also https://inertialsense.com was using it, but I have not heard from them in over 12 months. |
We should be able to drop matrix from the ecl project now and still have a standalone ecl build the pulls the matrix dependency from github if needed. |
@dagar I see you worked on this 🎉 |
During setup of this pr #7908 I ran into unexpected problems.
After some analysis I found out the problem is the interpretation of the effect resulting from the matrix library being a submodule twice in the code base:
Probably expected: I and according to our discussion also @bkueng expected the calls to the matrix library inside the ecl library to use their instance and hence version of the submodule. And all the calls to the matrix library inside the Firmware but outside the ecl would use the submodule included in the Firmware directly.
Reality: I checked and this is not the case. Istead when compiling the Firmware all the calls go to the submodule included in the Firmware. In fact you can completely delete all the source content of ecl/matrix and it the compilation of the Firmware does not see any effect.
Conclusion: I think this is a problem for the code base structure. I know @priseborough wants to have the ecl self contained but this structure of submodules can easily lead to a lot of confusion.
FYI @LorenzMeier @julianoes @bkueng @dagar @ChristophTobler @Stifael
The text was updated successfully, but these errors were encountered: