-
Notifications
You must be signed in to change notification settings - Fork 188
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
[BUG] Redundant dependency acquisition #393
Comments
I think I'm seeing a related build issue, ie., if I run
The reason being that while the C++ build clones and uses spdlog, that ends up not being found during the python build. I could hack around this by adding the relevant include directory, but I'm not sure this is the best solution. This is partially caused by the fact that the python module build is separate from the cmake build, so the former doesn't directly know what the latter is doing. One possible solution is for the cmake build to properly install librmm.so, including dependencies, so that python setuptools can pick those up, but that may not be that straightforward. An alternative could be to build the python module via cmake directly. In any case, it would certainly also generally desirable to have at least the option to build librmm.so against preinstalled packages rather than always relying on its own clones. In this header-mostly world, things probably don't usually go wrong, but generally it's not a good practice to compile librmm against, say spdlog-1.7.0 but then happen use it with an elsewhere installed spdlog-2.0. In any case, I'm going to focus on the cmake/c++ build for now, while paying attention to not making this situation worse. |
Hmmm, I would think others would have run into an issue with the python build by now if it was not specific to your setup @germasch ... I use rapids-compose, so I'm somewhat shielded, but I believe all it does is run the python setup.py just as you would be doing. |
I think the reason that others may not be seeing is that I didn't have spdlog installed on my system (a pretty bare bones Ubuntu 18.04 container). Once I installed spdlog in the container separately, the issue went away. That makes it sounds similar to the issue that started this thread, where you end up having two spdlog in the CI/CD, too. |
Is this an issue any longer after your recent changes, @germasch ? |
It's fixed for spdlog and googletest, where CPM will use an external install when available. There's still an issue with google benchmark, where the external install isn't recognized since they install a broken config. I'm not sure my PR google/benchmark#1047 is going anywhere... And there's also a bunch of issues with finding an external Thrust -- most of the fixes have been accepted, but there's still some WIP. |
So googletest and googlebenchmark versioning / packaging are handled differently? If so, they should consider working together. ;) |
I guess that's what googletest and googlemock did, but benchmark, not so much... |
This issue has been marked rotten due to no recent activity in the past 90d. Please close this issue if no further response or action is needed. Otherwise, please respond with a comment indicating any updates or changes to the original issue and/or confirm this issue still needs to be addressed. |
This issue has been marked stale due to no recent activity in the past 30d. Please close this issue if no further response or action is needed. Otherwise, please respond with a comment indicating any updates or changes to the original issue and/or confirm this issue still needs to be addressed. This issue will be marked rotten if there is no activity in the next 60d. |
This is solved now that we use |
When building in CI/CD,
spdlog
needs to be installed twice.Once during source configure/compile time where the C++ library is built.
Again in the Anaconda environment so that it is detected during Cythonization.
Ref.: rapidsai/integration#46
This redundancy is not specific to
spdlog
, but any library that is pulled in duringcmake
.Opening this issue to track how this technical debt is addressed.
The text was updated successfully, but these errors were encountered: