Skip to content

use LEMONGraphs.jl as a default algorithm for MWPM instead of BlossomV.jl #20

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

Merged
merged 9 commits into from
Jul 7, 2025

Conversation

Krastanov
Copy link
Member

Each commit is small, selfcontained, legible on its own, for ease of review.

BlossomV.jl relies on the BlossomV C library which is not open source. Thus, BlossomV.jl has to run an unreliable build step due to which it crashes on many platforms where compilers are not pre-installed.

This PR moves BlossomV.jl to an extension and uses LEMONGraphs.jl for minimum weight perfect matching. LEMONGraphs.jl is distributed by BinaryBuilder/Yggdrasil, and thus supports all platforms without the need for build steps.

No functionality is removed by this PR, rather a new default is used so that everything can install on any platform. Folks that prefer BlossomV.jl (and can install it) can easily switch the default to use it.

The setup of having multiple available algorithms is consistent with other APIs in this library.

Fixes #4

@Krastanov
Copy link
Member Author

The documentation failure and the aarch64 failure are unrelated to this PR and can be seen in #21 as well.

@Krastanov Krastanov marked this pull request as ready for review July 4, 2025 22:54
@Krastanov
Copy link
Member Author

Hi, @matbesancon @simonschoelly @victorthouvenot @etiennedeg @thchr !

Just tagging the folks that have maintained this package in the last few years to put this PR on their radar. Still getting oriented and trying to learn who is and who isn't an active maintainer.

@thchr
Copy link
Contributor

thchr commented Jul 7, 2025

I don't have in-depth knowledge of the codebase here, but I read through each commit and thought everything looked very sensible and correct.
It would be a huge improvement to drop the hard BlossomV dependence - it's just a nightmare waiting to happen (if, e.g., the author at any point stops hosting BlossomV at the current URL, this package will be broken).

I can't merge but enthusiastically support it.

@Krastanov Krastanov merged commit 2d2a3bb into master Jul 7, 2025
12 of 18 checks passed
@Krastanov Krastanov deleted the sk/blossom branch July 7, 2025 18:32
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 this pull request may close these issues.

Build without requiring BlossomV?
2 participants