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

[WIP] Improve dependency resolver #1918

Merged
merged 2 commits into from
Jan 2, 2019
Merged

[WIP] Improve dependency resolver #1918

merged 2 commits into from
Jan 2, 2019

Conversation

kiliankoe
Copy link
Contributor

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!

This includes necessary types, API and basic ideas. It is however as
of yet still non-functional.
@neonichu
Copy link
Contributor

@swift-ci please smoke test

@aciidgh
Copy link
Contributor

aciidgh commented Jan 2, 2019

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

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.

3 participants