-
Notifications
You must be signed in to change notification settings - Fork 13
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
Cooperation with PubGrub-rs. #2
Comments
Hi @Eh2406 !
Over time I've tried for a while to use pubgrub-rs for conda, I left a number of PRs, issues, and comments. In the end, pubgrub-rs wasn't the right solution for conda for a number of reasons. The biggest one is that version ranges in conda (matchspecs) are non-continuous and set operations can become hard to proof (they can contain regexes for instance).
Our biggest test set and benchmarks currently reside in the I would love to work together but Im not really sure where to start! What would you suggest? Do you think it would be possible to share some of the same benchmarks / tests? Im sure there are still many possibilities to optimize the algorithm! :) |
I fondly remember your contributions to pubgrub-rs!. I wish it had been an easy fit, but I am excited to see that you had found a way to make forward progress!
It seems like the functionality of |
We also copied the |
Moving code to a shared dependency allows for more scrutiny and shared improvements. I would love to see Kani or Creusot apply do Range without requiring the rest of our solvers to be proven correct. It will also require more coordination to make sure changes work well for both projects. Everything in life is a trade-off. |
By the way, we'll be at PackagingCon - are you going to be there as well @Eh2406? :) Would be cool to chat more & maybe hack on this during sprints. |
At this time I'm only planning to attend virtually. Which does seem ashamed, this sounds like a lot of fun. |
By the way, I'm holding office hours every Wednesday at 4est. If that's a convenient time to chat. If not let me know and I can try make other time available. |
Hey @Eh2406 we're all in the european timezone and it's at 10 PM so most of us are close to hitting the bed. |
Office hours have moved three hours earlier to better accommodate. https://github.com/rust-lang/cargo/wiki/Office-Hours has been updated. |
Sorry for the delay, we finally published this |
I got sucked into a different project and didn't deal with my notifications for a week. These kinds of mistakes are what I get for that negligence. I'm glad you're enjoying it! |
Hello again! I am a maintainer of pubgrub-rs, which is a different dependency resolution algorithm written in Rust. It would be lovely if our projects found ways to support each other!
I have worked hard on the performance of pubgrub. I would love to work on the performance of resolvo. Do you have benchmarks? It would be really cool to have a shared set of benchmarks. For each benchmark case, whichever algorithm is slower I know that it can be solved faster so time to get to work.
As part of our benchmarking work we have collected some real world resolution problems. It would be cool to do differential testing, checking that our algorithms agree on whether there is a valid resolution. If you have a different set of real-world examples, I would love to add them to our benchmark collection!
Such a differential testing suite could also be used with fuzzed input. We have worked hard to develop a proptest random input generator, that currently compares to a SAT solver. Comparing two different implementations with each other is a great case for differential fuzzing.
I know there are design constraints that work better for one algorithm or the other. I would love to add explanations to pubgrub's documentation about when you're algorithm is a better choice. (And work to improve the kinds of problems pubgrub can solve.)
The text was updated successfully, but these errors were encountered: