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

File content mismatch between releases and repo #657

Open
JoOkuma opened this issue Jul 5, 2024 · 5 comments
Open

File content mismatch between releases and repo #657

JoOkuma opened this issue Jul 5, 2024 · 5 comments

Comments

@JoOkuma
Copy link

JoOkuma commented Jul 5, 2024

Hi,

First of all, I would like to thank the maintainers for this large project.

I'm trying to make python-mip available in conda (here), I think we are very close to making it.

I noticed that some release files are different from this repo, even for changes made a long time ago.

An example is src/Makefile.am from master and of the latest release, this is not a big deal because I can change which library I'm linking python-mip to.

However, some from src/Cbc_C_Interface.cpp is missing in the release; for example, Osi_getIntegerTolerance in master, for reference the Cbc_C_Interface.cpp from the latest release.

This is a problem because the coin-or-cbc conda package is built from the release version, and python-mip uses Cbc_C_Interface.h/cpp.

Is it the mismatch between the files intentional or a bug it could be fixed?

Thanks.

@jhmgoossens
Copy link
Contributor

By design, there are a lot of changes in master that have (still) not yet been released because significant work on master is still required before v3 can be released. See #465 for some info— maybe more recent explanations exist.

Until then, maintenance release such as 2.10.11 are done to fix issues, but on the original v2 baseline. I hope I got this right.

Does this answer your question?

@JoOkuma
Copy link
Author

JoOkuma commented Jul 13, 2024

Thanks @jhmgoossens , it answers my question.
Is there a checklist with the issues missing to be done with this?
I'm a bit concerned that this won't get finished soon, and it might be better to use SCIP for MIP in Python if I need conda.

@jhmgoossens
Copy link
Contributor

I’m not aware of a list with open tasks. I’d not assume this is resolved quickly.

This is a problem because the coin-or-cbc conda package is built from the release version, and python-mip uses Cbc_C_Interface.h/cpp.

Apologies if I’m misunderstanding, but it sounds like this is the root cause: these two are mixing release and master branch source code? IMO, that is a bad idea: either stick to using releases, or build using the bleeding edge master(s) but don’t mix (at least not for the same package).

Why not stick to release and live with its limitations, such as no Osi_getIntegerTolerance? Or creating your fork and porting some features.

Maybe @tkralphs can offer some more insight?

@JoOkuma
Copy link
Author

JoOkuma commented Jul 15, 2024

Indeed @jhmgoossens, sticking to one would be better. However, python-mip has been compiling from master for a while, and I'm not a maintainer of that package, just a user. So I think this ship has sailed a while ago.

Unfortunately, they are getting mixed when I try to build from conda-forge because libCbc is built from the release while python-mip expects from master.

I don't think there's an easy way out since conda-forge won't accept duplicating libCbc inside python-mip package.

@tkralphs
Copy link
Member

tkralphs commented Jul 15, 2024

The list of things that need to be done is in #374, which should be copied over to a new PR. I decided to merge what was done so far, since it was in a reasonable state and I wanted people to start using and testing it before doing more and no one was looking at the refactor branch itself.

The issue you're bringing up has been discussed a few times and if you poke around issues of both this repo, the python-mip repo and the conda-forge Cbc repo, you should find some additional information. I believe it was possible to use python-mip with Cbc 2.10 at some point in the past. Perhaps this is no longer the case with more recent changes, but it's something to look into. Also, I think it was mentioned that creating some kind of "release" on conda-forge from master is possible.

Of course, getting a new stable of Cbc is the best option and for that, help is still needed. I'll try to poke at all this a bit, but my bandwidth is limited.

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

No branches or pull requests

3 participants