rust-or/rust-lp-modeler

split out the lp modeling from the solvers

Opened this issue Β· 14 comments

Hi @jcavat !
Would you be interested in splitting the solvers from the modeling part ?
I would be interested in reusing the external program calling and solution file format parsing logic in good_lp.

Good idee. Maybe we can create a group for those projects. I am off this weeks. I won’t be reactive.

Good, let's create a github team and get to work when you come back :)

In other projects I have contributed to (e.g. rust-bio), GitHub Organizations have been a good umbrella for multiple repositories / crates that should be developed in sync with one another---just as another idea for a setup:
https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-organizations
You can transfer repositories to an organization, so you wouldn't even need to work with forks.

And regarding splitting up modelling and solving, I really like that idea. Have one crate that allows you to easily create models and eventually output to different possible formats. And then another crate that is able to call different solvers and handle their result output. This also makes it much more flexible to interact with modellers and solvers in other languages in the context of larger analysis workflows, whenever some needed functionality is available elsewhere.

Regarding different possible file formats, I just created an issue with suggestions of formats that I have come across with some quick research: #74

Ok, I can create the org. What should I name it ? rust-or ?

@TeXitoi, @ztlpn : would you be interested in being part of this organization ? Would you move your crates there ?

I'll also ping @oddg who also created Rust bindings for the Cbc C API: https://github.com/routific/coin-or-cbc-sys
I guess he might be interested in this new org, as well.

My coinor cbc bindings are under the organization of my employee so they might prefer to keep the project. I'll ask.

Cool.

But I also think that the most important thing is that everybody with an interest in this lp modeling and solving with Rust is aware of any new efforts. So being part of the org as an individual is also helpful!

@TeXitoi : Having their name in the organization may give @KardinalAI more visibility; it's not necessarily a bad thing to be part of a larger effort :)

I created the org, moved good_lp, and sent invitations : https://github.com/rust-or
You can tell me who else I should invite if I missed someone.

Thanks for this initiative ! I will publish version rust-lp-modeler v0.5 and then I will transfer the project to rust-or

I have started the work of splitting the solvers from the modeler: https://github.com/rust-or/lp-solvers
This is still very early-stage, but feedback and help welcome !

@jcavat @dlaehnemann @TeXitoi

I published a first version on crates.io : https://crates.io/crates/lp-solvers
@jcavat : would you be interested in using it in rust-lp-modeler ? This would allow us to share code (and the maintenance burden) between good_lp and rust-lp-modeler.

@jcavat : Do you want me to write the integration with lp-solvers ? I could open a PR.

hello, yes. It should be used in rust-lp-modeler. PR are welcome. I'm sorry, I struggle to find free time these days