Skip to content
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

Switch to depending on coin-or-cbc? #27

Open
tkralphs opened this issue Sep 17, 2021 · 11 comments · May be fixed by #41
Open

Switch to depending on coin-or-cbc? #27

tkralphs opened this issue Sep 17, 2021 · 11 comments · May be fixed by #41

Comments

@tkralphs
Copy link

I noticed that this package depends on the coincbc package. I wanted to make you aware that the coin-or-cbc package is the "officially supported" one that maintainers of Cbc are directly supporting.

@peterjc
Copy link

peterjc commented Aug 6, 2024

Looks like https://github.com/conda-forge/coincbc-feedstock/ is archived now too.

@peterjc
Copy link

peterjc commented Aug 9, 2024

Does the recipe actually use the declared dependency?

From my digging on #40 I think the recipe is repackaging the bundled platform specific solvers provided by pulp.

@tkralphs
Copy link
Author

I think the idea was to stop packaging binaries with pulp and to instead ask people who want to Cbc to install this package. Packaging binaries with a Python package the way PuLP does is not really a best practice.

@peterjc
Copy link

peterjc commented Aug 12, 2024

I agree that sounds cleaner - but just adding osx-arm64 binaries might be pragmatic in the short term to resolve #40. I'm not familiar with pulp and only tried to work on this via a dependency chain.

@tkralphs
Copy link
Author

I'm not a maintainer of PuLP, only Cbc. I try to help with questions related to Cbc and I maintain the Cbc feedstock. We are currently building osx-arm64 binaries in master as part of the build and test workflow, so you can grab the binaries here and point PuLP to them. See if that works and if so, the easiest path is probably just to do that. Of course, if that works, then you can perhaps nudge the PuLP maintainers that there are binaries available that they can just drop in.

@stumitchell
Copy link

@tkralphs are these static binaries for osx-arm64?
I noticed that you are now doing static Ubuntu builds :-)

@tkralphs
Copy link
Author

@stumitchell OSX doesn't exactly support static binaries, although I'm not totally sure of the implications of that. There is a decent explanation here:

https://nelsonslog.wordpress.com/2013/04/24/macos-doesnt-support-static-binaries/

I think it means that the binaries are portable in the sense that the OS is locked down enough that if you move the binary to another machine that is running the same version of the OS, it should work, but I guess you probably can't provide a single binary that works on all version of OSX.

The way around all of this is conda. If you just install Cbc with conda, then you get a binary that is guaranteed to work. But I think this recipe here is currently just still depending on the packaged binaries and not using the binaries pulled in by conda. I think using the conda binaries would solve all of these issues.

@peterjc
Copy link

peterjc commented Aug 15, 2024

i.e. The pulp recipe should depend on https://github.com/conda-forge/coin-or-cbc-feedstock (which replaced https://github.com/conda-forge/coincbc-feedstock which has been archived - both offer cbc 2.10.11 right now).

Then we must tell pulp to use the cbc binary from the path or where we expect conda to put it, rather than its bundled binaries. That looks to be done via the PulpCbcPath setting...

We can also add some rm lines to the build script to remove the pre-compiled binaries provided within the pulp releases.

@peterjc peterjc linked a pull request Aug 15, 2024 that will close this issue
5 tasks
@tkralphs
Copy link
Author

FYI, there is not a Cbc 2.10.12 release with OSX arm64 binaries: https://github.com/coin-or/Cbc/releases/tag/releases%2F2.10.12

@peterjc
Copy link

peterjc commented Aug 20, 2024

@tkralphs That shouldn't be a problem as long as there are conda-forge binaries for osx-arm64, and the recent cbc releases have them - e.g. https://anaconda.org/conda-forge/coin-or-cbc/files?version=2.10.11

I'm assuming here that there are no known show-stopping breakages on ARM on those older versions, and the absence of OSX arm64 binaries on the official releases was just down to not building them until now.

As an aside, conda-forge doesn't have cbc 2.10.12 packaged yet.

@tkralphs
Copy link
Author

Sure, just letting you know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants