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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Improve dependency resolver #1918

merged 2 commits into from Jan 2, 2019


None yet
3 participants
Copy link

kiliankoe commented Dec 21, 2018

This is a first of probably a few PRs to implement a new dependency resolution algorithm in SwiftPM (my project whilst interning at Apple). It's based on Pubgrub.
The major upside to this will be more descriptive and actionable diagnostics in error cases. Better performance is another side goal. Currently, in the case that dependency resolution fails, SwiftPM is unable to explain to the user why it did, just that it is so. This aims to improve that.

Please note that the code here is still very much a work in progress. It is as of yet still non-functional, but includes necessary types, API and several building blocks. It however currently stills fails at its actual job, resolving dependencies. There are also several TODOs, FIXMEs, fatalError calls and force unwraps which are placeholders for further improvements and improved error handling.

I added a new CLI option (--enable-pubgrub-resolver), which uses the new resolver. This will of course be of more use once it actually works 馃槄

Any review and feedback is very much appreciated!

kiliankoe added some commits Nov 30, 2018

[Pubgrub] Foundational implementation
This includes necessary types, API and basic ideas. It is however as
of yet still non-functional.

This comment has been minimized.

Copy link

neonichu commented Dec 21, 2018

@swift-ci please smoke test


This comment has been minimized.

Copy link

aciidb0mb3r commented Jan 2, 2019

This is great. I'll keep reviewing the actual resolver code but integration looks good and ready to land! 馃帀

@aciidb0mb3r aciidb0mb3r merged commit 0165032 into apple:master Jan 2, 2019

2 checks passed

Swift Test Linux Platform (smoke test) Build finished.
Swift Test OS X Platform (smoke test) Build finished.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment