-
-
Notifications
You must be signed in to change notification settings - Fork 5k
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
Add google/or-tools #2717
Comments
@pmlandwehr you can assign it to me. |
@sodre Has there been any more progress on this? I was looking this issue earlier when a friend pointed me to this thread. |
@jGaboardi, I haven't made any more progress on this since 2017. I was trying to cover all the architectures at that time and failed to complete the macOS and Windows builds. If you are only interested in Linux, I think it is possible for us to rebase the current branch and only enable the build for Linux. Let me know if you're interested on that. |
@sodre thanks for the super quick reply! And yes, I am very interested. The current OS I need a EDIT |
Okay, I'll continue the work this weekend. |
@sodre Also, I am working in Although I have never built |
@sodre I wondering if anything more has been done in regards to getting the Linux build up on |
Just to comment, as the creator of or-tools, thanks and tell me if you need anything. |
Left a comment in google/or-tools#92 (comment) about repackaging the official wheels instead of building from source. Perhaps it's a good first step before trying to compile from source. In any case, ortools supports |
I'm also very interested in this addition. @sodre - What's the next step to make this happen? Is sodre@5b61e96 a good starting point for a pull request? If the build fails on some platforms for now, maybe just activate that one platform, and leave the others for later? Something is better than nothing, no? Thanks for your work on conda packaging! |
I have a working conda build locally. The first step would be to split the existing packages for the coin tools here: https://github.com/conda-forge/coincbc-feedstock (issue is open here: conda-forge/coincbc-feedstock#37) I can upload the recipes later... |
@lperron the cmake of ortools is quite opinionated -- could you add hooks to also use pkgconfig to find dependencies such as protobuf or the coin libraries? |
+Corentin Le Molgat <[email protected]>
Who wrote the cmake and is rewriting it.
Le jeu. 9 avr. 2020 à 20:48, Wolf Vollprecht <[email protected]> a
écrit :
… @lperron <https://github.com/lperron> the cmake of ortools is quite
opinionated -- could you add hooks to also use pkgconfig to find
dependencies such as protobuf or the coin libraries?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2717 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACUPL3OC2WHVTLPFBWSV5HDRLYKAVANCNFSM4DGCFYEA>
.
|
@cdeil do you want to take over these recipes: https://github.com/wolfv/staged-recipes/tree/add_coin_or/recipes It has working recipes for or-tools (with tests) at least on linux :) The remaining issue is that we should probably use pgkconfig / autotools to build the coin dependencies and need to patch or-tools cmake to find the packages using pkgconfig (as we don't want to statically link the dependencies, except for Abseil where we have to as or-tools is using an "unreleased" version (abseil doesn't really seem to have releases)). The second part of the previous point is that the coincbc package in conda-forge already vendors a bunch of libraries that will collide with the splitted libraries. I talked with @scopatz and he's fine with splitting although we haven't figured out how to do it. The first part would be to re-open a PR here and then we need to make the existing coincbc a meta-package to the new, correct one. |
@wolfv - I'm just a user that tried out OR-Tools and other packages yesterday for the first time (see python-discrete-optimization-examples). I don't feel qualified to maintain the conda recipes for these large and complex packages. If you think it's useful to add me as a co-maintainer for simple tasks such as e.g. reviewing version update PRs, that's fine. @tkralphs or anyone from the COIN project - would you be willing to co-maintain conda-forge recipes for the COIN codes or review these changes? (following up on #10935 (comment)) @clemolgat-SBR - Would you or someone from OR-Tools be willing to co-maintain the conda-forge recipe for OR-Tools or review these changes? @wolfv - I looked a bit at your COIN and OR-tools packaging proposal at: https://github.com/wolfv/staged-recipes/tree/add_coin_or/recipes Two thoughts: How did you come up with these version numbers for the COIN packages for OR-Tools Why did you patch to |
Hi @cdeil, thanks for pinging some more people. The version numbers of the coin projects come from their releases on the relevant github projects. google or-tools does not work with the latest release of The default CXX standard on conda-forge is C++17 so I had to patch this because of linker and include errors -- the default on conda-forge is C++17 so if you link multiple shared libraries that can lead to inconsistencies for example with On the other hand the coin libraries do not support C++17 and had to be explicitly compiled with C++11 :) but the code is anyways old-school so the aforementioned issues don't play a role. Sure, I can add you as a maintainer. I'll try to work out a plan with @scopatz to get the split packages into conda-forge. |
Hi, I'm currently the maintainer of the python packaging process. please notice pep 513 doesn't allow a python package to depends on system libraries, see the manylinux policy... thus when building the python package we try to embed all required dependencies (as static library if possible) We can discuss on this OR-Tools discord: https://discord.gg/ENkQrdf |
the conda package manager is thousand times nicer than PEP 513, it's cross-platform and language agnostic so we can (and should!) link to shared libraries as if it was a deb package :) We're not bound by the Python packaging process here. |
For the version numbers for the COIN-OR projects, one is a release and the others are stables. If you really want to depend on a tagged version, they should all be releases. In general, there is a Keep in mind that there are about 20 packages in the overall COIN-OR Optimization Suite, all of which I would eventually like to have packages for most/all of these. I'm not sure if the OR-Tools can interface to any of the others, but there is at least the potential to do so in the future, so that should be part of the roadmap. |
Hi everybody, as an FYI, I have created a new PR based on @wolfv's work which you can find in #16147 Two questions for the or-tools maintainer, if you're happy to have a look:
|
and few others things I'm missing ;)
|
at https://github.com/google/or-tools/tree/stable/cmake#cmake-options as we are supplying the dependencies of the wrapper builds (ZLIB etc) ourselves, like we do with the original build. Edit: I should probably clarify one big difference between pip and conda which makes this possible: Conda allows packages to depend also on other packages, written in other languages. So a python package can depend on a java, c++, etc. package and conda will install all of them and not just ask for them to be available. It's basically a cross-language dependency solver. |
Google's OR-Tools are maintained by Google but I'm not sure how easily they play with
conda
, so we might want to add `em.The text was updated successfully, but these errors were encountered: